Skip to content

Commit fe192ec

Browse files
committed
build: turn :block-node-protobuf-pbj into an alternative to :hapi
Using the same Module Name and Gradle capabilities, the Modules are then interchangeable. If both are on the Module Path, because :hapi is referenced transitively, Gradle will resolve the conflict by picking :block-node-protobuf-pbj only. Signed-off-by: Jendrik Johannes <jendrik.johannes@gmail.com>
1 parent 705921c commit fe192ec

File tree

18 files changed

+37
-16
lines changed

18 files changed

+37
-16
lines changed

block-node/app/src/testFixtures/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
exports org.hiero.block.node.app.fixtures.blocks;
66
exports org.hiero.block.node.app.fixtures.plugintest;
77

8+
requires com.hedera.node.hapi;
89
requires com.hedera.pbj.runtime;
910
requires com.swirlds.common;
1011
requires com.swirlds.config.api;
1112
requires com.swirlds.metrics.api;
1213
requires org.hiero.block.node.spi;
13-
requires org.hiero.block.protobuf.pbj;
1414
requires io.helidon.webserver;
1515
requires java.logging;
1616
requires org.junit.jupiter.api;

block-node/base/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ testModuleInfo {
2222
requires("org.testcontainers")
2323
requires("io.minio")
2424
requires("junit")
25-
requires("org.hiero.block.protobuf.pbj")
25+
requires("com.hedera.node.hapi")
2626
}

block-node/block-access/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
module org.hiero.block.node.access.service {
55
uses com.swirlds.config.api.spi.ConfigurationBuilderFactory;
66

7+
requires transitive com.hedera.node.hapi;
78
requires transitive org.hiero.block.node.spi;
8-
requires transitive org.hiero.block.protobuf.pbj;
99
requires com.hedera.pbj.runtime;
1010
requires com.swirlds.metrics.api;
1111

block-node/block-providers/files.historic/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
requires transitive com.swirlds.config.api;
1515
requires transitive org.hiero.block.node.base;
1616
requires transitive org.hiero.block.node.spi;
17+
requires com.hedera.node.hapi;
1718
requires com.hedera.pbj.runtime;
1819
requires com.swirlds.metrics.api;
1920
requires org.hiero.block.common;
20-
requires org.hiero.block.protobuf.pbj;
2121
requires com.github.spotbugs.annotations;
2222

2323
provides org.hiero.block.node.spi.historicalblocks.BlockProviderPlugin with

block-node/block-providers/files.recent/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
requires transitive com.swirlds.config.api;
1515
requires transitive org.hiero.block.node.base;
1616
requires transitive org.hiero.block.node.spi;
17+
requires com.hedera.node.hapi;
1718
requires com.hedera.pbj.runtime;
1819
requires com.swirlds.metrics.api;
1920
requires org.hiero.block.common;
20-
requires org.hiero.block.protobuf.pbj;
2121
requires com.github.luben.zstd_jni;
2222
requires com.github.spotbugs.annotations;
2323

block-node/messaging/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ mainModuleInfo {
1515

1616
testModuleInfo {
1717
requires("com.hedera.pbj.runtime")
18-
requires("org.hiero.block.protobuf.pbj")
18+
requires("com.hedera.node.hapi")
1919
requires("java.logging")
2020
requires("org.junit.jupiter.api")
2121
requires("org.junit.jupiter.params")

block-node/protobuf-pbj/build.gradle.kts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ plugins {
66
id("com.hedera.pbj.pbj-compiler") version "0.11.6"
77
}
88

9+
// Let Gradle know that is an 'alternative implementation' of com.hedera.node.hapi
10+
configurations.apiElements {
11+
outgoing.capability("${project.group}:${project.name}:$version")
12+
outgoing.capability("com.hedera.hashgraph:hapi:$version")
13+
}
14+
15+
configurations.runtimeElements {
16+
outgoing.capability("${project.group}:${project.name}:$version")
17+
outgoing.capability("com.hedera.hashgraph:hapi:$version")
18+
}
19+
920
description = "Hiero Block Node Protobuf PBJ API"
1021

1122
// Remove the following line to enable all 'javac' lint checks that we have turned on by default

block-node/protobuf-pbj/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// SPDX-License-Identifier: Apache-2.0
2-
module org.hiero.block.protobuf.pbj {
2+
module com.hedera.node.hapi {
33
exports com.hedera.hapi.block.stream;
44
exports com.hedera.hapi.block.stream.input;
55
exports com.hedera.hapi.block.stream.output;

block-node/s3-archive/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313

1414
requires transitive com.swirlds.config.api;
1515
requires transitive org.hiero.block.node.spi;
16+
requires com.hedera.node.hapi;
1617
requires com.hedera.pbj.runtime;
1718
requires org.hiero.block.common;
1819
requires org.hiero.block.node.base;
19-
requires org.hiero.block.protobuf.pbj;
2020
requires com.github.spotbugs.annotations;
2121
requires java.management;
2222
requires java.net.http;

block-node/server-status/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
module org.hiero.block.node.server.status {
55
uses com.swirlds.config.api.spi.ConfigurationBuilderFactory;
66

7+
requires transitive com.hedera.node.hapi;
78
requires transitive org.hiero.block.node.spi;
8-
requires transitive org.hiero.block.protobuf.pbj;
99
requires com.hedera.pbj.runtime;
1010
requires com.swirlds.metrics.api;
1111
requires com.github.spotbugs.annotations;

block-node/spi/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
uses org.hiero.block.node.spi.historicalblocks.BlockProviderPlugin;
1111
uses org.hiero.block.node.spi.BlockNodePlugin;
1212

13+
requires transitive com.hedera.node.hapi;
1314
requires transitive com.hedera.pbj.runtime;
1415
requires transitive com.swirlds.config.api;
1516
requires transitive com.swirlds.metrics.api;
16-
requires transitive org.hiero.block.protobuf.pbj;
1717
requires transitive io.helidon.webserver;
1818
requires com.github.luben.zstd_jni;
1919
requires static transitive com.github.spotbugs.annotations;

block-node/stream-publisher/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
com.swirlds.config.extensions,
1212
org.hiero.block.node.app;
1313

14+
requires transitive com.hedera.node.hapi;
1415
requires transitive com.hedera.pbj.runtime;
1516
requires transitive com.swirlds.config.api;
1617
requires transitive com.swirlds.metrics.api;
1718
requires transitive org.hiero.block.node.spi;
18-
requires transitive org.hiero.block.protobuf.pbj;
1919
requires org.hiero.block.common;
2020
requires org.hiero.block.node.base;
2121
requires com.github.spotbugs.annotations;

block-node/stream-subscriber/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
com.swirlds.config.extensions,
1212
org.hiero.block.node.app;
1313

14+
requires transitive com.hedera.node.hapi;
1415
requires transitive com.hedera.pbj.runtime;
1516
requires transitive com.swirlds.config.api;
1617
requires transitive org.hiero.block.node.spi;
17-
requires transitive org.hiero.block.protobuf.pbj;
1818
requires com.swirlds.metrics.api;
1919
requires org.hiero.block.node.base;
2020
requires com.github.spotbugs.annotations;

block-node/verification/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@
1111
com.swirlds.config.extensions,
1212
org.hiero.block.node.app;
1313

14+
requires transitive com.hedera.node.hapi;
1415
requires transitive com.hedera.pbj.runtime;
1516
requires transitive com.swirlds.config.api;
1617
requires transitive org.hiero.block.common;
1718
requires transitive org.hiero.block.node.spi;
18-
requires transitive org.hiero.block.protobuf.pbj;
1919
requires com.swirlds.metrics.api;
2020
requires org.hiero.block.node.base;
2121
requires com.github.spotbugs.annotations;

common/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
exports org.hiero.block.common.utils;
55
exports org.hiero.block.common.hasher;
66

7+
requires transitive com.hedera.node.hapi;
78
requires transitive com.hedera.pbj.runtime;
8-
requires transitive org.hiero.block.protobuf.pbj;
99
requires com.swirlds.common;
1010
requires static com.github.spotbugs.annotations;
1111
}

settings.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,16 @@ javaModules {
3939
}
4040
}
4141

42+
@Suppress("UnstableApiUsage")
43+
gradle.lifecycle.beforeProject {
44+
// Register resolution strategy for all modules that prefers :block-node-protobuf-pbj over :hapi
45+
configurations.configureEach {
46+
resolutionStrategy.capabilitiesResolution.withCapability("com.hedera.hashgraph", "hapi") {
47+
select(candidates.single { it.id.toString().contains(":block-node-protobuf-pbj") })
48+
}
49+
}
50+
}
51+
4252
// @jjohannes: remove once 'swirldsVersion' is updated to '0.63.x' in
4353
// hiero-dependency-versions/build.gradle.kts
4454
@Suppress("UnstableApiUsage")

tools-and-tests/simulator/src/main/java/module-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,13 @@
1616
exports org.hiero.block.simulator.config.logging to
1717
com.swirlds.config.impl;
1818

19+
requires com.hedera.node.hapi;
1920
requires com.hedera.pbj.runtime;
2021
requires com.swirlds.common;
2122
requires com.swirlds.config.api;
2223
requires com.swirlds.config.extensions;
2324
requires com.swirlds.metrics.api;
2425
requires org.hiero.block.common;
25-
requires org.hiero.block.protobuf.pbj;
2626
requires org.hiero.block.protobuf.protoc;
2727
requires com.google.protobuf;
2828
requires dagger;

tools-and-tests/tools/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description = "Hiero Block Stream Tools"
1111
application { mainClass = "org.hiero.block.tools.BlockStreamTool" }
1212

1313
mainModuleInfo {
14-
requires("org.hiero.block.protobuf.pbj")
14+
requires("com.hedera.node.hapi")
1515
requires("com.hedera.pbj.runtime")
1616
requires("com.github.luben.zstd_jni")
1717
requires("com.google.api.gax")

0 commit comments

Comments
 (0)