Skip to content

Commit 5460a97

Browse files
authored
Remove Guava dependency (close #320)
For PR #351. * Change Preconditions to normal Java * Replace ImmutableMap and Lists
1 parent 0918930 commit 5460a97

File tree

19 files changed

+266
-274
lines changed

19 files changed

+266
-274
lines changed

build.gradle

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,6 @@ dependencies {
7575
// Jackson JSON processor
7676
api 'com.fasterxml.jackson.core:jackson-databind:2.13.3'
7777

78-
// Preconditions
79-
api 'com.google.guava:guava:31.1-jre'
80-
8178
// Testing libraries
8279
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
8380
testCompileOnly 'junit:junit:4.13.2'

examples/simple-console/src/main/java/com/snowplowanalytics/Main.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import com.snowplowanalytics.snowplow.tracker.events.*;
2121
import com.snowplowanalytics.snowplow.tracker.payload.SelfDescribingJson;
2222

23-
import java.util.List;
23+
import java.util.Collections;
2424
import static java.util.Collections.singletonList;
25+
import java.util.List;
2526

26-
import com.google.common.collect.ImmutableMap;
2727

2828
public class Main {
2929

@@ -61,7 +61,7 @@ public static void main(String[] args) throws InterruptedException {
6161
List<SelfDescribingJson> context = singletonList(
6262
new SelfDescribingJson(
6363
"iglu:com.snowplowanalytics.iglu/anything-c/jsonschema/1-0-0",
64-
ImmutableMap.of("foo", "bar")));
64+
Collections.singletonMap("foo", "bar")));
6565

6666
// This is an example of a eventSubject for adding user data
6767
Subject eventSubject = new Subject.SubjectBuilder().build();
@@ -111,7 +111,7 @@ public static void main(String[] args) throws InterruptedException {
111111
SelfDescribing selfDescribing = SelfDescribing.builder()
112112
.eventData(new SelfDescribingJson(
113113
"iglu:com.snowplowanalytics.iglu/anything-a/jsonschema/1-0-0",
114-
ImmutableMap.of("foo", "bar")
114+
Collections.singletonMap("foo", "bar")
115115
))
116116
.customContext(context)
117117
.build();

src/main/java/com/snowplowanalytics/snowplow/tracker/Tracker.java

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
*/
1313
package com.snowplowanalytics.snowplow.tracker;
1414

15-
import com.google.common.base.Preconditions;
16-
1715
import com.snowplowanalytics.snowplow.tracker.constants.Constants;
1816
import com.snowplowanalytics.snowplow.tracker.constants.Parameter;
1917
import com.snowplowanalytics.snowplow.tracker.emitter.Emitter;
@@ -41,11 +39,15 @@ public class Tracker {
4139
private Tracker(TrackerBuilder builder) {
4240

4341
// Precondition checks
44-
Preconditions.checkNotNull(builder.emitter);
45-
Preconditions.checkNotNull(builder.namespace);
46-
Preconditions.checkNotNull(builder.appId);
47-
Preconditions.checkArgument(!builder.namespace.isEmpty(), "namespace cannot be empty");
48-
Preconditions.checkArgument(!builder.appId.isEmpty(), "appId cannot be empty");
42+
Objects.requireNonNull(builder.emitter);
43+
Objects.requireNonNull(builder.namespace);
44+
Objects.requireNonNull(builder.appId);
45+
if (builder.namespace.isEmpty()) {
46+
throw new IllegalArgumentException("namespace cannot be empty");
47+
}
48+
if (builder.appId.isEmpty()) {
49+
throw new IllegalArgumentException("appId cannot be empty");
50+
}
4951

5052
this.parameters = new TrackerParameters(builder.appId, builder.platform, builder.namespace, Version.TRACKER, builder.base64Encoded);
5153
this.emitter = builder.emitter;

src/main/java/com/snowplowanalytics/snowplow/tracker/emitter/BatchEmitter.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
import java.util.ArrayList;
1717
import java.util.List;
1818
import java.util.Map;
19+
import java.util.Objects;
1920
import java.util.concurrent.Executors;
2021
import java.util.concurrent.ScheduledExecutorService;
2122
import java.util.concurrent.ThreadFactory;
2223
import java.util.concurrent.TimeUnit;
2324
import java.util.concurrent.atomic.AtomicInteger;
2425

25-
import com.google.common.base.Preconditions;
2626
import com.snowplowanalytics.snowplow.tracker.constants.Constants;
2727
import com.snowplowanalytics.snowplow.tracker.constants.Parameter;
2828
import com.snowplowanalytics.snowplow.tracker.http.HttpClientAdapter;
@@ -203,13 +203,20 @@ protected BatchEmitter(final Builder<?> builder) {
203203
OkHttpClient client;
204204

205205
// Precondition checks
206-
Preconditions.checkArgument(builder.threadCount > 0, "threadCount must be greater than 0");
207-
Preconditions.checkArgument(builder.batchSize > 0, "batchSize must be greater than 0");
206+
if (builder.threadCount <= 0) {
207+
throw new IllegalArgumentException("threadCount must be greater than 0");
208+
}
209+
if (builder.batchSize <= 0) {
210+
throw new IllegalArgumentException("batchSize must be greater than 0");
211+
}
212+
if (builder.bufferCapacity <= 0) {
213+
throw new IllegalArgumentException("bufferCapacity must be greater than 0");
214+
}
208215

209216
if (builder.httpClientAdapter != null) {
210217
httpClientAdapter = builder.httpClientAdapter;
211218
} else {
212-
Preconditions.checkNotNull(builder.collectorUrl, "Collector url must be specified if not using a httpClientAdapter");
219+
Objects.requireNonNull(builder.collectorUrl, "Collector url must be specified if not using a httpClientAdapter");
213220

214221
if (builder.cookieJar != null) {
215222
client = new OkHttpClient.Builder()
@@ -299,7 +306,9 @@ public List<TrackerPayload> getBuffer() {
299306
*/
300307
@Override
301308
public void setBatchSize(final int batchSize) {
302-
Preconditions.checkArgument(batchSize > 0, "batchSize must be greater than 0");
309+
if (batchSize <= 0) {
310+
throw new IllegalArgumentException("batchSize must be greater than 0");
311+
}
303312
this.batchSize = batchSize;
304313
}
305314

src/main/java/com/snowplowanalytics/snowplow/tracker/events/AbstractEvent.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616
import java.util.ArrayList;
1717
import java.util.LinkedList;
1818
import java.util.List;
19-
20-
// Google
21-
import com.google.common.base.Preconditions;
19+
import java.util.Objects;
2220

2321
// This library
2422
import com.snowplowanalytics.snowplow.tracker.Subject;
@@ -104,7 +102,7 @@ public static Builder<?> builder() {
104102
protected AbstractEvent(Builder<?> builder) {
105103

106104
// Precondition checks
107-
Preconditions.checkNotNull(builder.context);
105+
Objects.requireNonNull(builder.context);
108106

109107
this.context = builder.context;
110108
this.trueTimestamp = builder.trueTimestamp;

src/main/java/com/snowplowanalytics/snowplow/tracker/events/EcommerceTransaction.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616
import java.util.ArrayList;
1717
import java.util.Collections;
1818
import java.util.List;
19-
20-
// Google
21-
import com.google.common.base.Preconditions;
19+
import java.util.Objects;
2220

2321
// This library
2422
import com.snowplowanalytics.snowplow.tracker.constants.Parameter;
@@ -214,10 +212,12 @@ protected EcommerceTransaction(Builder<?> builder) {
214212
super(builder);
215213

216214
// Precondition checks
217-
Preconditions.checkNotNull(builder.orderId);
218-
Preconditions.checkNotNull(builder.totalValue);
219-
Preconditions.checkNotNull(builder.items);
220-
Preconditions.checkArgument(!builder.orderId.isEmpty(), "orderId cannot be empty");
215+
Objects.requireNonNull(builder.orderId);
216+
Objects.requireNonNull(builder.totalValue);
217+
Objects.requireNonNull(builder.items);
218+
if (builder.orderId.isEmpty()) {
219+
throw new IllegalArgumentException("orderId cannot be empty");
220+
}
221221

222222
this.orderId = builder.orderId;
223223
this.totalValue = builder.totalValue;

src/main/java/com/snowplowanalytics/snowplow/tracker/events/EcommerceTransactionItem.java

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,13 @@
1212
*/
1313
package com.snowplowanalytics.snowplow.tracker.events;
1414

15-
// Google
16-
17-
import com.google.common.base.Preconditions;
18-
1915
// This library
2016
import com.snowplowanalytics.snowplow.tracker.constants.Parameter;
2117
import com.snowplowanalytics.snowplow.tracker.constants.Constants;
2218
import com.snowplowanalytics.snowplow.tracker.payload.TrackerPayload;
2319

20+
import java.util.Objects;
21+
2422
/**
2523
* Constructs an EcommerceTransactionItem object.
2624
* <p>
@@ -155,12 +153,16 @@ protected EcommerceTransactionItem(Builder<?> builder) {
155153
super(builder);
156154

157155
// Precondition checks
158-
Preconditions.checkNotNull(builder.itemId);
159-
Preconditions.checkNotNull(builder.sku);
160-
Preconditions.checkNotNull(builder.price);
161-
Preconditions.checkNotNull(builder.quantity);
162-
Preconditions.checkArgument(!builder.itemId.isEmpty(), "itemId cannot be empty");
163-
Preconditions.checkArgument(!builder.sku.isEmpty(), "sku cannot be empty");
156+
Objects.requireNonNull(builder.itemId);
157+
Objects.requireNonNull(builder.sku);
158+
Objects.requireNonNull(builder.price);
159+
Objects.requireNonNull(builder.quantity);
160+
if (builder.itemId.isEmpty()) {
161+
throw new IllegalArgumentException("itemId cannot be empty");
162+
}
163+
if (builder.sku.isEmpty()) {
164+
throw new IllegalArgumentException("sku cannot be empty");
165+
}
164166

165167
this.itemId = builder.itemId;
166168
this.sku = builder.sku;

src/main/java/com/snowplowanalytics/snowplow/tracker/events/PageView.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,13 @@
1212
*/
1313
package com.snowplowanalytics.snowplow.tracker.events;
1414

15-
// Google
16-
import com.google.common.base.Preconditions;
17-
1815
// This library
1916
import com.snowplowanalytics.snowplow.tracker.constants.Parameter;
2017
import com.snowplowanalytics.snowplow.tracker.constants.Constants;
2118
import com.snowplowanalytics.snowplow.tracker.payload.TrackerPayload;
2219

20+
import java.util.Objects;
21+
2322
/**
2423
* Constructs a PageView event object.
2524
*
@@ -90,8 +89,10 @@ protected PageView(Builder<?> builder) {
9089
super(builder);
9190

9291
// Precondition checks
93-
Preconditions.checkNotNull(builder.pageUrl);
94-
Preconditions.checkArgument(!builder.pageUrl.isEmpty(), "pageUrl cannot be empty");
92+
Objects.requireNonNull(builder.pageUrl);
93+
if (builder.pageUrl.isEmpty()) {
94+
throw new IllegalArgumentException("pageUrl cannot be empty");
95+
}
9596

9697
this.pageUrl = builder.pageUrl;
9798
this.pageTitle = builder.pageTitle;

src/main/java/com/snowplowanalytics/snowplow/tracker/events/ScreenView.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@
1212
*/
1313
package com.snowplowanalytics.snowplow.tracker.events;
1414

15-
import com.google.common.base.Preconditions;
16-
1715
import com.snowplowanalytics.snowplow.tracker.constants.Parameter;
1816
import com.snowplowanalytics.snowplow.tracker.constants.Constants;
1917
import com.snowplowanalytics.snowplow.tracker.payload.SelfDescribingJson;
@@ -77,7 +75,9 @@ protected ScreenView(Builder<?> builder) {
7775
super(builder);
7876

7977
// Precondition checks
80-
Preconditions.checkArgument(builder.name != null || builder.id != null);
78+
if (builder.name == null || builder.id == null) {
79+
throw new IllegalArgumentException();
80+
}
8181

8282
this.name = builder.name;
8383
this.id = builder.id;

src/main/java/com/snowplowanalytics/snowplow/tracker/events/SelfDescribing.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,14 @@
1212
*/
1313
package com.snowplowanalytics.snowplow.tracker.events;
1414

15-
// Google
16-
import com.google.common.base.Preconditions;
17-
1815
// This library
1916
import com.snowplowanalytics.snowplow.tracker.constants.Parameter;
2017
import com.snowplowanalytics.snowplow.tracker.constants.Constants;
2118
import com.snowplowanalytics.snowplow.tracker.payload.SelfDescribingJson;
2219
import com.snowplowanalytics.snowplow.tracker.payload.TrackerPayload;
2320

21+
import java.util.Objects;
22+
2423
/**
2524
* Constructs a SelfDescribing event object.
2625
*
@@ -70,7 +69,7 @@ protected SelfDescribing(Builder<?> builder) {
7069
super(builder);
7170

7271
// Precondition checks
73-
Preconditions.checkNotNull(builder.eventData);
72+
Objects.requireNonNull(builder.eventData);
7473

7574
this.eventData = builder.eventData;
7675
}

0 commit comments

Comments
 (0)