Skip to content
This repository was archived by the owner on Jan 21, 2025. It is now read-only.

Commit b6c290b

Browse files
author
Daniel Norberg
authored
remove runtime guava dependency (#35)
1 parent 4a9370e commit b6c290b

File tree

6 files changed

+27
-28
lines changed

6 files changed

+27
-28
lines changed

pom.xml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,6 @@
8787
<artifactId>logback-core</artifactId>
8888
<version>1.2.3</version>
8989
</dependency>
90-
<dependency>
91-
<groupId>com.google.guava</groupId>
92-
<artifactId>guava</artifactId>
93-
<version>17.0</version>
94-
</dependency>
9590
<dependency>
9691
<groupId>net.logstash.logback</groupId>
9792
<artifactId>logstash-logback-encoder</artifactId>
@@ -142,6 +137,12 @@
142137
<version>2.11.3</version>
143138
<scope>test</scope>
144139
</dependency>
140+
<dependency>
141+
<groupId>com.google.guava</groupId>
142+
<artifactId>guava</artifactId>
143+
<version>17.0</version>
144+
<scope>test</scope>
145+
</dependency>
145146
</dependencies>
146147

147148
<build>

src/main/java/com/spotify/logging/LoggingConfigurator.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@
3737
package com.spotify.logging;
3838

3939
import static ch.qos.logback.classic.Level.OFF;
40-
import static com.google.common.base.Strings.emptyToNull;
41-
import static com.google.common.base.Strings.isNullOrEmpty;
4240
import static java.lang.System.getenv;
4341

4442
import ch.qos.logback.classic.Logger;
@@ -53,11 +51,11 @@
5351
import ch.qos.logback.core.joran.spi.JoranException;
5452
import ch.qos.logback.core.util.StatusPrinter;
5553
import com.getsentry.raven.logback.SentryAppender;
56-
import com.google.common.base.Charsets;
5754
import com.spotify.logging.logback.CustomLogstashEncoder;
5855
import com.spotify.logging.logback.MillisecondPrecisionSyslogAppender;
5956
import java.io.File;
6057
import java.lang.management.ManagementFactory;
58+
import java.nio.charset.StandardCharsets;
6159
import net.logstash.logback.composite.loggingevent.ArgumentsJsonProvider;
6260
import org.slf4j.LoggerFactory;
6361

@@ -372,7 +370,7 @@ private static Appender<ILoggingEvent> getStdErrAppender(
372370
"%date{HH:mm:ss.SSS} %property{ident}[%property{pid}]: %-5level [%thread] %logger{0}: "
373371
+ ReplaceNewLines.getMsgPattern(replaceNewLines)
374372
+ "%n");
375-
encoder.setCharset(Charsets.UTF_8);
373+
encoder.setCharset(StandardCharsets.UTF_8);
376374
encoder.start();
377375

378376
// Setup stderr appender
@@ -400,7 +398,7 @@ static Appender<ILoggingEvent> getSyslogAppender(
400398
final String host,
401399
final int port,
402400
final ReplaceNewLines replaceNewLines) {
403-
final String h = isNullOrEmpty(host) ? "localhost" : host;
401+
final String h = (host == null || host.isEmpty()) ? "localhost" : host;
404402
final int p = port < 0 ? 514 : port;
405403

406404
final MillisecondPrecisionSyslogAppender appender = new MillisecondPrecisionSyslogAppender();
@@ -409,7 +407,7 @@ static Appender<ILoggingEvent> getSyslogAppender(
409407
appender.setSyslogHost(h);
410408
appender.setPort(p);
411409
appender.setName("syslog");
412-
appender.setCharset(Charsets.UTF_8);
410+
appender.setCharset(StandardCharsets.UTF_8);
413411
appender.setContext(context);
414412
appender.setSuffixPattern(
415413
"%property{ident}[%property{pid}]: " + ReplaceNewLines.getMsgPattern(replaceNewLines));
@@ -450,7 +448,7 @@ static void configure(final JewelCliLoggingOptions opts) {
450448
// See if syslog host was specified via command line or environment variable.
451449
// The command line value takes precedence, which defaults to an empty string.
452450
String syslogHost = opts.syslogHost();
453-
if (isNullOrEmpty(syslogHost)) {
451+
if (syslogHost == null || syslogHost.isEmpty()) {
454452
syslogHost = getSyslogHost();
455453
}
456454

@@ -564,15 +562,17 @@ private static String getMyPid() {
564562
}
565563

566564
private static String getSyslogHost() {
567-
return emptyToNull(getenv(SPOTIFY_SYSLOG_HOST));
565+
final String host = System.getenv().getOrDefault(SPOTIFY_SYSLOG_HOST, "");
566+
return host.isEmpty() ? null : host;
568567
}
569568

570569
private static int getSyslogPort() {
571-
final String port = getenv(SPOTIFY_SYSLOG_PORT);
572-
return isNullOrEmpty(port) ? -1 : Integer.valueOf(port);
570+
final String port = System.getenv().getOrDefault(SPOTIFY_SYSLOG_PORT, "");
571+
return port.isEmpty() ? -1 : Integer.parseInt(port);
573572
}
574573

575574
private static String getSpotifyHostname() {
576-
return emptyToNull(getenv(SPOTIFY_HOSTNAME));
575+
final String hostname = System.getenv().getOrDefault(SPOTIFY_HOSTNAME, "");
576+
return hostname.isEmpty() ? null : hostname;
577577
}
578578
}

src/main/java/com/spotify/logging/logback/MillisecondPrecisionSyslogAppender.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,15 @@
4444
import ch.qos.logback.core.CoreConstants;
4545
import ch.qos.logback.core.Layout;
4646
import ch.qos.logback.core.net.SyslogAppenderBase;
47-
import com.google.common.base.Charsets;
48-
import com.google.common.base.Throwables;
4947
import java.io.IOException;
5048
import java.io.OutputStream;
5149
import java.lang.reflect.Field;
5250
import java.nio.charset.Charset;
51+
import java.nio.charset.StandardCharsets;
5352

5453
/** A {@link SyslogAppender} with millisecond timestamp precision. */
5554
public class MillisecondPrecisionSyslogAppender extends SyslogAppender {
56-
private Charset charset = Charsets.UTF_8;
55+
private Charset charset = StandardCharsets.UTF_8;
5756
PatternLayout stackTraceLayout = new PatternLayout();
5857
private OutputStream sos;
5958

@@ -199,7 +198,7 @@ private OutputStream getSyslogOutputStream() {
199198
f.setAccessible(true);
200199
return (OutputStream) f.get(this);
201200
} catch (ReflectiveOperationException e) {
202-
throw Throwables.propagate(e);
201+
throw new RuntimeException(e);
203202
}
204203
}
205204

src/main/java/com/spotify/logging/logback/MillisecondPrecisionSyslogStartConverter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@
4040
import ch.qos.logback.classic.spi.ILoggingEvent;
4141
import ch.qos.logback.classic.util.LevelToSyslogSeverity;
4242
import ch.qos.logback.core.net.SyslogAppenderBase;
43-
import com.google.common.base.Optional;
4443
import java.text.DateFormatSymbols;
4544
import java.text.SimpleDateFormat;
4645
import java.util.Date;
4746
import java.util.Locale;
47+
import java.util.Optional;
4848

4949
/** A {@link SyslogStartConverter} with millisecond timestamp precision. */
5050
public class MillisecondPrecisionSyslogStartConverter extends SyslogStartConverter {
@@ -69,7 +69,7 @@ public void start() {
6969
facility = SyslogAppenderBase.facilityStringToint(facilityStr);
7070

7171
localHostName =
72-
Optional.fromNullable(getContext().getProperty("hostname")).or(getLocalHostname());
72+
Optional.ofNullable(getContext().getProperty("hostname")).orElse(getLocalHostname());
7373

7474
try {
7575
// ASL doesn't handle milliseconds.

src/main/java/com/spotify/logging/logback/SpotifyInternalAppender.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,6 @@
2323
import ch.qos.logback.classic.net.SyslogAppender;
2424
import ch.qos.logback.core.CoreConstants;
2525
import ch.qos.logback.core.net.SyslogAppenderBase;
26-
import com.google.common.annotations.VisibleForTesting;
27-
import com.google.common.base.Preconditions;
2826
import com.spotify.logging.LoggingConfigurator;
2927
import java.lang.management.ManagementFactory;
3028

@@ -50,7 +48,9 @@ public class SpotifyInternalAppender extends MillisecondPrecisionSyslogAppender
5048

5149
@Override
5250
public void start() {
53-
Preconditions.checkState(serviceName != null, "serviceName must be configured");
51+
if (serviceName == null) {
52+
throw new IllegalStateException(String.valueOf("serviceName must be configured"));
53+
}
5454

5555
// set up some defaults
5656
setFacility("LOCAL0");
@@ -113,7 +113,6 @@ public void setReplaceNewLines(LoggingConfigurator.ReplaceNewLines replaceNewLin
113113
// copied from LoggingConfigurator to avoid making public and exposing externally.
114114
// TODO (bjorn): We probably want to move this to the utilities project.
115115
// Also, the portability of this function is not guaranteed.
116-
@VisibleForTesting
117116
static String getMyPid() {
118117
String pid = "0";
119118
try {

src/test/java/com/spotify/logging/logback/MillisecondPrecisionSyslogStartConverterTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@
3636

3737
package com.spotify.logging.logback;
3838

39+
import static java.util.Arrays.asList;
3940
import static org.junit.Assert.assertTrue;
4041

4142
import ch.qos.logback.classic.Level;
4243
import ch.qos.logback.classic.LoggerContext;
4344
import ch.qos.logback.classic.spi.LoggingEvent;
44-
import com.google.common.collect.ImmutableList;
4545
import org.junit.Test;
4646

4747
public class MillisecondPrecisionSyslogStartConverterTest {
@@ -56,7 +56,7 @@ public void shouldLogContextPropertyHostname() {
5656
MillisecondPrecisionSyslogStartConverter millisecondPrecisionSyslogStartConverter =
5757
new MillisecondPrecisionSyslogStartConverter();
5858
millisecondPrecisionSyslogStartConverter.setContext(context);
59-
millisecondPrecisionSyslogStartConverter.setOptionList(ImmutableList.of("LOCAL0"));
59+
millisecondPrecisionSyslogStartConverter.setOptionList(asList("LOCAL0"));
6060
millisecondPrecisionSyslogStartConverter.start();
6161

6262
LoggingEvent event = new LoggingEvent();

0 commit comments

Comments
 (0)