diff --git a/CHANGELOG.md b/CHANGELOG.md index c581fbd03..2234201da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Additions and Improvements - Fine tune already seen txs tracker when a tx is removed from the pool [#7755](https://github.com/hyperledger/besu/pull/7755) +- Create and publish Besu BOM (Bill of Materials) [#7615](https://github.com/hyperledger/besu/pull/7615) ### Bug fixes diff --git a/acceptance-tests/tests/build.gradle b/acceptance-tests/tests/build.gradle index 8bb8fb2f2..809d82957 100644 --- a/acceptance-tests/tests/build.gradle +++ b/acceptance-tests/tests/build.gradle @@ -106,7 +106,8 @@ task acceptanceTest(type: Test) { setSystemProperties(test.getSystemProperties()) systemProperty 'acctests.runBesuAsProcess', 'true' systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" - mustRunAfter rootProject.subprojects*.test + def javaProjects = rootProject.subprojects - project(':platform') + mustRunAfter javaProjects.test description = 'Runs ALL Besu acceptance tests (mainnet and non-mainnet).' group = 'verification' @@ -135,7 +136,8 @@ task acceptanceTestNotPrivacy(type: Test) { setSystemProperties(test.getSystemProperties()) systemProperty 'acctests.runBesuAsProcess', 'true' systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" - mustRunAfter rootProject.subprojects*.test + def javaProjects = rootProject.subprojects - project(':platform') + mustRunAfter javaProjects.test description = 'Runs MAINNET Besu acceptance tests (excluding specific non-mainnet suites).' group = 'verification' @@ -163,7 +165,8 @@ task acceptanceTestCliqueBft(type: Test) { setSystemProperties(test.getSystemProperties()) systemProperty 'acctests.runBesuAsProcess', 'true' systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" - mustRunAfter rootProject.subprojects*.test + def javaProjects = rootProject.subprojects - project(':platform') + mustRunAfter javaProjects.test description = 'Runs Clique and BFT Besu acceptance tests.' group = 'verification' @@ -192,7 +195,8 @@ task acceptanceTestBftSoak(type: Test) { // Set to any time > 60 minutes to run the soak test for longer // systemProperty 'acctests.soakTimeMins', '120' systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" - mustRunAfter rootProject.subprojects*.test + def javaProjects = rootProject.subprojects - project(':platform') + mustRunAfter javaProjects.test description = 'Runs BFT soak test.' group = 'verification' @@ -219,7 +223,8 @@ task acceptanceTestPermissioning(type: Test) { setSystemProperties(test.getSystemProperties()) systemProperty 'acctests.runBesuAsProcess', 'true' systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" - mustRunAfter rootProject.subprojects*.test + def javaProjects = rootProject.subprojects - project(':platform') + mustRunAfter javaProjects.test description = 'Runs Permissioning Besu acceptance tests.' group = 'verification' diff --git a/build.gradle b/build.gradle index 901f08f4f..de8f3e23d 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,6 @@ plugins { id 'com.github.ben-manes.versions' version '0.51.0' id 'com.github.jk1.dependency-license-report' version '2.9' id 'com.jfrog.artifactory' version '5.2.5' - id 'io.spring.dependency-management' version '1.1.6' id 'me.champeau.jmh' version '0.7.2' apply false id 'net.ltgt.errorprone' version '4.0.1' id 'maven-publish' @@ -120,12 +119,10 @@ licenseReport { ] } -allprojects { +configure(allprojects - project(':platform')) { apply plugin: 'java-library' - apply plugin: 'io.spring.dependency-management' apply plugin: 'jacoco' apply plugin: 'net.ltgt.errorprone' - apply from: "${rootDir}/gradle/versions.gradle" version = calculateVersion() @@ -185,6 +182,12 @@ allprojects { } dependencies { + api platform(project(':platform')) + + annotationProcessor(platform(project(':platform'))) + + testAnnotationProcessor(platform(project(':platform'))) + components.all(BouncyCastleCapability) errorprone 'com.google.errorprone:error_prone_core' // https://github.com/hyperledger/besu-errorprone-checks/ @@ -442,14 +445,16 @@ task checkMavenCoordinateCollisions { doLast { def coordinates = [:] getAllprojects().forEach { - if (it.properties.containsKey('publishing') && it.jar?.enabled) { - def coordinate = it.publishing?.publications[0].coordinates - if (coordinate.toString().startsWith("org") && coordinates.containsKey(coordinate)) { - throw new GradleException("Duplicate maven coordinates detected, ${coordinate} is used by " + - "both ${coordinates[coordinate]} and ${it.path}.\n" + - "Please add a `publishing` script block to one or both subprojects.") + if (it.properties.containsKey('publishing')) { + if(!it.properties.containsKey('jar') || it.jar.enabled) { + def coordinate = it.publishing?.publications[0].coordinates + if (coordinate.toString().startsWith("org") && coordinates.containsKey(coordinate)) { + throw new GradleException("Duplicate maven coordinates detected, ${coordinate} is used by " + + "both ${coordinates[coordinate]} and ${it.path}.\n" + + "Please add a `publishing` script block to one or both subprojects.") + } + coordinates[coordinate] = it.path } - coordinates[coordinate] = it.path } } } @@ -597,7 +602,9 @@ subprojects { configurations { + testSupportAnnotationProcessor.extendsFrom annotationProcessor testSupportImplementation.extendsFrom implementation + integrationTestAnnotationProcessor.extendsFrom annotationProcessor integrationTestImplementation.extendsFrom implementation testSupportArtifacts } @@ -622,7 +629,10 @@ subprojects { duplicateClassesStrategy = DuplicatesStrategy.WARN } - dependencies { jmh 'org.slf4j:slf4j-api' } + dependencies { + jmhAnnotationProcessor(platform(project(':platform'))) + jmh 'org.slf4j:slf4j-api' + } } // making sure assemble task invokes integration test compile diff --git a/ethereum/referencetests/build.gradle b/ethereum/referencetests/build.gradle index 22f22c70a..48f556a5b 100644 --- a/ethereum/referencetests/build.gradle +++ b/ethereum/referencetests/build.gradle @@ -14,6 +14,7 @@ */ configurations { + referenceTestAnnotationProcessor.extendsFrom testAnnotationProcessor // we need this because referenceTestImplementation defaults to 'canBeResolved=false'. tarConfig.extendsFrom referenceTestImplementation tarConfig { diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 67e88aa20..507b031b5 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -134,6 +134,11 @@ + + + + + @@ -144,11 +149,6 @@ - - - - - @@ -164,6 +164,11 @@ + + + + + @@ -213,6 +218,11 @@ + + + + + @@ -246,9 +256,6 @@ - - - @@ -285,6 +292,16 @@ + + + + + + + + + + @@ -293,6 +310,11 @@ + + + + + @@ -304,6 +326,11 @@ + + + + + @@ -320,6 +347,11 @@ + + + + + @@ -331,6 +363,11 @@ + + + + + @@ -496,6 +533,11 @@ + + + + + @@ -818,6 +860,9 @@ + + + @@ -929,6 +974,14 @@ + + + + + + + + @@ -937,6 +990,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -953,6 +1029,26 @@ + + + + + + + + + + + + + + + + + + + + @@ -1177,14 +1273,6 @@ - - - - - - - - @@ -1307,9 +1395,6 @@ - - - @@ -1363,6 +1448,11 @@ + + + + + @@ -1382,10 +1472,15 @@ - - - + + + + + + + + @@ -1398,6 +1493,14 @@ + + + + + + + + @@ -1467,6 +1570,11 @@ + + + + + @@ -1532,9 +1640,6 @@ - - - @@ -1600,6 +1705,11 @@ + + + + + @@ -1789,6 +1899,11 @@ + + + + + @@ -1807,9 +1922,9 @@ - - - + + + @@ -1825,14 +1940,6 @@ - - - - - - - - @@ -1841,14 +1948,6 @@ - - - - - - - - @@ -1866,9 +1965,6 @@ - - - @@ -1881,15 +1977,7 @@ - - - - - - - - @@ -1934,14 +2022,6 @@ - - - - - - - - @@ -1980,9 +2060,6 @@ - - - @@ -1995,15 +2072,7 @@ - - - - - - - - @@ -2024,11 +2093,6 @@ - - - - - @@ -2053,9 +2117,6 @@ - - - @@ -2087,25 +2148,25 @@ - - - + + + - - + + - - - + + + - - + + - - - + + + @@ -2137,6 +2198,11 @@ + + + + + @@ -2154,6 +2220,11 @@ + + + + + @@ -2168,6 +2239,11 @@ + + + + + @@ -2238,6 +2314,11 @@ + + + + + @@ -2525,11 +2606,6 @@ - - - - - @@ -2543,6 +2619,11 @@ + + + + + @@ -2567,12 +2648,12 @@ - - - + + + - - + + @@ -2628,19 +2709,6 @@ - - - - - - - - - - - - - @@ -2795,11 +2863,6 @@ - - - - - @@ -2823,25 +2886,25 @@ - - - + + + - - + + - - - + + + - - + + - - - + + + @@ -2849,6 +2912,16 @@ + + + + + + + + + + @@ -3211,6 +3284,11 @@ + + + + + @@ -3248,6 +3326,11 @@ + + + + + @@ -3312,6 +3395,11 @@ + + + + + @@ -3322,6 +3410,11 @@ + + + + + @@ -3342,6 +3435,11 @@ + + + + + @@ -3456,11 +3554,26 @@ + + + + + + + + + + + + + + + @@ -3474,6 +3587,11 @@ + + + + + @@ -3572,6 +3690,11 @@ + + + + + @@ -3617,6 +3740,11 @@ + + + + + @@ -3666,6 +3794,9 @@ + + + @@ -4888,6 +5019,11 @@ + + + + + @@ -4953,6 +5089,14 @@ + + + + + + + + @@ -4977,12 +5121,12 @@ - - - + + + - - + + @@ -5088,15 +5232,12 @@ - - - + + + - - - - - + + @@ -5130,14 +5271,6 @@ - - - - - - - - @@ -5366,6 +5499,14 @@ + + + + + + + + @@ -5374,6 +5515,14 @@ + + + + + + + + @@ -5474,11 +5623,6 @@ - - - - - @@ -5528,13 +5672,18 @@ - - - + + + + + + + + @@ -5574,6 +5723,11 @@ + + + + + @@ -5796,6 +5950,14 @@ + + + + + + + + @@ -5830,6 +5992,14 @@ + + + + + + + + @@ -5846,6 +6016,14 @@ + + + + + + + + @@ -5947,6 +6125,11 @@ + + + + + @@ -5980,6 +6163,11 @@ + + + + + @@ -6111,9 +6299,6 @@ - - - @@ -6187,9 +6372,6 @@ - - - @@ -6306,6 +6488,14 @@ + + + + + + + + diff --git a/gradle/versions.gradle b/gradle/versions.gradle deleted file mode 100644 index 4796aa528..000000000 --- a/gradle/versions.gradle +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright ConsenSys AG. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on - * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the - * specific language governing permissions and limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -dependencyManagement { - dependencies { - applyMavenExclusions = false - - dependencySet(group:'com.fasterxml.jackson.core', version:'2.17.2') { - entry 'jackson-databind' - entry 'jackson-datatype' - entry 'jackson-datatype-jdk8' - } - - dependency 'com.github.ben-manes.caffeine:caffeine:3.1.8' - - dependency 'com.google.protobuf:protobuf-java:3.25.5' - - dependency 'org.bitbucket.b_c:jose4j:0.9.4' - - dependency 'com.github.oshi:oshi-core:6.6.3' - - dependency 'com.google.auto.service:auto-service:1.1.1' - - dependencySet(group: 'com.google.dagger', version: '2.52') { - entry'dagger-compiler' - entry'dagger' - } - - dependency 'org.hyperledger.besu:besu-errorprone-checks:1.0.0' - - dependency 'com.google.guava:guava:33.3.0-jre' - - dependency 'com.graphql-java:graphql-java:22.2' - - dependency 'com.splunk.logging:splunk-library-javalogging:1.11.8' - - dependency 'com.squareup.okhttp3:okhttp:4.12.0' - - dependency 'commons-codec:commons-codec:1.16.0' - - dependency 'commons-io:commons-io:2.16.1' - - dependency 'commons-net:commons-net:3.11.1' - - dependency 'dnsjava:dnsjava:3.6.1' - - dependencySet(group: 'info.picocli', version: '4.7.6') { - entry 'picocli' - entry 'picocli-codegen' - } - - dependencySet(group: 'io.grpc', version: '1.66.0') { - entry 'grpc-all' - entry 'grpc-core' - entry 'grpc-netty' - entry 'grpc-stub' - } - - dependency 'io.kubernetes:client-java:18.0.1' - - dependency 'io.netty:netty-all:4.1.112.Final' - dependency 'io.netty:netty-tcnative-boringssl-static:2.0.66.Final' - dependency group: 'io.netty', name: 'netty-transport-native-epoll', version:'4.1.112.Final', classifier: 'linux-x86_64' - dependency group: 'io.netty', name: 'netty-transport-native-kqueue', version:'4.1.112.Final', classifier: 'osx-x86_64' - dependency 'io.netty:netty-transport-native-unix-common:4.1.112.Final' - - dependency 'io.opentelemetry:opentelemetry-api:1.41.0' - dependency 'io.opentelemetry:opentelemetry-exporter-otlp:1.41.0' - dependency 'io.opentelemetry:opentelemetry-extension-trace-propagators:1.41.0' - dependency 'io.opentelemetry:opentelemetry-sdk-metrics:1.41.0' - dependency 'io.opentelemetry:opentelemetry-sdk-trace:1.41.0' - dependency 'io.opentelemetry:opentelemetry-sdk:1.41.0' - dependency 'io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:1.41.0' - dependency 'io.opentelemetry.instrumentation:opentelemetry-okhttp-3.0:2.7.0-alpha' - dependency 'io.opentelemetry.proto:opentelemetry-proto:1.3.2-alpha' - dependency 'io.opentelemetry.semconv:opentelemetry-semconv:1.27.0-alpha' - - dependency 'io.opentracing.contrib:opentracing-okhttp3:3.0.0' - dependency 'io.opentracing:opentracing-api:0.33.0' - dependency 'io.opentracing:opentracing-util:0.33.0' - - dependency 'io.pkts:pkts-core:3.0.10' - - dependencySet(group: 'io.prometheus', version: '0.16.0') { - entry 'simpleclient' - entry 'simpleclient_common' - entry 'simpleclient_hotspot' - entry 'simpleclient_pushgateway' - entry 'simpleclient_guava' - } - - dependency 'io.reactivex.rxjava2:rxjava:2.2.21' - - dependencySet(group: 'io.tmio', version: '2.4.2') { - entry 'tuweni-bytes' - entry 'tuweni-config' - entry 'tuweni-concurrent' - entry 'tuweni-crypto' - entry 'tuweni-devp2p' - entry 'tuweni-io' - entry 'tuweni-net' - entry 'tuweni-rlp' - entry 'tuweni-toml' - entry 'tuweni-units' - } - - dependencySet(group: 'io.vertx', version: '4.5.9') { - entry 'vertx-auth-jwt' - entry 'vertx-codegen' - entry 'vertx-core' - entry 'vertx-junit5' - entry 'vertx-unit' - entry 'vertx-web' - entry 'vertx-web-client' - entry 'vertx-auth-jwt' - } - - dependency 'junit:junit:4.13.2' - - dependency 'net.java.dev.jna:jna:5.14.0' - - dependencySet(group: 'org.antlr', version: '4.11.1') { - entry 'antlr4' - entry 'antlr4-runtime' - } - - dependency 'org.apache.commons:commons-collections4:4.4' - dependency 'org.apache.commons:commons-compress:1.27.1' - dependency 'org.apache.commons:commons-lang3:3.17.0' - dependency 'org.apache.commons:commons-text:1.12.0' - - dependencySet(group: 'org.apache.logging.log4j', version: '2.23.1') { - entry 'log4j-api' - entry 'log4j-core' - entry 'log4j-jul' - entry 'log4j-slf4j2-impl' - } - - dependency 'org.assertj:assertj-core:3.26.3' - - dependency 'org.awaitility:awaitility:4.2.2' - - dependencySet(group: 'org.bouncycastle', version: '1.78.1') { - entry'bcpkix-jdk18on' - entry'bcprov-jdk18on' - } - - dependency 'org.fusesource.jansi:jansi:2.4.1' - - dependencySet(group: 'org.hyperledger.besu', version: '0.9.7') { - entry 'arithmetic' - entry 'ipa-multipoint' - entry 'bls12-381' - entry 'secp256k1' - entry 'secp256r1' - entry 'blake2bf' - entry 'gnark' - } - - dependencySet(group: 'org.immutables', version: '2.10.1') { - entry 'value-annotations' - entry 'value' - } - - dependency 'org.java-websocket:Java-WebSocket:1.5.7' - - dependencySet(group: 'org.jacoco', version: '0.8.12') { - entry 'org.jacoco.agent' - entry 'org.jacoco.core' - } - - dependency 'org.jetbrains.kotlin:kotlin-stdlib:2.0.20' - - dependencySet(group: 'org.junit.jupiter', version: '5.11.0') { - entry 'junit-jupiter' - entry 'junit-jupiter-api' - entry 'junit-jupiter-engine' - entry 'junit-jupiter-params' - } - - dependency 'org.openjdk.jol:jol-core:0.17' - - dependency 'org.junit.platform:junit-platform-runner:1.9.2' - - dependency 'org.junit.vintage:junit-vintage-engine:5.10.1' - - dependencySet(group: 'org.jupnp', version:'3.0.2') { - entry 'org.jupnp.support' - entry 'org.jupnp' - } - - dependencySet(group: 'org.mockito', version:'5.13.0') { - entry 'mockito-core' - entry 'mockito-junit-jupiter' - } - - dependencySet(group: 'org.openjdk.jmh', version:'1.37') { - entry 'jmh-core' - entry 'jmh-generator-annprocess' - } - - dependency 'org.owasp.encoder:encoder:1.3.1' - - dependency 'org.rocksdb:rocksdbjni:8.3.2' // 8.9.1 causes a bug with a FOREST canary - - dependencySet(group: 'org.slf4j', version:'2.0.16') { - entry 'slf4j-api' - entry 'slf4j-nop' - } - - dependency 'org.springframework.security:spring-security-crypto:6.3.3' - - dependency 'org.testcontainers:testcontainers:1.20.1' - - dependency 'org.web3j:quorum:4.10.0' - dependencySet(group: 'org.web3j', version: '4.12.1') { - entry 'abi' - entry 'besu' - entry 'core' - entry 'crypto' - } - - dependencySet(group: 'org.wiremock', version: '3.9.1') { - entry 'wiremock' - } - - dependency 'org.xerial.snappy:snappy-java:1.1.10.6' - - dependency 'org.yaml:snakeyaml:2.0' - - dependency 'org.apache.maven:maven-artifact:3.9.6' - - dependency 'tech.pegasys:jc-kzg-4844:1.0.0' - - dependency 'tech.pegasys.discovery:discovery:24.6.0' - } -} diff --git a/platform/build.gradle b/platform/build.gradle new file mode 100644 index 000000000..7234a1006 --- /dev/null +++ b/platform/build.gradle @@ -0,0 +1,218 @@ +/* + * Copyright contributors to Hyperledger Besu. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +plugins { + id 'java-platform' + id 'com.diffplug.spotless' + id 'maven-publish' +} + +repositories { + mavenCentral() +} + +javaPlatform { + allowDependencies() +} + +dependencies { + api platform('com.fasterxml.jackson:jackson-bom:2.17.2') + api platform('io.grpc:grpc-bom:1.66.0') + api platform('io.netty:netty-bom:4.1.112.Final') + api platform('io.opentelemetry:opentelemetry-bom:1.41.0') + api platform('io.prometheus:simpleclient_bom:0.16.0') + api platform('io.vertx:vertx-stack-depchain:4.5.9') + api platform('org.apache.logging.log4j:log4j-bom:2.23.1') + api platform('org.assertj:assertj-bom:3.26.3') + api platform('org.immutables:bom:2.10.1') + api platform('org.junit:junit-bom:5.11.0') + api platform('org.mockito:mockito-bom:5.13.0') + api platform('org.slf4j:slf4j-bom:2.0.16') + + constraints { + api project(':acceptance-tests:dsl') + api project(':besu') + api project(':config') + api project(':crypto:algorithms') + api project(':crypto:services') + api project(':ethereum:api') + api project(':ethereum:blockcreation') + api project(':ethereum:core') + api project(':ethereum:eth') + api project(':ethereum:p2p') + api project(':ethereum:permissioning') + api project(':ethereum:referencetests') + api project(':ethereum:rlp') + api project(':evm') + api project(':datatypes') + api project(':plugin-api') + + api 'com.github.ben-manes.caffeine:caffeine:3.1.8' + + api 'org.bitbucket.b_c:jose4j:0.9.4' + + api 'com.github.oshi:oshi-core:6.6.3' + + api 'com.google.auto.service:auto-service:1.1.1' + + api 'com.google.dagger:dagger-compiler:2.52' + api 'com.google.dagger:dagger:2.52' + + api 'com.google.guava:guava:33.3.0-jre' + + api 'com.google.protobuf:protobuf-java:3.25.5' + + api 'com.graphql-java:graphql-java:22.2' + + api 'com.splunk.logging:splunk-library-javalogging:1.11.8' + + api 'com.squareup.okhttp3:okhttp:4.12.0' + + api 'commons-io:commons-io:2.16.1' + + api 'commons-net:commons-net:3.11.1' + + api 'dnsjava:dnsjava:3.6.1' + + api 'info.picocli:picocli:4.7.6' + api 'info.picocli:picocli-codegen:4.7.6' + + api 'io.kubernetes:client-java:18.0.1' + + api 'io.opentelemetry.instrumentation:opentelemetry-okhttp-3.0:2.7.0-alpha' + api 'io.opentelemetry.proto:opentelemetry-proto:1.3.2-alpha' + api 'io.opentelemetry.semconv:opentelemetry-semconv:1.27.0-alpha' + + api 'io.opentracing:opentracing-api:0.33.0' + api 'io.opentracing:opentracing-util:0.33.0' + api 'io.opentracing.contrib:opentracing-okhttp3:3.0.0' + + api 'io.pkts:pkts-core:3.0.10' + + api 'io.tmio:tuweni-bytes:2.4.2' + api 'io.tmio:tuweni-config:2.4.2' + api 'io.tmio:tuweni-concurrent:2.4.2' + api 'io.tmio:tuweni-crypto:2.4.2' + api 'io.tmio:tuweni-devp2p:2.4.2' + api 'io.tmio:tuweni-io:2.4.2' + api 'io.tmio:tuweni-net:2.4.2' + api 'io.tmio:tuweni-rlp:2.4.2' + api 'io.tmio:tuweni-toml:2.4.2' + api 'io.tmio:tuweni-units:2.4.2' + + api 'junit:junit:4.13.2' + + api 'net.java.dev.jna:jna:5.14.0' + + api 'org.antlr:antlr4:4.11.1' + api 'org.antlr:antlr4-runtime:4.11.1' + + api 'org.apache.commons:commons-collections4:4.4' + api 'org.apache.commons:commons-compress:1.27.1' + api 'org.apache.commons:commons-lang3:3.17.0' + api 'org.apache.commons:commons-text:1.12.0' + + api 'org.apache.maven:maven-artifact:3.9.6' + + api 'org.awaitility:awaitility:4.2.2' + + api 'org.bouncycastle:bcpkix-jdk18on:1.78.1' + api 'org.bouncycastle:bcprov-jdk18on:1.78.1' + + api 'org.fusesource.jansi:jansi:2.4.1' + + api 'org.hyperledger.besu:arithmetic:0.9.7' + api 'org.hyperledger.besu:blake2bf:0.9.7' + api 'org.hyperledger.besu:bls12-381:0.9.7' + api 'org.hyperledger.besu:gnark:0.9.7' + api 'org.hyperledger.besu:ipa-multipoint:0.9.7' + api 'org.hyperledger.besu:secp256k1:0.9.7' + api 'org.hyperledger.besu:secp256r1:0.9.7' + + api 'org.hyperledger.besu:besu-errorprone-checks:1.0.0' + + api 'org.jacoco:org.jacoco.agent:0.8.12' + api 'org.jacoco:org.jacoco.core:0.8.12' + + api 'org.junit.platform:junit-platform-runner:1.9.2' + api 'org.junit.vintage:junit-vintage-engine:5.10.1' + + api 'org.jupnp:org.jupnp:3.0.2' + api 'org.jupnp:org.jupnp.support:3.0.2' + + api 'org.openjdk.jmh:jmh-core:1.37' + api 'org.openjdk.jmh:jmh-generator-annprocess:1.37' + + api 'org.openjdk.jol:jol-core:0.17' + + api 'org.owasp.encoder:encoder:1.3.1' + + api 'org.rocksdb:rocksdbjni:8.3.2' + + api 'org.springframework.security:spring-security-crypto:6.3.3' + + api 'org.testcontainers:testcontainers:1.20.1' + + api 'org.wiremock:wiremock:3.9.1' + + api 'org.web3j:abi:4.12.1' + api 'org.web3j:besu:4.12.1' + api 'org.web3j:core:4.12.1' + api 'org.web3j:crypto:4.12.1' + api 'org.web3j:quorum:4.10.0' + + api 'org.xerial.snappy:snappy-java:1.1.10.6' + + api 'tech.pegasys:jc-kzg-4844:1.0.0' + + api 'tech.pegasys.discovery:discovery:24.6.0' + } +} + + +spotless { + // spotless check applied to build.gradle (groovy) files + groovyGradle { + target '*.gradle' + greclipse('4.31').configFile(rootProject.file('gradle/spotless/greclipse.properties')) + endWithNewline() + } +} + +publishing { + publications { + mavenPlatform(MavenPublication) { + from components.javaPlatform + groupId "org.hyperledger.besu" + artifactId 'bom' + version calculateVersion() + + pom { + name = "Besu BOM" + url = 'http://github.com/hyperledger/besu' + licenses { + license { + name = 'The Apache License, Version 2.0' + url = 'http://www.apache.org/licenses/LICENSE-2.0.txt' + } + } + scm { + connection = 'scm:git:git://github.com/hyperledger/besu.git' + developerConnection = 'scm:git:ssh://github.com/hyperledger/besu.git' + url = 'https://github.com/hyperledger/besu' + } + } + } + } +} diff --git a/settings.gradle b/settings.gradle index 322383b32..2860c666d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -62,6 +62,7 @@ include 'metrics:core' include 'metrics:rocksdb' include 'nat' include 'pki' +include 'platform' include 'plugin-api' include 'plugins:rocksdb' include 'privacy-contracts'