From 67063f91b986f8e8af134a8c0fe9f524833e1030 Mon Sep 17 00:00:00 2001 From: "tomasz.kowalczewski" Date: Mon, 12 Jul 2021 23:41:30 +0200 Subject: [PATCH] Small steps toward reducing dependency on Netty in core. --- .../java/pl/tkowalcz/tjahzi/LogBufferTranscoder.java | 3 +-- .../tkowalcz/tjahzi/http/RequestAndResponseHandler.java | 5 ++++- .../main/java/pl/tkowalcz/tjahzi/http/TextBuilders.java | 9 +-------- .../tjahzi/stats/DropwizardMonitoringModule.java | 4 +--- .../pl/tkowalcz/tjahzi/stats/EmptyMonitoringModule.java | 5 +---- .../java/pl/tkowalcz/tjahzi/stats/MonitoringModule.java | 5 +---- .../tjahzi/stats/MutableMonitoringModuleWrapper.java | 5 +---- .../tkowalcz/tjahzi/stats/StandardMonitoringModule.java | 9 ++------- 8 files changed, 12 insertions(+), 33 deletions(-) diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/LogBufferTranscoder.java b/core/src/main/java/pl/tkowalcz/tjahzi/LogBufferTranscoder.java index 0f2ee11..e53debc 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/LogBufferTranscoder.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/LogBufferTranscoder.java @@ -2,7 +2,6 @@ package pl.tkowalcz.tjahzi; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; -import io.netty.util.internal.StringUtil; import org.agrona.DirectBuffer; import org.agrona.concurrent.AtomicBuffer; import pl.tkowalcz.tjahzi.http.TextBuilders; @@ -22,7 +21,7 @@ public class LogBufferTranscoder { this.staticLabels = staticLabels; this.staticLabelsString = buildLabelsStringIncludingStatic( staticLabels, - StringUtil.EMPTY_STRING, + "", TextBuilders.threadLocal().append("{ ") ).toString(); diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/http/RequestAndResponseHandler.java b/core/src/main/java/pl/tkowalcz/tjahzi/http/RequestAndResponseHandler.java index 09fe0cf..bf963c5 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/http/RequestAndResponseHandler.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/http/RequestAndResponseHandler.java @@ -39,7 +39,10 @@ class RequestAndResponseHandler extends ChannelDuplexHandler { monitoringModule.incrementHttpResponses(); if (msg.status().codeClass() != HttpStatusClass.SUCCESS) { System.out.println(msg.content().toString(Charset.defaultCharset())); - monitoringModule.incrementHttpErrors(msg.status(), msg.content()); + monitoringModule.incrementHttpErrors( + msg.status().code(), + msg.content().toString(Charset.defaultCharset()) + ); } if (!HttpUtil.isKeepAlive(msg)) { diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/http/TextBuilders.java b/core/src/main/java/pl/tkowalcz/tjahzi/http/TextBuilders.java index 2b7b0f5..190858a 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/http/TextBuilders.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/http/TextBuilders.java @@ -1,17 +1,10 @@ package pl.tkowalcz.tjahzi.http; -import io.netty.util.concurrent.FastThreadLocal; import pl.tkowalcz.tjahzi.utils.TextBuilder; public class TextBuilders { - private static final FastThreadLocal THREAD_LOCAL = new FastThreadLocal() { - - @Override - protected TextBuilder initialValue() { - return new TextBuilder(); - } - }; + private static final ThreadLocal THREAD_LOCAL = ThreadLocal.withInitial(TextBuilder::new); public static TextBuilder threadLocal() { TextBuilder result = THREAD_LOCAL.get(); diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/stats/DropwizardMonitoringModule.java b/core/src/main/java/pl/tkowalcz/tjahzi/stats/DropwizardMonitoringModule.java index 00fdfd3..4285e88 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/stats/DropwizardMonitoringModule.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/stats/DropwizardMonitoringModule.java @@ -4,8 +4,6 @@ import com.codahale.metrics.Counter; import com.codahale.metrics.Meter; import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.HttpResponseStatus; import java.time.Clock; import java.util.concurrent.TimeUnit; @@ -101,7 +99,7 @@ public class DropwizardMonitoringModule implements MonitoringModule { } @Override - public void incrementHttpErrors(HttpResponseStatus status, ByteBuf content) { + public void incrementHttpErrors(int status, String content) { responseErrors.inc(); } diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/stats/EmptyMonitoringModule.java b/core/src/main/java/pl/tkowalcz/tjahzi/stats/EmptyMonitoringModule.java index 2fca4c8..76edc9f 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/stats/EmptyMonitoringModule.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/stats/EmptyMonitoringModule.java @@ -1,8 +1,5 @@ package pl.tkowalcz.tjahzi.stats; -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.HttpResponseStatus; - public class EmptyMonitoringModule implements MonitoringModule { @Override @@ -46,7 +43,7 @@ public class EmptyMonitoringModule implements MonitoringModule { } @Override - public void incrementHttpErrors(HttpResponseStatus status, ByteBuf responseContent) { + public void incrementHttpErrors(int status, String content) { } @Override diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/stats/MonitoringModule.java b/core/src/main/java/pl/tkowalcz/tjahzi/stats/MonitoringModule.java index 3c1e972..6cfbc13 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/stats/MonitoringModule.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/stats/MonitoringModule.java @@ -1,8 +1,5 @@ package pl.tkowalcz.tjahzi.stats; -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.HttpResponseStatus; - import java.time.Clock; public interface MonitoringModule { @@ -31,7 +28,7 @@ public interface MonitoringModule { void incrementHttpResponses(); - void incrementHttpErrors(HttpResponseStatus status, ByteBuf content); + void incrementHttpErrors(int status, String content); void recordResponseTime(long time); } diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/stats/MutableMonitoringModuleWrapper.java b/core/src/main/java/pl/tkowalcz/tjahzi/stats/MutableMonitoringModuleWrapper.java index 00ba2e9..a324897 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/stats/MutableMonitoringModuleWrapper.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/stats/MutableMonitoringModuleWrapper.java @@ -1,8 +1,5 @@ package pl.tkowalcz.tjahzi.stats; -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.HttpResponseStatus; - public class MutableMonitoringModuleWrapper implements MonitoringModule { private MonitoringModule monitoringModule; @@ -62,7 +59,7 @@ public class MutableMonitoringModuleWrapper implements MonitoringModule { } @Override - public void incrementHttpErrors(HttpResponseStatus status, ByteBuf content) { + public void incrementHttpErrors(int status, String content) { monitoringModule.incrementHttpErrors(status, content); } diff --git a/core/src/main/java/pl/tkowalcz/tjahzi/stats/StandardMonitoringModule.java b/core/src/main/java/pl/tkowalcz/tjahzi/stats/StandardMonitoringModule.java index efaacca..aee9a7e 100644 --- a/core/src/main/java/pl/tkowalcz/tjahzi/stats/StandardMonitoringModule.java +++ b/core/src/main/java/pl/tkowalcz/tjahzi/stats/StandardMonitoringModule.java @@ -1,12 +1,9 @@ package pl.tkowalcz.tjahzi.stats; -import io.netty.buffer.ByteBuf; -import io.netty.handler.codec.http.HttpResponseStatus; import org.agrona.concurrent.SystemEpochClock; import org.agrona.concurrent.UnsafeBuffer; import org.agrona.concurrent.errors.DistinctErrorLog; -import java.nio.charset.Charset; import java.util.concurrent.atomic.AtomicLong; public class StandardMonitoringModule implements MonitoringModule { @@ -119,12 +116,10 @@ public class StandardMonitoringModule implements MonitoringModule { } @Override - public void incrementHttpErrors(HttpResponseStatus status, ByteBuf content) { + public void incrementHttpErrors(int status, String content) { failedHttpRequests.incrementAndGet(); distinctErrorLog.record( - new RuntimeException( - content.toString(Charset.defaultCharset()) - ) + new RuntimeException(content) ); }