Skip to content

Commit 867aa22

Browse files
committed
Drop guava runtime dependency
1 parent 935bc28 commit 867aa22

11 files changed

+156
-104
lines changed

pom.xml

+1
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@
192192
<groupId>com.google.guava</groupId>
193193
<artifactId>guava</artifactId>
194194
<version>21.0</version>
195+
<scope>test</scope>
195196
</dependency>
196197
<dependency>
197198
<groupId>com.squareup.retrofit2</groupId>

src/main/java/org/influxdb/InfluxDBFactory.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22

33
import org.influxdb.impl.InfluxDBImpl;
44

5-
import com.google.common.base.Preconditions;
6-
import com.google.common.base.Strings;
7-
85
import okhttp3.OkHttpClient;
6+
import org.influxdb.impl.Preconditions;
7+
8+
import java.util.Objects;
99

1010

1111
/**
@@ -25,7 +25,7 @@ public enum InfluxDBFactory {
2525
* @return a InfluxDB adapter suitable to access a InfluxDB.
2626
*/
2727
public static InfluxDB connect(final String url) {
28-
Preconditions.checkArgument(!Strings.isNullOrEmpty(url), "The URL may not be null or empty.");
28+
Preconditions.checkNonEmptyString(url, "url");
2929
return new InfluxDBImpl(url, null, null, new OkHttpClient.Builder());
3030
}
3131

@@ -42,8 +42,8 @@ public static InfluxDB connect(final String url) {
4242
* @return a InfluxDB adapter suitable to access a InfluxDB.
4343
*/
4444
public static InfluxDB connect(final String url, final String username, final String password) {
45-
Preconditions.checkArgument(!Strings.isNullOrEmpty(url), "The URL may not be null or empty.");
46-
Preconditions.checkArgument(!Strings.isNullOrEmpty(username), "The username may not be null or empty.");
45+
Preconditions.checkNonEmptyString(url, "url");
46+
Preconditions.checkNonEmptyString(username, "username");
4747
return new InfluxDBImpl(url, username, password, new OkHttpClient.Builder());
4848
}
4949

@@ -57,8 +57,8 @@ public static InfluxDB connect(final String url, final String username, final St
5757
* @return a InfluxDB adapter suitable to access a InfluxDB.
5858
*/
5959
public static InfluxDB connect(final String url, final OkHttpClient.Builder client) {
60-
Preconditions.checkArgument(!Strings.isNullOrEmpty(url), "The URL may not be null or empty.");
61-
Preconditions.checkNotNull(client, "The client may not be null.");
60+
Preconditions.checkNonEmptyString(url, "url");
61+
Objects.requireNonNull(client, "client");
6262
return new InfluxDBImpl(url, null, null, client);
6363
}
6464

@@ -78,9 +78,9 @@ public static InfluxDB connect(final String url, final OkHttpClient.Builder clie
7878
*/
7979
public static InfluxDB connect(final String url, final String username, final String password,
8080
final OkHttpClient.Builder client) {
81-
Preconditions.checkArgument(!Strings.isNullOrEmpty(url), "The URL may not be null or empty.");
82-
Preconditions.checkArgument(!Strings.isNullOrEmpty(username), "The username may not be null or empty.");
83-
Preconditions.checkNotNull(client, "The client may not be null.");
81+
Preconditions.checkNonEmptyString(url, "url");
82+
Preconditions.checkNonEmptyString(username, "username");
83+
Objects.requireNonNull(client, "client");
8484
return new InfluxDBImpl(url, username, password, client);
8585
}
8686
}

src/main/java/org/influxdb/dto/BatchPoints.java

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package org.influxdb.dto;
22

3+
import java.util.ArrayList;
34
import java.util.Arrays;
45
import java.util.List;
56
import java.util.Map;
67
import java.util.Objects;
8+
import java.util.TreeMap;
79

810
import org.influxdb.InfluxDB.ConsistencyLevel;
911

10-
import com.google.common.base.Preconditions;
11-
import com.google.common.base.Strings;
12-
import com.google.common.collect.Lists;
13-
import com.google.common.collect.Maps;
14-
import com.google.common.collect.Ordering;
12+
import org.influxdb.impl.Preconditions;
1513

1614
/**
1715
* {Purpose of This Type}.
@@ -49,8 +47,8 @@ public static Builder database(final String database) {
4947
public static final class Builder {
5048
private final String database;
5149
private String retentionPolicy;
52-
private final Map<String, String> tags = Maps.newTreeMap(Ordering.natural());
53-
private final List<Point> points = Lists.newArrayList();
50+
private final Map<String, String> tags = new TreeMap<>();
51+
private final List<Point> points = new ArrayList<>();
5452
private ConsistencyLevel consistency;
5553

5654
/**
@@ -124,8 +122,7 @@ public Builder consistency(final ConsistencyLevel consistencyLevel) {
124122
* @return the created BatchPoints.
125123
*/
126124
public BatchPoints build() {
127-
Preconditions.checkArgument(!Strings.isNullOrEmpty(this.database),
128-
"Database must not be null or empty.");
125+
Preconditions.checkNonEmptyString(this.database, "database");
129126
BatchPoints batchPoints = new BatchPoints();
130127
batchPoints.setDatabase(this.database);
131128
for (Point point : this.points) {

src/main/java/org/influxdb/dto/Point.java

+17-30
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,9 @@
99
import java.util.Objects;
1010
import java.util.TreeMap;
1111
import java.util.concurrent.TimeUnit;
12+
import java.util.function.Function;
1213

13-
import com.google.common.base.Preconditions;
14-
import com.google.common.base.Strings;
15-
import com.google.common.escape.Escaper;
16-
import com.google.common.escape.Escapers;
14+
import org.influxdb.impl.Preconditions;
1715

1816
/**
1917
* Representation of a InfluxDB database Point.
@@ -28,15 +26,10 @@ public class Point {
2826
private TimeUnit precision = TimeUnit.NANOSECONDS;
2927
private Map<String, Object> fields;
3028

31-
private static final Escaper FIELD_ESCAPER = Escapers.builder()
32-
.addEscape('\\', "\\\\")
33-
.addEscape('"', "\\\"")
34-
.build();
35-
private static final Escaper KEY_ESCAPER = Escapers.builder()
36-
.addEscape(' ', "\\ ")
37-
.addEscape(',', "\\,")
38-
.addEscape('=', "\\=")
39-
.build();
29+
private static final Function<String, String> FIELD_ESCAPER = s ->
30+
s.replace("\\", "\\\\").replace("\"", "\\\"");
31+
private static final Function<String, String> KEY_ESCAPER = s ->
32+
s.replace(" ", "\\ ").replace(",", "\\,").replace("=", "\\=");
4033
private static final int MAX_FRACTION_DIGITS = 340;
4134

4235
Point() {
@@ -84,8 +77,8 @@ public static final class Builder {
8477
* @return the Builder instance.
8578
*/
8679
public Builder tag(final String tagName, final String value) {
87-
Preconditions.checkArgument(tagName != null);
88-
Preconditions.checkArgument(value != null);
80+
Objects.requireNonNull(tagName, "tagName");
81+
Objects.requireNonNull(value, "value");
8982
if (!tagName.isEmpty() && !value.isEmpty()) {
9083
tags.put(tagName, value);
9184
}
@@ -161,9 +154,7 @@ public Builder addField(final String field, final Number value) {
161154
}
162155

163156
public Builder addField(final String field, final String value) {
164-
if (value == null) {
165-
throw new IllegalArgumentException("Field value cannot be null");
166-
}
157+
Objects.requireNonNull(value, "value");
167158

168159
fields.put(field, value);
169160
return this;
@@ -189,7 +180,7 @@ public Builder fields(final Map<String, Object> fieldsToAdd) {
189180
* @return the Builder instance.
190181
*/
191182
public Builder time(final long timeToSet, final TimeUnit precisionToSet) {
192-
Preconditions.checkNotNull(precisionToSet, "Precision must be not null!");
183+
Objects.requireNonNull(precisionToSet, "precisionToSet");
193184
this.time = timeToSet;
194185
this.precision = precisionToSet;
195186
return this;
@@ -201,12 +192,8 @@ public Builder time(final long timeToSet, final TimeUnit precisionToSet) {
201192
* @return the newly created Point.
202193
*/
203194
public Point build() {
204-
Preconditions
205-
.checkArgument(!Strings.isNullOrEmpty(this.measurement),
206-
"Point name must not be null or empty.");
207-
Preconditions
208-
.checkArgument(this.fields.size() > 0,
209-
"Point must have at least one field specified.");
195+
Preconditions.checkNonEmptyString(this.measurement, "measurement");
196+
Preconditions.checkPositiveNumber(this.fields.size(), "fields size");
210197
Point point = new Point();
211198
point.setFields(this.fields);
212199
point.setMeasurement(this.measurement);
@@ -321,7 +308,7 @@ public String toString() {
321308
*/
322309
public String lineProtocol() {
323310
final StringBuilder sb = new StringBuilder();
324-
sb.append(KEY_ESCAPER.escape(this.measurement));
311+
sb.append(KEY_ESCAPER.apply(this.measurement));
325312
sb.append(concatenatedTags());
326313
sb.append(concatenateFields());
327314
sb.append(formatedTime());
@@ -332,9 +319,9 @@ private StringBuilder concatenatedTags() {
332319
final StringBuilder sb = new StringBuilder();
333320
for (Entry<String, String> tag : this.tags.entrySet()) {
334321
sb.append(",")
335-
.append(KEY_ESCAPER.escape(tag.getKey()))
322+
.append(KEY_ESCAPER.apply(tag.getKey()))
336323
.append("=")
337-
.append(KEY_ESCAPER.escape(tag.getValue()));
324+
.append(KEY_ESCAPER.apply(tag.getValue()));
338325
}
339326
sb.append(" ");
340327
return sb;
@@ -357,10 +344,10 @@ private StringBuilder concatenateFields() {
357344
continue;
358345
}
359346

360-
sb.append(KEY_ESCAPER.escape(field.getKey())).append("=");
347+
sb.append(KEY_ESCAPER.apply(field.getKey())).append("=");
361348
if (value instanceof String) {
362349
String stringValue = (String) value;
363-
sb.append("\"").append(FIELD_ESCAPER.escape(stringValue)).append("\"");
350+
sb.append("\"").append(FIELD_ESCAPER.apply(stringValue)).append("\"");
364351
} else if (value instanceof Number) {
365352
if (value instanceof Double || value instanceof Float || value instanceof BigDecimal) {
366353
sb.append(numberFormat.format(value));

src/main/java/org/influxdb/dto/Pong.java

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package org.influxdb.dto;
22

3-
import com.google.common.base.MoreObjects;
4-
53
/**
64
* Representation of the response for a influxdb ping.
75
*
@@ -47,11 +45,7 @@ public void setResponseTime(final long responseTime) {
4745
*/
4846
@Override
4947
public String toString() {
50-
return MoreObjects
51-
.toStringHelper(this.getClass())
52-
.add("version", this.version)
53-
.add("responseTime", this.responseTime)
54-
.toString();
48+
return "Pong{version=" + version + ", responseTime=" + responseTime + "}";
5549
}
5650

5751
}

src/main/java/org/influxdb/impl/BatchProcessor.java

+10-11
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package org.influxdb.impl;
22

33
import java.util.ArrayList;
4+
import java.util.HashMap;
45
import java.util.List;
56
import java.util.Map;
67
import java.util.Map.Entry;
8+
import java.util.Objects;
79
import java.util.concurrent.BlockingQueue;
810
import java.util.concurrent.Executors;
911
import java.util.concurrent.LinkedBlockingQueue;
@@ -18,9 +20,6 @@
1820
import org.influxdb.dto.BatchPoints;
1921
import org.influxdb.dto.Point;
2022

21-
import com.google.common.base.Preconditions;
22-
import com.google.common.collect.Maps;
23-
2423
/**
2524
* A BatchProcessor can be attached to a InfluxDB Instance to collect single point writes and
2625
* aggregates them to BatchPoints to get a better write performance.
@@ -114,12 +113,12 @@ public Builder exceptionHandler(final BiConsumer<Iterable<Point>, Throwable> han
114113
* @return the BatchProcessor instance.
115114
*/
116115
public BatchProcessor build() {
117-
Preconditions.checkNotNull(this.influxDB, "influxDB may not be null");
118-
Preconditions.checkArgument(this.actions > 0, "actions should > 0");
119-
Preconditions.checkArgument(this.flushInterval > 0, "flushInterval should > 0");
120-
Preconditions.checkNotNull(this.flushIntervalUnit, "flushIntervalUnit may not be null");
121-
Preconditions.checkNotNull(this.threadFactory, "threadFactory may not be null");
122-
Preconditions.checkNotNull(this.exceptionHandler, "exceptionHandler may not be null");
116+
Objects.requireNonNull(this.influxDB, "influxDB");
117+
Preconditions.checkPositiveNumber(this.actions, "actions");
118+
Preconditions.checkPositiveNumber(this.flushInterval, "flushInterval");
119+
Objects.requireNonNull(this.flushIntervalUnit, "flushIntervalUnit");
120+
Objects.requireNonNull(this.threadFactory, "threadFactory");
121+
Objects.requireNonNull(this.exceptionHandler, "exceptionHandler");
123122
return new BatchProcessor(this.influxDB, this.threadFactory, this.actions, this.flushIntervalUnit,
124123
this.flushInterval, exceptionHandler);
125124
}
@@ -212,9 +211,9 @@ void write() {
212211
return;
213212
}
214213
//for batch on HTTP.
215-
Map<String, BatchPoints> batchKeyToBatchPoints = Maps.newHashMap();
214+
Map<String, BatchPoints> batchKeyToBatchPoints = new HashMap<>();
216215
//for batch on UDP.
217-
Map<Integer, List<String>> udpPortToBatchPoints = Maps.newHashMap();
216+
Map<Integer, List<String>> udpPortToBatchPoints = new HashMap<>();
218217
List<AbstractBatchEntry> batchEntries = new ArrayList<>(this.queue.size());
219218
this.queue.drainTo(batchEntries);
220219
currentBatch = new ArrayList<>(batchEntries.size());

src/main/java/org/influxdb/impl/InfluxDBImpl.java

+7-13
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
package org.influxdb.impl;
22

33

4-
import com.google.common.base.Joiner;
5-
import com.google.common.base.Preconditions;
6-
import com.google.common.base.Stopwatch;
7-
import com.google.common.base.Strings;
8-
import com.google.common.collect.Lists;
94
import com.squareup.moshi.JsonAdapter;
105
import com.squareup.moshi.Moshi;
116

@@ -41,6 +36,7 @@
4136
import java.net.SocketException;
4237
import java.net.UnknownHostException;
4338
import java.nio.charset.StandardCharsets;
39+
import java.util.ArrayList;
4440
import java.util.List;
4541
import java.util.concurrent.Executors;
4642
import java.util.concurrent.ThreadFactory;
@@ -204,7 +200,7 @@ public boolean isBatchEnabled() {
204200

205201
@Override
206202
public Pong ping() {
207-
Stopwatch watch = Stopwatch.createStarted();
203+
final long started = System.currentTimeMillis();
208204
Call<ResponseBody> call = this.influxDBService.ping();
209205
try {
210206
Response<ResponseBody> response = call.execute();
@@ -218,7 +214,7 @@ public Pong ping() {
218214
}
219215
Pong pong = new Pong();
220216
pong.setVersion(version);
221-
pong.setResponseTime(watch.elapsed(TimeUnit.MILLISECONDS));
217+
pong.setResponseTime(System.currentTimeMillis() - started);
222218
return pong;
223219
} catch (IOException e) {
224220
throw new RuntimeException(e);
@@ -290,8 +286,7 @@ public void write(final String database, final String retentionPolicy, final Con
290286
@Override
291287
public void write(final String database, final String retentionPolicy, final ConsistencyLevel consistency,
292288
final List<String> records) {
293-
final String joinedRecords = Joiner.on("\n").join(records);
294-
write(database, retentionPolicy, consistency, joinedRecords);
289+
write(database, retentionPolicy, consistency, String.join("\n", records));
295290
}
296291

297292
/**
@@ -327,8 +322,7 @@ private void initialDatagramSocket() {
327322
*/
328323
@Override
329324
public void write(final int udpPort, final List<String> records) {
330-
final String joinedRecords = Joiner.on("\n").join(records);
331-
write(udpPort, joinedRecords);
325+
write(udpPort, String.join("\n", records));
332326
}
333327

334328
/**
@@ -406,7 +400,7 @@ public QueryResult query(final Query query, final TimeUnit timeUnit) {
406400
*/
407401
@Override
408402
public void createDatabase(final String name) {
409-
Preconditions.checkArgument(!Strings.isNullOrEmpty(name), "Database name may not be null or empty");
403+
Preconditions.checkNonEmptyString(name, "name");
410404
String createDatabaseQueryString = String.format("CREATE DATABASE \"%s\"", name);
411405
if (this.version().startsWith("0.")) {
412406
createDatabaseQueryString = String.format("CREATE DATABASE IF NOT EXISTS \"%s\"", name);
@@ -433,7 +427,7 @@ public List<String> describeDatabases() {
433427
// {"results":[{"series":[{"name":"databases","columns":["name"],"values":[["mydb"]]}]}]}
434428
// Series [name=databases, columns=[name], values=[[mydb], [unittest_1433605300968]]]
435429
List<List<Object>> databaseNames = result.getResults().get(0).getSeries().get(0).getValues();
436-
List<String> databases = Lists.newArrayList();
430+
List<String> databases = new ArrayList<>();
437431
if (databaseNames != null) {
438432
for (List<Object> database : databaseNames) {
439433
databases.add(database.get(0).toString());

0 commit comments

Comments
 (0)