From a2b461dc882e617d034ec1f6ec6bebb0ac296348 Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Tue, 16 May 2023 14:04:27 +0400 Subject: [PATCH 1/9] Finer grained netty dependencies --- libp2p/build.gradle.kts | 9 ++++++++- tools/simulator/build.gradle | 2 ++ versions.gradle | 9 ++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/libp2p/build.gradle.kts b/libp2p/build.gradle.kts index 246b41836..497726425 100644 --- a/libp2p/build.gradle.kts +++ b/libp2p/build.gradle.kts @@ -5,7 +5,12 @@ plugins { } dependencies { - api("io.netty:netty-all") + api("io.netty:netty-common") + api("io.netty:netty-buffer") + api("io.netty:netty-transport") + implementation("io.netty:netty-handler") + implementation("io.netty:netty-codec-http") + api("com.google.protobuf:protobuf-java") implementation("commons-codec:commons-codec") @@ -16,6 +21,8 @@ dependencies { testImplementation(project(":tools:schedulers")) + testFixturesImplementation("io.netty:netty-transport-classes-epoll") + jmhImplementation(project(":tools:schedulers")) jmhImplementation("org.openjdk.jmh:jmh-core") jmhAnnotationProcessor("org.openjdk.jmh:jmh-generator-annprocess") diff --git a/tools/simulator/build.gradle b/tools/simulator/build.gradle index 2529f783a..4798a1dbf 100644 --- a/tools/simulator/build.gradle +++ b/tools/simulator/build.gradle @@ -5,6 +5,8 @@ dependencies { api project(':libp2p') api project(':tools:schedulers') + implementation("io.netty:netty-handler") + implementation("org.jgrapht:jgrapht-core:1.3.1") api("org.apache.commons:commons-math3:3.6.1") implementation("org.jetbrains.kotlin:kotlin-reflect:1.3.0") diff --git a/versions.gradle b/versions.gradle index d7c299f79..cdf96f735 100644 --- a/versions.gradle +++ b/versions.gradle @@ -27,7 +27,14 @@ dependencyManagement { entry 'protobuf-java' entry 'protoc' } - dependency "io.netty:netty-all:4.1.87.Final" + dependencySet(group: "io.netty", version: "4.1.87.Final") { + entry 'netty-common' + entry 'netty-handler' + entry 'netty-transport' + entry 'netty-buffer' + entry 'netty-codec-http' + entry 'netty-transport-classes-epoll' + } dependency "commons-codec:commons-codec:1.15" dependency "tech.pegasys:noise-java:22.1.0" dependencySet(group: "org.bouncycastle", version: "1.70") { From 92f8e27a1b3d28a5ecd8635c7187ce52ead332b8 Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Tue, 16 May 2023 15:22:43 +0400 Subject: [PATCH 2/9] Get rid of Apache commons-codec dependency --- libp2p/build.gradle.kts | 1 - .../main/kotlin/io/libp2p/core/multiformats/Protocol.kt | 8 +++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/libp2p/build.gradle.kts b/libp2p/build.gradle.kts index 497726425..b2942bd0c 100644 --- a/libp2p/build.gradle.kts +++ b/libp2p/build.gradle.kts @@ -13,7 +13,6 @@ dependencies { api("com.google.protobuf:protobuf-java") - implementation("commons-codec:commons-codec") implementation("tech.pegasys:noise-java") implementation("org.bouncycastle:bcprov-jdk15on") diff --git a/libp2p/src/main/kotlin/io/libp2p/core/multiformats/Protocol.kt b/libp2p/src/main/kotlin/io/libp2p/core/multiformats/Protocol.kt index c190823a3..3a6a513f2 100644 --- a/libp2p/src/main/kotlin/io/libp2p/core/multiformats/Protocol.kt +++ b/libp2p/src/main/kotlin/io/libp2p/core/multiformats/Protocol.kt @@ -9,7 +9,7 @@ import io.libp2p.etc.types.toByteArray import io.libp2p.etc.types.toByteBuf import io.libp2p.etc.types.writeUvarint import io.netty.buffer.ByteBuf -import org.apache.commons.codec.binary.Base32 +import org.bouncycastle.util.encoders.Base32 import java.net.Inet4Address import java.net.Inet6Address import java.net.InetAddress @@ -186,10 +186,8 @@ private val ONION_PARSER: (Protocol, String) -> ByteArray = { _, addr -> // onion address without the ".onion" substring if (split[0].length != 16) throw IllegalArgumentException("failed to parse addr: $addr not a Tor onion address.") - val base32 = Base32() val base32Text = split[0].uppercase() - if (!base32.isInAlphabet(base32Text)) throw IllegalArgumentException("Invalid Base32 string in the Onion address: $base32Text") - val onionHostBytes = base32.decode(base32Text) + val onionHostBytes = Base32.decode(base32Text) val port = split[1].toInt() if (port > 65535) throw IllegalArgumentException("Port is > 65535: $port") if (port < 1) throw IllegalArgumentException("Port is < 1: $port") @@ -203,5 +201,5 @@ private val ONION_STRINGIFIER: (Protocol, ByteArray) -> String = { _, bytes -> val byteBuf = bytes.toByteBuf() val host = byteBuf.readBytes(10).toByteArray() val port = byteBuf.readUnsignedShort() - String(Base32().encode(host)).lowercase() + ":" + port + Base32.toBase32String(host).lowercase() + ":" + port } From 7e508170e65829534694ad3cbedcdb5519f616e3 Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Tue, 16 May 2023 21:10:11 +0400 Subject: [PATCH 3/9] Mirgete logging to Slf4j --- build.gradle.kts | 7 +--- libp2p/build.gradle.kts | 2 + .../discovery/mdns/impl/DNSIncoming.java | 18 +++------ .../discovery/mdns/impl/DNSQuestion.java | 13 +++---- .../libp2p/discovery/mdns/impl/DNSRecord.java | 6 +-- .../libp2p/discovery/mdns/impl/HostInfo.java | 12 +++--- .../libp2p/discovery/mdns/impl/JmDNSImpl.java | 31 +++------------ .../discovery/mdns/impl/ServiceInfoImpl.java | 16 ++------ .../discovery/mdns/impl/SocketListener.java | 13 +++---- .../mdns/impl/constants/DNSRecordClass.java | 6 +-- .../mdns/impl/constants/DNSRecordType.java | 6 +-- .../discovery/mdns/impl/tasks/Responder.java | 17 +++------ .../mdns/impl/tasks/ServiceResolver.java | 6 +-- .../libp2p/core/multiformats/MultiaddrDns.kt | 6 +-- .../kotlin/io/libp2p/etc/util/P2PService.kt | 4 +- .../etc/util/netty/mux/AbstractMuxHandler.kt | 4 +- .../kotlin/io/libp2p/pubsub/AbstractRouter.kt | 4 +- .../io/libp2p/pubsub/gossip/GossipRouter.kt | 38 ++----------------- .../io/libp2p/security/noise/NoiseXXCodec.kt | 4 +- .../security/noise/NoiseXXSecureChannel.kt | 4 +- .../io/libp2p/security/secio/SecIoCodec.kt | 4 +- .../security/secio/SecIoSecureChannel.kt | 4 +- .../libp2p/security/SecureChannelTestBase.kt | 4 +- .../libp2p/security/secio/EchoSampleTest.kt | 4 +- .../kotlin/io/libp2p/tools/TestChannel.kt | 4 +- .../kotlin/io/libp2p/tools/TestHandler.kt | 4 +- .../io/libp2p/transport/TransportTests.kt | 4 +- .../tools/schedulers/DefaultSchedulers.java | 6 +-- .../tools/schedulers/LoggerMDCExecutor.java | 10 ++--- tools/simulator/build.gradle | 1 - 30 files changed, 96 insertions(+), 166 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 2b09f3ab5..a342e562d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -47,16 +47,13 @@ allprojects { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core") implementation("com.google.guava:guava") - implementation("org.apache.logging.log4j:log4j-api") - - testFixturesImplementation("org.apache.logging.log4j:log4j-api") - testFixturesImplementation("com.google.guava:guava") + implementation("org.slf4j:slf4j-api:2.0.7") testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("org.junit.jupiter:junit-jupiter-params") testImplementation("io.mockk:mockk") testImplementation("org.assertj:assertj-core") - testImplementation("org.apache.logging.log4j:log4j-core") + testRuntimeOnly("org.apache.logging.log4j:log4j-slf4j-impl") } java { diff --git a/libp2p/build.gradle.kts b/libp2p/build.gradle.kts index b2942bd0c..22c3f643c 100644 --- a/libp2p/build.gradle.kts +++ b/libp2p/build.gradle.kts @@ -19,6 +19,8 @@ dependencies { implementation("org.bouncycastle:bcpkix-jdk15on") testImplementation(project(":tools:schedulers")) + testImplementation(project(":tools:schedulers")) + testImplementation("org.apache.logging.log4j:log4j-core") testFixturesImplementation("io.netty:netty-transport-classes-epoll") diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java index 351da96d5..73bd2125d 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java @@ -4,6 +4,10 @@ package io.libp2p.discovery.mdns.impl; +import io.libp2p.discovery.mdns.impl.constants.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.ByteArrayInputStream; import java.io.IOException; import java.net.DatagramPacket; @@ -11,30 +15,20 @@ import java.util.HashMap; import java.util.Map; -import io.libp2p.discovery.mdns.impl.constants.DNSRecordClass; -import io.libp2p.discovery.mdns.impl.constants.DNSRecordType; -import io.libp2p.discovery.mdns.impl.constants.DNSResultCode; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; - -import io.libp2p.discovery.mdns.impl.constants.DNSConstants; -import io.libp2p.discovery.mdns.impl.constants.DNSLabel; -import io.libp2p.discovery.mdns.impl.constants.DNSOptionCode; - /** * Parse an incoming DNS message into its components. * * @author Arthur van Hoff, Werner Randelshofer, Pierre Frisch, Daniel Bobbert */ public final class DNSIncoming extends DNSMessage { - private static Logger logger = LogManager.getLogger(DNSIncoming.class.getName()); + private static Logger logger = LoggerFactory.getLogger(DNSIncoming.class.getName()); // This is a hack to handle a bug in the BonjourConformanceTest // It is sending out target strings that don't follow the "domain name" format. public static boolean USE_DOMAIN_NAME_FORMAT_FOR_SRV_TARGET = true; public static class MessageInputStream extends ByteArrayInputStream { - private static Logger logger1 = LogManager.getLogger(MessageInputStream.class.getName()); + private static Logger logger1 = LoggerFactory.getLogger(MessageInputStream.class.getName()); final Map _names; diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java index eccba86c4..1dc53fbf3 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java @@ -4,15 +4,14 @@ package io.libp2p.discovery.mdns.impl; -import java.util.Set; - +import io.libp2p.discovery.mdns.ServiceInfo; +import io.libp2p.discovery.mdns.impl.constants.DNSConstants; import io.libp2p.discovery.mdns.impl.constants.DNSRecordClass; import io.libp2p.discovery.mdns.impl.constants.DNSRecordType; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -import io.libp2p.discovery.mdns.ServiceInfo; -import io.libp2p.discovery.mdns.impl.constants.DNSConstants; +import java.util.Set; /** * A DNS question. @@ -20,7 +19,7 @@ * @author Arthur van Hoff, Pierre Frisch */ public class DNSQuestion extends DNSEntry { - private static Logger logger = LogManager.getLogger(DNSQuestion.class.getName()); + private static Logger logger = LoggerFactory.getLogger(DNSQuestion.class.getName()); /** * Pointer question. diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSRecord.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSRecord.java index bdc3e9ddd..6e75a6c47 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSRecord.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSRecord.java @@ -8,8 +8,8 @@ import io.libp2p.discovery.mdns.impl.constants.DNSRecordClass; import io.libp2p.discovery.mdns.impl.constants.DNSRecordType; import io.libp2p.discovery.mdns.impl.util.ByteWrangler; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.DataOutputStream; import java.io.IOException; @@ -26,7 +26,7 @@ * @author Arthur van Hoff, Rick Blair, Werner Randelshofer, Pierre Frisch */ public abstract class DNSRecord extends DNSEntry { - private static Logger logger = LogManager.getLogger(DNSRecord.class.getName()); + private static Logger logger = LoggerFactory.getLogger(DNSRecord.class.getName()); private int _ttl; private long _created; diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java index dd47bb6dd..60252497e 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java @@ -4,12 +4,14 @@ package io.libp2p.discovery.mdns.impl; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.IOException; import java.net.*; -import java.util.*; - -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; +import java.util.Enumeration; +import java.util.HashSet; +import java.util.Set; /** * HostInfo information on the local host to be able to cope with change of addresses. @@ -17,7 +19,7 @@ * @author Pierre Frisch, Werner Randelshofer */ public class HostInfo { - private static Logger logger = LogManager.getLogger(HostInfo.class.getName()); + private static Logger logger = LoggerFactory.getLogger(HostInfo.class.getName()); protected String _name; diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java index d8ad47121..c2bb8700d 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java @@ -12,32 +12,13 @@ import io.libp2p.discovery.mdns.impl.tasks.Responder; import io.libp2p.discovery.mdns.impl.tasks.ServiceResolver; import io.libp2p.discovery.mdns.impl.util.NamedThreadFactory; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; -import java.net.DatagramPacket; -import java.net.Inet6Address; -import java.net.InetAddress; -import java.net.InetSocketAddress; -import java.net.MulticastSocket; -import java.net.SocketAddress; -import java.net.SocketException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.concurrent.CancellationException; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; +import java.net.*; +import java.util.*; +import java.util.concurrent.*; import java.util.concurrent.locks.ReentrantLock; /** @@ -46,7 +27,7 @@ * @author Arthur van Hoff, Rick Blair, Jeff Sonstein, Werner Randelshofer, Pierre Frisch, Scott Lewis, Kai Kreuzer, Victor Toni */ public class JmDNSImpl extends JmDNS { - private static Logger logger = LogManager.getLogger(JmDNSImpl.class.getName()); + private static Logger logger = LoggerFactory.getLogger(JmDNSImpl.class.getName()); /** * This is the multicast group, we are listening to for multicast DNS messages. diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java index 27ddfdd78..79298be56 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java @@ -7,22 +7,14 @@ import io.libp2p.discovery.mdns.ServiceInfo; import io.libp2p.discovery.mdns.impl.constants.DNSRecordClass; import io.libp2p.discovery.mdns.impl.util.ByteWrangler; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; /** * JmDNS service information. @@ -30,7 +22,7 @@ * @author Arthur van Hoff, Jeff Sonstein, Werner Randelshofer, Victor Toni */ public class ServiceInfoImpl extends ServiceInfo { - private static Logger logger = LogManager.getLogger(ServiceInfoImpl.class.getName()); + private static Logger logger = LoggerFactory.getLogger(ServiceInfoImpl.class.getName()); private String _domain; private String _protocol; diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java index cf349253b..4ed5b3c31 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java @@ -4,23 +4,22 @@ package io.libp2p.discovery.mdns.impl; +import io.libp2p.discovery.mdns.impl.constants.DNSConstants; +import io.libp2p.discovery.mdns.impl.util.NamedThreadFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.IOException; import java.net.DatagramPacket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; -import io.libp2p.discovery.mdns.impl.util.NamedThreadFactory; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; - -import io.libp2p.discovery.mdns.impl.constants.DNSConstants; - /** * Listen for multicast packets. */ class SocketListener implements Runnable { - static Logger logger = LogManager.getLogger(SocketListener.class.getName()); + static Logger logger = LoggerFactory.getLogger(SocketListener.class.getName()); private final JmDNSImpl _jmDNSImpl; private final String _name; diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordClass.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordClass.java index 41c8ff49d..359279f88 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordClass.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordClass.java @@ -3,8 +3,8 @@ */ package io.libp2p.discovery.mdns.impl.constants; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * DNS Record Class @@ -41,7 +41,7 @@ public enum DNSRecordClass { */ CLASS_ANY("any", 255); - private static Logger logger = LogManager.getLogger(DNSRecordClass.class.getName()); + private static Logger logger = LoggerFactory.getLogger(DNSRecordClass.class.getName()); /** * Multicast DNS uses the bottom 15 bits to identify the record class...
diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordType.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordType.java index 3f2e36a26..0ad1e8e9f 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordType.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/constants/DNSRecordType.java @@ -3,8 +3,8 @@ */ package io.libp2p.discovery.mdns.impl.constants; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * DNS Record Type @@ -249,7 +249,7 @@ public enum DNSRecordType { */ TYPE_ANY("any", 255); - private static Logger logger = LogManager.getLogger(DNSRecordType.class.getName()); + private static Logger logger = LoggerFactory.getLogger(DNSRecordType.class.getName()); private final String _externalName; diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java index 1a576384c..7699e8574 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java @@ -4,6 +4,11 @@ package io.libp2p.discovery.mdns.impl.tasks; +import io.libp2p.discovery.mdns.impl.*; +import io.libp2p.discovery.mdns.impl.constants.DNSConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -11,21 +16,11 @@ import java.util.Set; import java.util.concurrent.TimeUnit; -import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.LogManager; - -import io.libp2p.discovery.mdns.impl.DNSIncoming; -import io.libp2p.discovery.mdns.impl.DNSOutgoing; -import io.libp2p.discovery.mdns.impl.DNSQuestion; -import io.libp2p.discovery.mdns.impl.DNSRecord; -import io.libp2p.discovery.mdns.impl.JmDNSImpl; -import io.libp2p.discovery.mdns.impl.constants.DNSConstants; - /** * The Responder sends a single answer for the specified service infos and for the host name. */ public class Responder extends DNSTask { - static Logger logger = LogManager.getLogger(Responder.class.getName()); + static Logger logger = LoggerFactory.getLogger(Responder.class.getName()); private final DNSIncoming _in; diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/ServiceResolver.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/ServiceResolver.java index 895a7c71d..4b15a5544 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/ServiceResolver.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/ServiceResolver.java @@ -10,8 +10,8 @@ import io.libp2p.discovery.mdns.impl.constants.DNSConstants; import io.libp2p.discovery.mdns.impl.constants.DNSRecordClass; import io.libp2p.discovery.mdns.impl.constants.DNSRecordType; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.concurrent.Future; @@ -22,7 +22,7 @@ * The ServiceResolver queries three times consecutively for services of a given type, and then removes itself from the timer. */ public class ServiceResolver extends DNSTask { - private static Logger logger = LogManager.getLogger(ServiceResolver.class.getName()); + private static Logger logger = LoggerFactory.getLogger(ServiceResolver.class.getName()); private final String _type; private final int _queryInterval; diff --git a/libp2p/src/main/kotlin/io/libp2p/core/multiformats/MultiaddrDns.kt b/libp2p/src/main/kotlin/io/libp2p/core/multiformats/MultiaddrDns.kt index 61e0fcd4a..294fc5a8a 100644 --- a/libp2p/src/main/kotlin/io/libp2p/core/multiformats/MultiaddrDns.kt +++ b/libp2p/src/main/kotlin/io/libp2p/core/multiformats/MultiaddrDns.kt @@ -1,6 +1,6 @@ package io.libp2p.core.multiformats -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import java.net.Inet4Address import java.net.Inet6Address import java.net.InetAddress @@ -13,7 +13,7 @@ class MultiaddrDns { } companion object { - private val log = LogManager.getLogger(MultiaddrDns::class.java) + private val log = LoggerFactory.getLogger(MultiaddrDns::class.java) private val dnsProtocols = arrayOf(Protocol.DNS4, Protocol.DNS6, Protocol.DNSADDR) fun resolve(addr: Multiaddr, resolver: Resolver = DefaultResolver): List { @@ -54,7 +54,7 @@ class MultiaddrDns { } } } catch (e: UnknownHostException) { - log.debug(e) + log.debug("Unknown error", e) return emptyList() // squash, as this might not be fatal, // and if it is we'll handle this higher up the call chain diff --git a/libp2p/src/main/kotlin/io/libp2p/etc/util/P2PService.kt b/libp2p/src/main/kotlin/io/libp2p/etc/util/P2PService.kt index f48f05b50..13c2d3f38 100644 --- a/libp2p/src/main/kotlin/io/libp2p/etc/util/P2PService.kt +++ b/libp2p/src/main/kotlin/io/libp2p/etc/util/P2PService.kt @@ -8,11 +8,11 @@ import io.libp2p.etc.types.toVoidCompletableFuture import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelInboundHandlerAdapter import io.netty.util.ReferenceCountUtil -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import java.util.concurrent.CompletableFuture import java.util.concurrent.ScheduledExecutorService -private val logger = LogManager.getLogger(P2PService::class.java) +private val logger = LoggerFactory.getLogger(P2PService::class.java) /** * Base class for a service which manages many streams from different peers diff --git a/libp2p/src/main/kotlin/io/libp2p/etc/util/netty/mux/AbstractMuxHandler.kt b/libp2p/src/main/kotlin/io/libp2p/etc/util/netty/mux/AbstractMuxHandler.kt index e6433d1a3..8dec78669 100644 --- a/libp2p/src/main/kotlin/io/libp2p/etc/util/netty/mux/AbstractMuxHandler.kt +++ b/libp2p/src/main/kotlin/io/libp2p/etc/util/netty/mux/AbstractMuxHandler.kt @@ -7,13 +7,13 @@ import io.libp2p.etc.types.completedExceptionally import io.libp2p.etc.types.hasCauseOfType import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelInboundHandlerAdapter -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import java.util.concurrent.CompletableFuture import java.util.function.Function typealias MuxChannelInitializer = (MuxChannel) -> Unit -private val log = LogManager.getLogger(AbstractMuxHandler::class.java) +private val log = LoggerFactory.getLogger(AbstractMuxHandler::class.java) abstract class AbstractMuxHandler() : ChannelInboundHandlerAdapter() { diff --git a/libp2p/src/main/kotlin/io/libp2p/pubsub/AbstractRouter.kt b/libp2p/src/main/kotlin/io/libp2p/pubsub/AbstractRouter.kt index 9d6dfbb27..1c9d78e50 100644 --- a/libp2p/src/main/kotlin/io/libp2p/pubsub/AbstractRouter.kt +++ b/libp2p/src/main/kotlin/io/libp2p/pubsub/AbstractRouter.kt @@ -11,7 +11,7 @@ import io.netty.channel.ChannelHandler import io.netty.handler.codec.protobuf.ProtobufDecoder import io.netty.handler.codec.protobuf.ProtobufEncoder import io.netty.handler.codec.protobuf.ProtobufVarint32LengthFieldPrepender -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import pubsub.pb.Rpc import java.util.Collections.singletonList import java.util.Optional @@ -29,7 +29,7 @@ open class DefaultPubsubMessage(override val protobufMessage: Rpc.Message) : Abs override val messageId: MessageId = protobufMessage.from.toWBytes() + protobufMessage.seqno.toWBytes() } -private val logger = LogManager.getLogger(AbstractRouter::class.java) +private val logger = LoggerFactory.getLogger(AbstractRouter::class.java) /** * Implements common logic for pubsub routers diff --git a/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt b/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt index 0afc3eb24..b6c18fffe 100644 --- a/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt +++ b/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt @@ -7,48 +7,18 @@ import io.libp2p.core.pubsub.ValidationResult import io.libp2p.etc.types.* import io.libp2p.etc.util.P2PService import io.libp2p.pubsub.* -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import pubsub.pb.Rpc import java.time.Duration -import java.util.* +import java.util.Optional +import java.util.Random import java.util.concurrent.CompletableFuture import java.util.concurrent.ScheduledExecutorService import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger -import kotlin.collections.Collection -import kotlin.collections.List -import kotlin.collections.MutableMap -import kotlin.collections.MutableSet -import kotlin.collections.any import kotlin.collections.component1 import kotlin.collections.component2 -import kotlin.collections.count -import kotlin.collections.distinct -import kotlin.collections.drop -import kotlin.collections.filter -import kotlin.collections.filterNot -import kotlin.collections.flatMap -import kotlin.collections.flatten -import kotlin.collections.forEach -import kotlin.collections.getOrPut -import kotlin.collections.isNotEmpty -import kotlin.collections.linkedMapOf -import kotlin.collections.map -import kotlin.collections.mapNotNull -import kotlin.collections.minus -import kotlin.collections.minusAssign -import kotlin.collections.mutableMapOf -import kotlin.collections.mutableSetOf -import kotlin.collections.none -import kotlin.collections.plus -import kotlin.collections.plusAssign -import kotlin.collections.reversed import kotlin.collections.set -import kotlin.collections.shuffled -import kotlin.collections.sortedBy -import kotlin.collections.sum -import kotlin.collections.take -import kotlin.collections.toMutableSet import kotlin.math.max import kotlin.math.min @@ -71,7 +41,7 @@ fun P2PService.PeerHandler.getPeerProtocol(): PubsubProtocol { return PubsubProtocol.fromProtocol(proto) } -private val logger = LogManager.getLogger(GossipRouter::class.java) +private val logger = LoggerFactory.getLogger(GossipRouter::class.java) /** * Router implementing this protocol: https://github.com/libp2p/specs/tree/master/pubsub/gossipsub diff --git a/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXCodec.kt b/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXCodec.kt index 0ccd56305..548d1bce1 100644 --- a/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXCodec.kt +++ b/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXCodec.kt @@ -9,11 +9,11 @@ import io.netty.buffer.ByteBuf import io.netty.buffer.Unpooled import io.netty.channel.ChannelHandlerContext import io.netty.handler.codec.MessageToMessageCodec -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import java.io.IOException import java.security.GeneralSecurityException -private val logger = LogManager.getLogger(NoiseXXSecureChannel::class.java.name) +private val logger = LoggerFactory.getLogger(NoiseXXSecureChannel::class.java.name) class NoiseXXCodec(val aliceCipher: CipherState, val bobCipher: CipherState) : MessageToMessageCodec() { diff --git a/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXSecureChannel.kt b/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXSecureChannel.kt index 40bff231b..c894a366c 100644 --- a/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXSecureChannel.kt +++ b/libp2p/src/main/kotlin/io/libp2p/security/noise/NoiseXXSecureChannel.kt @@ -27,13 +27,13 @@ import io.netty.channel.SimpleChannelInboundHandler import io.netty.handler.codec.LengthFieldBasedFrameDecoder import io.netty.handler.codec.LengthFieldPrepender import io.netty.handler.timeout.ReadTimeoutHandler -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import spipe.pb.Spipe import java.util.concurrent.CompletableFuture enum class Role(val intVal: Int) { INIT(HandshakeState.INITIATOR), RESP(HandshakeState.RESPONDER) } -private val log = LogManager.getLogger(NoiseXXSecureChannel::class.java) +private val log = LoggerFactory.getLogger(NoiseXXSecureChannel::class.java) const val HandshakeNettyHandlerName = "HandshakeNettyHandler" const val HandshakeReadTimeoutNettyHandlerName = "HandshakeReadTimeoutNettyHandler" const val NoiseCodeNettyHandlerName = "NoiseXXCodec" diff --git a/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoCodec.kt b/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoCodec.kt index fb97ba04e..dfdbbb3d5 100644 --- a/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoCodec.kt +++ b/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoCodec.kt @@ -10,16 +10,16 @@ import io.netty.buffer.ByteBuf import io.netty.buffer.Unpooled import io.netty.channel.ChannelHandlerContext import io.netty.handler.codec.MessageToMessageCodec -import org.apache.logging.log4j.LogManager import org.bouncycastle.crypto.StreamCipher import org.bouncycastle.crypto.engines.AESEngine import org.bouncycastle.crypto.modes.SICBlockCipher import org.bouncycastle.crypto.params.KeyParameter import org.bouncycastle.crypto.params.ParametersWithIV +import org.slf4j.LoggerFactory import java.io.IOException class SecIoCodec(val local: SecioParams, val remote: SecioParams) : MessageToMessageCodec() { - private val log = LogManager.getLogger(SecIoCodec::class.java) + private val log = LoggerFactory.getLogger(SecIoCodec::class.java) private val localCipher = createCipher(local) private val remoteCipher = createCipher(remote) diff --git a/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoSecureChannel.kt b/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoSecureChannel.kt index 27157648b..c0a026d54 100644 --- a/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoSecureChannel.kt +++ b/libp2p/src/main/kotlin/io/libp2p/security/secio/SecIoSecureChannel.kt @@ -12,10 +12,10 @@ import io.netty.channel.ChannelHandlerContext import io.netty.channel.SimpleChannelInboundHandler import io.netty.handler.codec.LengthFieldBasedFrameDecoder import io.netty.handler.codec.LengthFieldPrepender -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import java.util.concurrent.CompletableFuture -private val log = LogManager.getLogger(SecIoSecureChannel::class.java) +private val log = LoggerFactory.getLogger(SecIoSecureChannel::class.java) private val HandshakeHandlerName = "SecIoHandshake" class SecIoSecureChannel(private val localKey: PrivKey) : SecureChannel { diff --git a/libp2p/src/test/kotlin/io/libp2p/security/SecureChannelTestBase.kt b/libp2p/src/test/kotlin/io/libp2p/security/SecureChannelTestBase.kt index 7c6f9fa06..cf69d61fb 100644 --- a/libp2p/src/test/kotlin/io/libp2p/security/SecureChannelTestBase.kt +++ b/libp2p/src/test/kotlin/io/libp2p/security/SecureChannelTestBase.kt @@ -18,17 +18,17 @@ import io.netty.buffer.ByteBuf import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelInboundHandlerAdapter import io.netty.util.ResourceLeakDetector -import org.apache.logging.log4j.LogManager import org.assertj.core.api.Assertions.fail import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.MethodSource +import org.slf4j.LoggerFactory import java.nio.charset.StandardCharsets import java.util.concurrent.LinkedBlockingQueue import java.util.concurrent.TimeUnit typealias SecureChannelCtor = (PrivKey) -> SecureChannel -val logger = LogManager.getLogger(SecureChannelTestBase::class.java) +val logger = LoggerFactory.getLogger(SecureChannelTestBase::class.java) abstract class SecureChannelTestBase( val secureChannelCtor: SecureChannelCtor, diff --git a/libp2p/src/test/kotlin/io/libp2p/security/secio/EchoSampleTest.kt b/libp2p/src/test/kotlin/io/libp2p/security/secio/EchoSampleTest.kt index 1d885e21c..595926ad4 100644 --- a/libp2p/src/test/kotlin/io/libp2p/security/secio/EchoSampleTest.kt +++ b/libp2p/src/test/kotlin/io/libp2p/security/secio/EchoSampleTest.kt @@ -21,10 +21,10 @@ import io.netty.channel.ChannelHandler import io.netty.channel.ChannelHandlerContext import io.netty.handler.logging.LogLevel import io.netty.handler.logging.LoggingHandler -import org.apache.logging.log4j.LogManager import org.junit.jupiter.api.Assertions import org.junit.jupiter.api.Disabled import org.junit.jupiter.api.Test +import org.slf4j.LoggerFactory import java.util.concurrent.CompletableFuture import java.util.concurrent.TimeUnit @@ -51,7 +51,7 @@ class EchoSampleTest { @Test @Disabled fun connect1() { - val logger = LogManager.getLogger("test") + val logger = LoggerFactory.getLogger("test") val (privKey1, _) = generateKeyPair(KEY_TYPE.ECDSA) val applicationProtocols = listOf(createSimpleBinding("/echo/1.0.0") { EchoProtocol() }) diff --git a/libp2p/src/test/kotlin/io/libp2p/tools/TestChannel.kt b/libp2p/src/test/kotlin/io/libp2p/tools/TestChannel.kt index ab00151fb..74ba9f44f 100644 --- a/libp2p/src/test/kotlin/io/libp2p/tools/TestChannel.kt +++ b/libp2p/src/test/kotlin/io/libp2p/tools/TestChannel.kt @@ -10,7 +10,7 @@ import io.libp2p.transport.implementation.ConnectionOverNetty import io.netty.channel.ChannelHandler import io.netty.channel.ChannelId import io.netty.channel.embedded.EmbeddedChannel -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory import java.net.InetSocketAddress import java.net.SocketAddress import java.util.concurrent.CompletableFuture @@ -101,7 +101,7 @@ class TestChannel( return TestConnection(ch1, ch2) } - private val logger = LogManager.getLogger(TestChannel::class.java) + private val logger = LoggerFactory.getLogger(TestChannel::class.java) } class TestConnection(val ch1: TestChannel, val ch2: TestChannel) { diff --git a/libp2p/src/test/kotlin/io/libp2p/tools/TestHandler.kt b/libp2p/src/test/kotlin/io/libp2p/tools/TestHandler.kt index 28edfd85d..7fcf6b333 100644 --- a/libp2p/src/test/kotlin/io/libp2p/tools/TestHandler.kt +++ b/libp2p/src/test/kotlin/io/libp2p/tools/TestHandler.kt @@ -5,7 +5,7 @@ import io.libp2p.etc.types.toHex import io.netty.buffer.ByteBuf import io.netty.channel.ChannelHandlerContext import io.netty.channel.ChannelInboundHandlerAdapter -import org.apache.logging.log4j.LogManager +import org.slf4j.LoggerFactory open class TestHandler(val name: String = "") : ChannelInboundHandlerAdapter() { override fun channelActive(ctx: ChannelHandlerContext) { @@ -49,6 +49,6 @@ open class TestHandler(val name: String = "") : ChannelInboundHandlerAdapter() { } companion object { - private val logger = LogManager.getLogger(TestHandler::class.java) + private val logger = LoggerFactory.getLogger(TestHandler::class.java) } } diff --git a/libp2p/src/test/kotlin/io/libp2p/transport/TransportTests.kt b/libp2p/src/test/kotlin/io/libp2p/transport/TransportTests.kt index 2fff556d5..7e0975434 100644 --- a/libp2p/src/test/kotlin/io/libp2p/transport/TransportTests.kt +++ b/libp2p/src/test/kotlin/io/libp2p/transport/TransportTests.kt @@ -5,7 +5,6 @@ import io.libp2p.core.ConnectionHandler import io.libp2p.core.Libp2pException import io.libp2p.core.multiformats.Multiaddr import io.libp2p.core.transport.Transport -import org.apache.logging.log4j.LogManager import org.junit.jupiter.api.AfterEach import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertThrows @@ -13,6 +12,7 @@ import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Tag import org.junit.jupiter.api.Test import org.junit.jupiter.api.condition.DisabledIfEnvironmentVariable +import org.slf4j.LoggerFactory import java.util.concurrent.CompletableFuture import java.util.concurrent.TimeUnit.SECONDS import java.util.concurrent.atomic.AtomicBoolean @@ -25,7 +25,7 @@ abstract class TransportTests { protected lateinit var transportUnderTest: Transport protected val nullConnHandler = ConnectionHandler { } - protected val logger = LogManager.getLogger("test") + protected val logger = LoggerFactory.getLogger("test") protected fun startListeners(server: Transport, startPortNumber: Int, howMany: Int) { val listening = (0 until howMany).map { diff --git a/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/DefaultSchedulers.java b/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/DefaultSchedulers.java index f3cad73bf..837012929 100644 --- a/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/DefaultSchedulers.java +++ b/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/DefaultSchedulers.java @@ -1,8 +1,8 @@ package io.libp2p.tools.schedulers; import com.google.common.util.concurrent.ThreadFactoryBuilder; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -11,7 +11,7 @@ public class DefaultSchedulers extends AbstractSchedulers { - private static final Logger logger = LogManager.getLogger(DefaultSchedulers.class); + private static final Logger logger = LoggerFactory.getLogger(DefaultSchedulers.class); private Consumer errorHandler = t -> logger.error("Unhandled exception:", t); private volatile boolean started; diff --git a/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/LoggerMDCExecutor.java b/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/LoggerMDCExecutor.java index f35747a32..2bd55b4c8 100644 --- a/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/LoggerMDCExecutor.java +++ b/tools/schedulers/src/main/java/io/libp2p/tools/schedulers/LoggerMDCExecutor.java @@ -1,6 +1,6 @@ package io.libp2p.tools.schedulers; -import org.apache.logging.log4j.ThreadContext; +import org.slf4j.MDC; import java.util.ArrayList; import java.util.List; @@ -31,15 +31,15 @@ public LoggerMDCExecutor add(String mdcKey, Supplier mdcValueSupplier) { public void execute(Runnable command) { List oldValues = new ArrayList<>(mdcKeys.size()); for (int i = 0; i < mdcKeys.size(); i++) { - oldValues.add(ThreadContext.get(mdcKeys.get(i))); - ThreadContext.put(mdcKeys.get(i), mdcValueSuppliers.get(i).get()); + oldValues.add(MDC.get(mdcKeys.get(i))); + MDC.put(mdcKeys.get(i), mdcValueSuppliers.get(i).get()); } delegateExecutor.execute(command); for (int i = 0; i < mdcKeys.size(); i++) { if (oldValues.get(i) == null) { - ThreadContext.remove(mdcKeys.get(i)); + MDC.remove(mdcKeys.get(i)); } else { - ThreadContext.put(mdcKeys.get(i), oldValues.get(i)); + MDC.put(mdcKeys.get(i), oldValues.get(i)); } } } diff --git a/tools/simulator/build.gradle b/tools/simulator/build.gradle index 4798a1dbf..c709cff36 100644 --- a/tools/simulator/build.gradle +++ b/tools/simulator/build.gradle @@ -11,7 +11,6 @@ dependencies { api("org.apache.commons:commons-math3:3.6.1") implementation("org.jetbrains.kotlin:kotlin-reflect:1.3.0") - runtimeOnly("org.apache.logging.log4j:log4j-core") runtimeOnly("org.apache.logging.log4j:log4j-slf4j-impl") } From 7120c70139c4a34958cf91101b534c3acf4a2f06 Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Wed, 17 May 2023 17:40:06 +0400 Subject: [PATCH 4/9] Remove duplicate entry from build script --- libp2p/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/libp2p/build.gradle.kts b/libp2p/build.gradle.kts index f1e918e6d..0c99e0d79 100644 --- a/libp2p/build.gradle.kts +++ b/libp2p/build.gradle.kts @@ -18,7 +18,6 @@ dependencies { implementation("org.bouncycastle:bcprov-jdk15on") implementation("org.bouncycastle:bcpkix-jdk15on") - testImplementation(project(":tools:schedulers")) testImplementation(project(":tools:schedulers")) testImplementation("org.apache.logging.log4j:log4j-core") From b18c2a031f978d2a844aa327461a7ecb1bb9945a Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Wed, 17 May 2023 17:53:08 +0400 Subject: [PATCH 5/9] Replace log4j-slf4j-impl with log4j-slf4j2-impl dependency --- build.gradle.kts | 2 +- examples/cli-chatter/build.gradle | 2 +- examples/pinger/build.gradle | 2 +- tools/simulator/build.gradle | 2 +- versions.gradle | 3 +-- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7a81a5927..9c7090a1f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -62,7 +62,7 @@ configure( testImplementation("org.junit.jupiter:junit-jupiter-params") testImplementation("io.mockk:mockk") testImplementation("org.assertj:assertj-core") - testRuntimeOnly("org.apache.logging.log4j:log4j-slf4j-impl") + testRuntimeOnly("org.apache.logging.log4j:log4j-slf4j2-impl") } java { diff --git a/examples/cli-chatter/build.gradle b/examples/cli-chatter/build.gradle index faa0bc75e..1d970e4b6 100644 --- a/examples/cli-chatter/build.gradle +++ b/examples/cli-chatter/build.gradle @@ -5,7 +5,7 @@ plugins { dependencies { implementation project(':examples:chatter') - runtimeOnly("org.apache.logging.log4j:log4j-core") + runtimeOnly("org.apache.logging.log4j:log4j-slf4j2-impl") } application { diff --git a/examples/pinger/build.gradle b/examples/pinger/build.gradle index 953517813..b4ce18580 100644 --- a/examples/pinger/build.gradle +++ b/examples/pinger/build.gradle @@ -5,7 +5,7 @@ plugins { dependencies { implementation project(':libp2p') - runtimeOnly("org.apache.logging.log4j:log4j-core") + runtimeOnly("org.apache.logging.log4j:log4j-slf4j2-impl") } application { diff --git a/tools/simulator/build.gradle b/tools/simulator/build.gradle index c709cff36..bab7ad655 100644 --- a/tools/simulator/build.gradle +++ b/tools/simulator/build.gradle @@ -11,7 +11,7 @@ dependencies { api("org.apache.commons:commons-math3:3.6.1") implementation("org.jetbrains.kotlin:kotlin-reflect:1.3.0") - runtimeOnly("org.apache.logging.log4j:log4j-slf4j-impl") + runtimeOnly("org.apache.logging.log4j:log4j-slf4j2-impl") } diff --git a/versions.gradle b/versions.gradle index cdf96f735..f49b64a5d 100644 --- a/versions.gradle +++ b/versions.gradle @@ -3,10 +3,9 @@ dependencyManagement { dependency "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" dependency "com.google.guava:guava:31.1-jre" - dependencySet(group: 'org.apache.logging.log4j', version: '2.19.0') { + dependencySet(group: 'org.apache.logging.log4j', version: '2.20.0') { entry 'log4j-api' entry 'log4j-core' - entry 'log4j-slf4j-impl' entry 'log4j-slf4j2-impl' } From b020e04fce96e7ca8567ce7d838c500f022bb45d Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Wed, 17 May 2023 18:11:56 +0400 Subject: [PATCH 6/9] Remove duplicate build entry --- libp2p/build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/libp2p/build.gradle.kts b/libp2p/build.gradle.kts index 0c99e0d79..89c85a2d8 100644 --- a/libp2p/build.gradle.kts +++ b/libp2p/build.gradle.kts @@ -23,8 +23,6 @@ dependencies { testFixturesImplementation("io.netty:netty-transport-classes-epoll") - testFixturesImplementation("io.netty:netty-transport-classes-epoll") - jmhImplementation(project(":tools:schedulers")) jmhImplementation("org.openjdk.jmh:jmh-core") jmhAnnotationProcessor("org.openjdk.jmh:jmh-generator-annprocess") From 1a77570659af0b2c174fc9c6ce15eda85bfcfa3a Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Wed, 17 May 2023 18:13:06 +0400 Subject: [PATCH 7/9] Move slf4j dependency version to versions.gradle --- build.gradle.kts | 2 +- versions.gradle | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9c7090a1f..dfe2d0e01 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -56,7 +56,7 @@ configure( implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core") implementation("com.google.guava:guava") - implementation("org.slf4j:slf4j-api:2.0.7") + implementation("org.slf4j:slf4j-api") testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("org.junit.jupiter:junit-jupiter-params") diff --git a/versions.gradle b/versions.gradle index f49b64a5d..0305071bb 100644 --- a/versions.gradle +++ b/versions.gradle @@ -3,8 +3,9 @@ dependencyManagement { dependency "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4" dependency "com.google.guava:guava:31.1-jre" + + dependency "org.slf4j:slf4j-api:2.0.7" dependencySet(group: 'org.apache.logging.log4j', version: '2.20.0') { - entry 'log4j-api' entry 'log4j-core' entry 'log4j-slf4j2-impl' } From 98af5959dea4c0479a913aa0ee51536d6e945f67 Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Wed, 17 May 2023 18:46:13 +0400 Subject: [PATCH 8/9] Revert back java *-imports --- .../discovery/mdns/impl/DNSIncoming.java | 14 ++++++++--- .../discovery/mdns/impl/DNSQuestion.java | 7 +++--- .../libp2p/discovery/mdns/impl/HostInfo.java | 10 +++----- .../libp2p/discovery/mdns/impl/JmDNSImpl.java | 25 ++++++++++++++++--- .../discovery/mdns/impl/ServiceInfoImpl.java | 10 +++++++- .../discovery/mdns/impl/SocketListener.java | 11 ++++---- .../discovery/mdns/impl/tasks/Responder.java | 15 +++++++---- 7 files changed, 65 insertions(+), 27 deletions(-) diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java index 73bd2125d..f71bf1e29 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSIncoming.java @@ -4,10 +4,6 @@ package io.libp2p.discovery.mdns.impl; -import io.libp2p.discovery.mdns.impl.constants.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.ByteArrayInputStream; import java.io.IOException; import java.net.DatagramPacket; @@ -15,6 +11,16 @@ import java.util.HashMap; import java.util.Map; +import io.libp2p.discovery.mdns.impl.constants.DNSRecordClass; +import io.libp2p.discovery.mdns.impl.constants.DNSRecordType; +import io.libp2p.discovery.mdns.impl.constants.DNSResultCode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.libp2p.discovery.mdns.impl.constants.DNSConstants; +import io.libp2p.discovery.mdns.impl.constants.DNSLabel; +import io.libp2p.discovery.mdns.impl.constants.DNSOptionCode; + /** * Parse an incoming DNS message into its components. * diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java index 1dc53fbf3..789aaf418 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/DNSQuestion.java @@ -4,14 +4,15 @@ package io.libp2p.discovery.mdns.impl; -import io.libp2p.discovery.mdns.ServiceInfo; -import io.libp2p.discovery.mdns.impl.constants.DNSConstants; +import java.util.Set; + import io.libp2p.discovery.mdns.impl.constants.DNSRecordClass; import io.libp2p.discovery.mdns.impl.constants.DNSRecordType; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Set; +import io.libp2p.discovery.mdns.ServiceInfo; +import io.libp2p.discovery.mdns.impl.constants.DNSConstants; /** * A DNS question. diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java index 60252497e..c93d6d983 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/HostInfo.java @@ -4,14 +4,12 @@ package io.libp2p.discovery.mdns.impl; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.*; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.Set; +import java.util.*; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * HostInfo information on the local host to be able to cope with change of addresses. diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java index c2bb8700d..d050053c4 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/JmDNSImpl.java @@ -16,9 +16,28 @@ import org.slf4j.LoggerFactory; import java.io.IOException; -import java.net.*; -import java.util.*; -import java.util.concurrent.*; +import java.net.DatagramPacket; +import java.net.Inet6Address; +import java.net.InetAddress; +import java.net.InetSocketAddress; +import java.net.MulticastSocket; +import java.net.SocketAddress; +import java.net.SocketException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Random; +import java.util.concurrent.CancellationException; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import java.util.concurrent.locks.ReentrantLock; /** diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java index 79298be56..cc0c94dbf 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/ServiceInfoImpl.java @@ -14,7 +14,15 @@ import java.net.Inet4Address; import java.net.Inet6Address; import java.net.InetAddress; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; /** * JmDNS service information. diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java index 4ed5b3c31..3edbf9acc 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/SocketListener.java @@ -4,17 +4,18 @@ package io.libp2p.discovery.mdns.impl; -import io.libp2p.discovery.mdns.impl.constants.DNSConstants; -import io.libp2p.discovery.mdns.impl.util.NamedThreadFactory; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.DatagramPacket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; +import io.libp2p.discovery.mdns.impl.util.NamedThreadFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.libp2p.discovery.mdns.impl.constants.DNSConstants; + /** * Listen for multicast packets. */ diff --git a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java index 7699e8574..77dab738e 100644 --- a/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java +++ b/libp2p/src/main/java/io/libp2p/discovery/mdns/impl/tasks/Responder.java @@ -4,11 +4,6 @@ package io.libp2p.discovery.mdns.impl.tasks; -import io.libp2p.discovery.mdns.impl.*; -import io.libp2p.discovery.mdns.impl.constants.DNSConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; @@ -16,6 +11,16 @@ import java.util.Set; import java.util.concurrent.TimeUnit; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import io.libp2p.discovery.mdns.impl.DNSIncoming; +import io.libp2p.discovery.mdns.impl.DNSOutgoing; +import io.libp2p.discovery.mdns.impl.DNSQuestion; +import io.libp2p.discovery.mdns.impl.DNSRecord; +import io.libp2p.discovery.mdns.impl.JmDNSImpl; +import io.libp2p.discovery.mdns.impl.constants.DNSConstants; + /** * The Responder sends a single answer for the specified service infos and for the host name. */ From 245508966250ff572c022c7c738e6ddcadc1cfd7 Mon Sep 17 00:00:00 2001 From: Anton Nashatyrev Date: Wed, 17 May 2023 18:48:11 +0400 Subject: [PATCH 9/9] Revert back import optimizations --- .../io/libp2p/pubsub/gossip/GossipRouter.kt | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt b/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt index b6c18fffe..2d3b21625 100644 --- a/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt +++ b/libp2p/src/main/kotlin/io/libp2p/pubsub/gossip/GossipRouter.kt @@ -10,15 +10,45 @@ import io.libp2p.pubsub.* import org.slf4j.LoggerFactory import pubsub.pb.Rpc import java.time.Duration -import java.util.Optional -import java.util.Random +import java.util.* import java.util.concurrent.CompletableFuture import java.util.concurrent.ScheduledExecutorService import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.AtomicInteger +import kotlin.collections.Collection +import kotlin.collections.List +import kotlin.collections.MutableMap +import kotlin.collections.MutableSet +import kotlin.collections.any import kotlin.collections.component1 import kotlin.collections.component2 +import kotlin.collections.count +import kotlin.collections.distinct +import kotlin.collections.drop +import kotlin.collections.filter +import kotlin.collections.filterNot +import kotlin.collections.flatMap +import kotlin.collections.flatten +import kotlin.collections.forEach +import kotlin.collections.getOrPut +import kotlin.collections.isNotEmpty +import kotlin.collections.linkedMapOf +import kotlin.collections.map +import kotlin.collections.mapNotNull +import kotlin.collections.minus +import kotlin.collections.minusAssign +import kotlin.collections.mutableMapOf +import kotlin.collections.mutableSetOf +import kotlin.collections.none +import kotlin.collections.plus +import kotlin.collections.plusAssign +import kotlin.collections.reversed import kotlin.collections.set +import kotlin.collections.shuffled +import kotlin.collections.sortedBy +import kotlin.collections.sum +import kotlin.collections.take +import kotlin.collections.toMutableSet import kotlin.math.max import kotlin.math.min