Skip to content

Commit 2e620d2

Browse files
BarbatosBarbatos
authored andcommitted
fix(p2p): address review findings for dependency and API compatibility
- Replace BasicThreadFactory.builder() with new BasicThreadFactory.Builder() to use commons-lang3 3.4-compatible API, preventing implicit global version upgrade from 3.4 to 3.18.0 - Remove unused grpc-core dependency (p2p protos define only messages, no gRPC services); retain grpc-netty as Netty transport provider - Add p2p/.gitignore to exclude proto-generated code for all developers - Update verification-metadata.xml for changed dependency tree
1 parent babb6ea commit 2e620d2

13 files changed

Lines changed: 24 additions & 29 deletions

File tree

gradle/verification-metadata.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -372,6 +372,9 @@
372372
</artifact>
373373
</component>
374374
<component group="com.google.errorprone" name="error_prone_annotations" version="2.18.0">
375+
<artifact name="error_prone_annotations-2.18.0.jar">
376+
<sha256 value="9e6814cb71816988a4fd1b07a993a8f21bb7058d522c162b1de849e19bea54ae" origin="Generated by Gradle"/>
377+
</artifact>
375378
<artifact name="error_prone_annotations-2.18.0.pom">
376379
<sha256 value="920135797dcca5917b5a5c017642a58d340a4cd1bcd12f56f892a5663bd7bddc" origin="Generated by Gradle"/>
377380
</artifact>

p2p/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# protobuf generated code (rebuilt by ./gradlew :p2p:generateProto)
2+
src/main/java/org/tron/p2p/protos/

p2p/build.gradle

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ checkstyleMain {
1313
}
1414

1515
def protobufVersion = '3.25.8'
16-
def grpcVersion = '1.75.0'
1716

1817
sourceSets {
1918
main {
@@ -30,8 +29,9 @@ dependencies {
3029
// protobuf & grpc (implementation scope: not leaked to consumers)
3130
implementation "com.google.protobuf:protobuf-java:${protobufVersion}"
3231
implementation "com.google.protobuf:protobuf-java-util:${protobufVersion}"
33-
implementation "io.grpc:grpc-netty:${grpcVersion}"
34-
implementation "io.grpc:grpc-core:${grpcVersion}"
32+
// grpc-netty provides Netty transitively, which p2p uses for TCP/UDP transport.
33+
// grpc itself is not used (p2p protos define only messages, no services).
34+
implementation "io.grpc:grpc-netty:1.75.0"
3535

3636
// p2p-specific dependencies
3737
implementation 'org.xerial.snappy:snappy-java:1.1.10.5'
@@ -58,10 +58,9 @@ dependencies {
5858
exclude group: 'xpp3', module: 'xpp3'
5959
}
6060

61-
// commons-lang3: libp2p uses BasicThreadFactory.builder() which requires 3.12+.
62-
// Root build.gradle provides 3.4 globally but as 'implementation' (not on compile classpath).
63-
// Declare 3.18.0 (matching original libp2p) to ensure API compatibility.
64-
implementation 'org.apache.commons:commons-lang3:3.18.0'
61+
// commons-lang3: root provides 3.4 as 'implementation' (not on compile classpath).
62+
// Re-declare here so p2p can compile. Uses 3.4-compatible API (new Builder() not builder()).
63+
implementation 'org.apache.commons:commons-lang3:3.4'
6564

6665
// provided by root build.gradle for all subprojects:
6766
// slf4j-api, logback, bcprov-jdk18on, lombok, junit, mockito
@@ -72,22 +71,12 @@ protobuf {
7271
protoc {
7372
artifact = "com.google.protobuf:protoc:${protobufVersion}"
7473
}
75-
plugins {
76-
grpc {
77-
artifact = "io.grpc:protoc-gen-grpc-java:${rootProject.archInfo.requires.ProtocGenVersion}"
78-
}
79-
}
8074
generateProtoTasks {
8175
all().each { task ->
8276
task.builtins {
8377
java { outputSubDir = "java" }
8478
}
8579
}
86-
all()*.plugins {
87-
grpc {
88-
outputSubDir = "java"
89-
}
90-
}
9180
}
9281
}
9382

p2p/src/main/java/org/tron/p2p/connection/business/detect/NodeDetectService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class NodeDetectService implements MessageProcess {
3737

3838
private final ScheduledExecutorService executor =
3939
Executors.newSingleThreadScheduledExecutor(
40-
BasicThreadFactory.builder().namingPattern("nodeDetectService").build());
40+
new BasicThreadFactory.Builder().namingPattern("nodeDetectService").build());
4141

4242
private final long NODE_DETECT_THRESHOLD = 5 * 60 * 1000;
4343

p2p/src/main/java/org/tron/p2p/connection/business/keepalive/KeepAliveService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class KeepAliveService implements MessageProcess {
2222

2323
private final ScheduledExecutorService executor =
2424
Executors.newSingleThreadScheduledExecutor(
25-
BasicThreadFactory.builder().namingPattern("keepAlive").build());
25+
new BasicThreadFactory.Builder().namingPattern("keepAlive").build());
2626

2727
public void init() {
2828
executor.scheduleWithFixedDelay(

p2p/src/main/java/org/tron/p2p/connection/business/pool/ConnPoolService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ public class ConnPoolService extends P2pEventHandler {
5454
@Getter private final AtomicInteger connectingPeersCount = new AtomicInteger(0);
5555
private final ScheduledThreadPoolExecutor poolLoopExecutor =
5656
new ScheduledThreadPoolExecutor(
57-
1, BasicThreadFactory.builder().namingPattern("connPool").build());
57+
1, new BasicThreadFactory.Builder().namingPattern("connPool").build());
5858
private final ScheduledExecutorService disconnectExecutor =
5959
Executors.newSingleThreadScheduledExecutor(
60-
BasicThreadFactory.builder().namingPattern("randomDisconnect").build());
60+
new BasicThreadFactory.Builder().namingPattern("randomDisconnect").build());
6161

6262
public P2pConfig p2pConfig = Parameter.p2pConfig;
6363
private PeerClient peerClient;

p2p/src/main/java/org/tron/p2p/connection/socket/PeerClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class PeerClient {
2424
public void init() {
2525
workerGroup =
2626
new NioEventLoopGroup(
27-
0, BasicThreadFactory.builder().namingPattern("peerClient-%d").build());
27+
0, new BasicThreadFactory.Builder().namingPattern("peerClient-%d").build());
2828
}
2929

3030
public void close() {

p2p/src/main/java/org/tron/p2p/connection/socket/PeerServer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,13 @@ public void close() {
3838

3939
public void start(int port) {
4040
EventLoopGroup bossGroup =
41-
new NioEventLoopGroup(1, BasicThreadFactory.builder().namingPattern("peerBoss").build());
41+
new NioEventLoopGroup(
42+
1, new BasicThreadFactory.Builder().namingPattern("peerBoss").build());
4243
// if threads = 0, it is number of core * 2
4344
EventLoopGroup workerGroup =
4445
new NioEventLoopGroup(
4546
Parameter.TCP_NETTY_WORK_THREAD_NUM,
46-
BasicThreadFactory.builder().namingPattern("peerWorker-%d").build());
47+
new BasicThreadFactory.Builder().namingPattern("peerWorker-%d").build());
4748
P2pChannelInitializer p2pChannelInitializer = new P2pChannelInitializer("", false, true);
4849
try {
4950
ServerBootstrap b = new ServerBootstrap();

p2p/src/main/java/org/tron/p2p/discover/protocol/kad/DiscoverTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class DiscoverTask {
1616

1717
private ScheduledExecutorService discoverer =
1818
Executors.newSingleThreadScheduledExecutor(
19-
BasicThreadFactory.builder().namingPattern("discoverTask").build());
19+
new BasicThreadFactory.Builder().namingPattern("discoverTask").build());
2020

2121
private KadService kadService;
2222

p2p/src/main/java/org/tron/p2p/discover/protocol/kad/KadService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void init() {
5656
}
5757
this.pongTimer =
5858
Executors.newSingleThreadScheduledExecutor(
59-
BasicThreadFactory.builder().namingPattern("pongTimer").build());
59+
new BasicThreadFactory.Builder().namingPattern("pongTimer").build());
6060
this.homeNode =
6161
new Node(
6262
Parameter.p2pConfig.getNodeID(),

0 commit comments

Comments
 (0)