This is an automated email from the ASF dual-hosted git repository. frankgh pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/cassandra-sidecar.git
The following commit(s) were added to refs/heads/trunk by this push: new e83d09ca CASSSIDECAR-218: Additional changes to the build process for the release (#199) e83d09ca is described below commit e83d09ca6ce5e9d674f6a207e23c267cf5a46480 Author: Francisco Guerrero <fran...@apache.org> AuthorDate: Tue Feb 25 13:03:29 2025 -0800 CASSSIDECAR-218: Additional changes to the build process for the release (#199) Patch by Francisco Guerrero; reviewed by Yifan Cai for CASSSIDECAR-218 --- .circleci/config.yml | 32 +++--- adapters/{base => adapters-base}/build.gradle | 19 +--- .../sidecar/adapters/base/CassandraAdapter.java | 0 .../base/CassandraClusterMembershipOperations.java | 0 .../sidecar/adapters/base/CassandraFactory.java | 0 .../adapters/base/CassandraMetricsOperations.java | 0 .../adapters/base/CassandraStorageOperations.java | 0 .../adapters/base/CassandraTableOperations.java | 0 .../cassandra/sidecar/adapters/base/NodeInfo.java | 0 .../sidecar/adapters/base/RingProvider.java | 0 .../adapters/base/TokenRangeReplicaProvider.java | 0 .../adapters/base/data/CompositeDataUtil.java | 0 .../sidecar/adapters/base/data/ProgressInfo.java | 0 .../sidecar/adapters/base/data/SessionInfo.java | 0 .../sidecar/adapters/base/data/StreamState.java | 0 .../sidecar/adapters/base/data/StreamSummary.java | 0 .../adapters/base/db/ConnectedClientStats.java | 0 .../db/ConnectedClientStatsDatabaseAccessor.java | 0 .../base/db/ConnectedClientStatsSummary.java | 0 .../base/db/schema/ConnectedClientsSchema.java | 0 .../exception/OperationUnavailableException.java | 0 .../base/jmx/ClusterMembershipJmxOperations.java | 0 .../base/jmx/EndpointSnitchJmxOperations.java | 0 .../jmx/GossipDependentStorageJmxOperations.java | 0 .../adapters/base/jmx/MetricsJmxOperations.java | 0 .../adapters/base/jmx/StorageJmxOperations.java | 0 .../base/jmx/StreamManagerJmxOperations.java | 0 .../adapters/base/jmx/TableJmxOperations.java | 0 .../base/TokenRangeReplicaProviderTest.java | 0 .../adapters/base/db/ConnectedClientStatsTest.java | 0 .../build.gradle | 17 +--- .../adapters/cassandra41/Cassandra41Adapter.java | 0 .../adapters/cassandra41/Cassandra41Factory.java | 0 .../cassandra41/Cassandra41StorageOperations.java | 0 build.gradle | 111 +++++++++++++++++++-- client-common/build.gradle | 26 +---- client/build.gradle | 30 +----- gradle.properties | 2 +- gradle/common/integrationTestTask.gradle | 4 +- gradle/common/publishing.gradle | 88 ++++++++++++++++ integration-framework/build.gradle | 10 +- server-common/build.gradle | 23 +---- server/build.gradle | 21 +--- settings.gradle | 4 +- vertx-auth-mtls/build.gradle | 24 +---- vertx-client-shaded/build.gradle | 50 +++++++++- vertx-client/build.gradle | 26 +---- 47 files changed, 275 insertions(+), 212 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 13d56ba7..6622e172 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -278,14 +278,14 @@ jobs: - checkout - run: sudo apt --fix-broken install - run: ./gradlew --info clean buildDeb - - run: DEBIAN_FRONTEND=noninteractive sudo apt install -y ./build/distributions/cassandra-sidecar*.deb - - run: test -f /opt/cassandra-sidecar/bin/cassandra-sidecar - - run: test -f /opt/cassandra-sidecar/agents/jolokia-core-*.jar - - run: test -f /opt/cassandra-sidecar/agents/jolokia-jvm-*.jar - - run: test -f /opt/cassandra-sidecar/conf/sidecar.yaml - - run: test -f /opt/cassandra-sidecar/conf/logback.xml - - run: test -f /opt/cassandra-sidecar/LICENSE.txt - - run: test -f /opt/cassandra-sidecar/lib/cassandra-sidecar-*.jar + - run: DEBIAN_FRONTEND=noninteractive sudo apt install -y ./build/distributions/apache-cassandra-sidecar*.deb + - run: test -f /opt/apache-cassandra-sidecar/bin/cassandra-sidecar + - run: test -f /opt/apache-cassandra-sidecar/agents/jolokia-core-*.jar + - run: test -f /opt/apache-cassandra-sidecar/agents/jolokia-jvm-*.jar + - run: test -f /opt/apache-cassandra-sidecar/conf/sidecar.yaml + - run: test -f /opt/apache-cassandra-sidecar/conf/logback.xml + - run: test -f /opt/apache-cassandra-sidecar/LICENSE.txt + - run: test -f /opt/apache-cassandra-sidecar/lib/cassandra-sidecar-*.jar # ensures we can build and install rpm packages rpm_build_install: @@ -295,14 +295,14 @@ jobs: - run: sudo apt-get update && sudo apt install dnf - checkout - run: ./gradlew -i buildRpm - - run: sudo dnf install -y ./build/distributions/cassandra-sidecar*.rpm - - run: test -f /opt/cassandra-sidecar/bin/cassandra-sidecar - - run: test -f /opt/cassandra-sidecar/agents/jolokia-core-*.jar - - run: test -f /opt/cassandra-sidecar/agents/jolokia-jvm-*.jar - - run: test -f /opt/cassandra-sidecar/conf/sidecar.yaml - - run: test -f /opt/cassandra-sidecar/conf/logback.xml - - run: test -f /opt/cassandra-sidecar/LICENSE.txt - - run: test -f /opt/cassandra-sidecar/lib/cassandra-sidecar-*.jar + - run: sudo dnf install -y ./build/distributions/apache-cassandra-sidecar*.rpm + - run: test -f /opt/apache-cassandra-sidecar/bin/cassandra-sidecar + - run: test -f /opt/apache-cassandra-sidecar/agents/jolokia-core-*.jar + - run: test -f /opt/apache-cassandra-sidecar/agents/jolokia-jvm-*.jar + - run: test -f /opt/apache-cassandra-sidecar/conf/sidecar.yaml + - run: test -f /opt/apache-cassandra-sidecar/conf/logback.xml + - run: test -f /opt/apache-cassandra-sidecar/LICENSE.txt + - run: test -f /opt/apache-cassandra-sidecar/lib/cassandra-sidecar-*.jar docker_build: docker: diff --git a/adapters/base/build.gradle b/adapters/adapters-base/build.gradle similarity index 85% rename from adapters/base/build.gradle rename to adapters/adapters-base/build.gradle index 2bed834f..e052a92b 100644 --- a/adapters/base/build.gradle +++ b/adapters/adapters-base/build.gradle @@ -18,8 +18,6 @@ */ -import org.apache.tools.ant.taskdefs.condition.Os - import java.nio.file.Paths plugins { @@ -30,14 +28,10 @@ plugins { id "com.github.spotbugs" } -version project.version +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = JavaVersion.VERSION_11 -repositories { - mavenCentral() -} - test { useJUnitPlatform() maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 @@ -69,14 +63,3 @@ dependencies { testImplementation('org.mockito:mockito-inline:4.10.0') } - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-adapters-base" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraAdapter.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraAdapter.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraAdapter.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraAdapter.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraClusterMembershipOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraClusterMembershipOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraClusterMembershipOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraClusterMembershipOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraFactory.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraFactory.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraFactory.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraFactory.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraMetricsOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraMetricsOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraMetricsOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraMetricsOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraStorageOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraStorageOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraStorageOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraStorageOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraTableOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraTableOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraTableOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/CassandraTableOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/NodeInfo.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/NodeInfo.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/NodeInfo.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/NodeInfo.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/RingProvider.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/RingProvider.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/RingProvider.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/RingProvider.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProvider.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProvider.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProvider.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProvider.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/CompositeDataUtil.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/CompositeDataUtil.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/CompositeDataUtil.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/CompositeDataUtil.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/ProgressInfo.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/ProgressInfo.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/ProgressInfo.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/ProgressInfo.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/SessionInfo.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/SessionInfo.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/SessionInfo.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/SessionInfo.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamState.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamState.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamState.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamState.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamSummary.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamSummary.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamSummary.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/data/StreamSummary.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStats.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStats.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStats.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStats.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsDatabaseAccessor.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsDatabaseAccessor.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsDatabaseAccessor.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsDatabaseAccessor.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsSummary.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsSummary.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsSummary.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsSummary.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/schema/ConnectedClientsSchema.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/schema/ConnectedClientsSchema.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/schema/ConnectedClientsSchema.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/db/schema/ConnectedClientsSchema.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/exception/OperationUnavailableException.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/exception/OperationUnavailableException.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/exception/OperationUnavailableException.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/exception/OperationUnavailableException.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/ClusterMembershipJmxOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/ClusterMembershipJmxOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/ClusterMembershipJmxOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/ClusterMembershipJmxOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/EndpointSnitchJmxOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/EndpointSnitchJmxOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/EndpointSnitchJmxOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/EndpointSnitchJmxOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/GossipDependentStorageJmxOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/GossipDependentStorageJmxOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/GossipDependentStorageJmxOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/GossipDependentStorageJmxOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/MetricsJmxOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/MetricsJmxOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/MetricsJmxOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/MetricsJmxOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StorageJmxOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StorageJmxOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StorageJmxOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StorageJmxOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StreamManagerJmxOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StreamManagerJmxOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StreamManagerJmxOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/StreamManagerJmxOperations.java diff --git a/adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/TableJmxOperations.java b/adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/TableJmxOperations.java similarity index 100% rename from adapters/base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/TableJmxOperations.java rename to adapters/adapters-base/src/main/java/org/apache/cassandra/sidecar/adapters/base/jmx/TableJmxOperations.java diff --git a/adapters/base/src/test/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProviderTest.java b/adapters/adapters-base/src/test/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProviderTest.java similarity index 100% rename from adapters/base/src/test/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProviderTest.java rename to adapters/adapters-base/src/test/java/org/apache/cassandra/sidecar/adapters/base/TokenRangeReplicaProviderTest.java diff --git a/adapters/base/src/test/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsTest.java b/adapters/adapters-base/src/test/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsTest.java similarity index 100% rename from adapters/base/src/test/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsTest.java rename to adapters/adapters-base/src/test/java/org/apache/cassandra/sidecar/adapters/base/db/ConnectedClientStatsTest.java diff --git a/adapters/cassandra41/build.gradle b/adapters/adapters-cassandra41/build.gradle similarity index 81% rename from adapters/cassandra41/build.gradle rename to adapters/adapters-cassandra41/build.gradle index 11ac1570..f669ee41 100644 --- a/adapters/cassandra41/build.gradle +++ b/adapters/adapters-cassandra41/build.gradle @@ -18,8 +18,6 @@ */ -import org.apache.tools.ant.taskdefs.condition.Os - import java.nio.file.Paths plugins { @@ -29,7 +27,7 @@ plugins { id "com.github.spotbugs" } -version project.version +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = JavaVersion.VERSION_11 @@ -48,20 +46,9 @@ test { dependencies { api(project(":server-common")) - api(project(":adapters:base")) + api(project(":adapters:adapters-base")) compileOnly('org.jetbrains:annotations:23.0.0') compileOnly('com.datastax.cassandra:cassandra-driver-core:3.11.3') implementation("org.slf4j:slf4j-api:${project.slf4jVersion}") } - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-adapters-cassandra41" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} diff --git a/adapters/cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Adapter.java b/adapters/adapters-cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Adapter.java similarity index 100% rename from adapters/cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Adapter.java rename to adapters/adapters-cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Adapter.java diff --git a/adapters/cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Factory.java b/adapters/adapters-cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Factory.java similarity index 100% rename from adapters/cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Factory.java rename to adapters/adapters-cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41Factory.java diff --git a/adapters/cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41StorageOperations.java b/adapters/adapters-cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41StorageOperations.java similarity index 100% rename from adapters/cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41StorageOperations.java rename to adapters/adapters-cassandra41/src/main/java/org/apache/cassandra/sidecar/adapters/cassandra41/Cassandra41StorageOperations.java diff --git a/build.gradle b/build.gradle index 8669110a..fbec3a26 100644 --- a/build.gradle +++ b/build.gradle @@ -36,6 +36,8 @@ plugins { id 'idea' id 'java' id 'application' + // Used to sign built artifacts + id 'signing' // since we're using a specific version here, we delay applying the plugin till the all projects id "com.github.spotbugs" version "6.0.20" apply false @@ -55,7 +57,53 @@ plugins { id 'jacoco' } -ext.dependencyLocation = (System.getenv("CASSANDRA_DEP_DIR") ?: "${rootDir}/dtest-jars") + "/" +ext { + // A common method to handle loading gradle properties with a default when + // no definition is found. The property value is determined by the following + // priority order (top is highest priority): + // - gradle property (-Pproperty=value) + // - system property (-Dproperty=value) + // - environment variable + // - default value + // See more details on gradle property handling here: + // https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_properties_and_system_properties + propertyWithDefault = { property, defaultValue -> + def value = defaultValue + def envValue = System.getenv("CASSANDRA_DEP_DIR") + if (envValue != null) { + value = envValue + } + def systemValue = System.getProperty(property) + if (systemValue != null) { + value = systemValue + } + def projectValue = project.hasProperty(property) ? project.property(property) : null + if (projectValue != null) { + value = projectValue + } + return value + } + + // Returns true if the property has been set, otherwise false. + propertyExists = { property -> + System.getenv(property) != null || System.getProperty(property) != null || project.hasProperty(property) + } + + dependencyLocation = propertyWithDefault("CASSANDRA_DEP_DIR", "${rootDir}/dtest-jars") + "/" + + // This allows simplified builds and local maven installs. + forceSigning = propertyExists("forceSigning") + skipSigning = propertyExists("skipSigning") + shouldSign = + // Always sign artifacts if -PforceSigning is passed. + forceSigning || + // Skip signing artifacts by default if -PskipSigning is passed. + (!skipSigning + // Sign artifacts if the version is not a snapshot, and we are uploading them to maven. + && !version.endsWith("SNAPSHOT") + && project.gradle.startParameter.taskNames.any { it.contains("upload") }) + +} // Force checkstyle, rat, and spotBugs to run before test tasks for faster feedback def codeCheckTasks = task("codeCheckTasks") @@ -65,8 +113,7 @@ allprojects { apply plugin: 'checkstyle' // do not run spot-bug on test-specific sub-projects - if (!it.name.startsWith('integration-') && !it.name.startsWith("test-")) - { + if (!it.name.startsWith('integration-') && !it.name.startsWith("test-")) { apply plugin: "com.github.spotbugs" spotbugs { toolVersion = '4.2.3' @@ -155,6 +202,7 @@ run { distributions { main { + distributionBaseName = 'apache-cassandra-sidecar' contents { from 'LICENSE.txt' // Include the "agents" directory in the distribution @@ -168,6 +216,25 @@ distributions { setDuplicatesStrategy(DuplicatesStrategy.INCLUDE) } } + // Packages the sources as a tarball for distribution + sources { + distributionBaseName = 'apache-cassandra-sidecar' + distributionClassifier = 'src' + contents { + from '.' + include '**/*.*' + exclude '**.gradle/**' + exclude '**.idea/**' + exclude 'agents/**' + exclude 'bin/**' + exclude 'dtest-jars/**' + exclude '**lib/**' + exclude '**logs/**' + exclude '**/build/**' + exclude '**/out/**' + exclude '**/target/**' + } + } } configurations { @@ -261,23 +328,24 @@ tasks.register('copyDocs', Copy) { * as a requirement without the install breaking if you want to use a different version */ ospackage { - packageName = "cassandra-sidecar" + packageName = "apache-cassandra-sidecar" version = project.version // ospackage puts packages into /opt/[package] by default // which is _technically_ the right spot for packages link("/usr/local/bin/cassandra-sidecar", "/opt/cassandra-sidecar/bin/cassandra-sidecar") - license "Apache License 2.0" - description "Sidecar Management Tool for Apache Cassandra" + license = "Apache License 2.0" + summary = "Sidecar Management Tool for Apache Cassandra" + description = "Sidecar Management Tool for Apache Cassandra" os = LINUX - user "root" + user = "root" } buildRpm { - group = "build" + group = "distribution" } buildDeb { - group = "build" + group = "distribution" } tasks.register('buildIgnoreRatList', Exec) { @@ -322,6 +390,8 @@ rat { reportDir.set(file("build/reports/rat")) } +distZip.dependsOn copyJolokia +distTar.dependsOn copyJolokia installDist.dependsOn copyJolokia check.dependsOn codeCheckTasks if (JavaVersion.current().isJava11Compatible()) { @@ -332,3 +402,26 @@ run.dependsOn build tasks.named('rat').configure { dependsOn(buildIgnoreRatList) } + +tasks.named('distTar').configure { + compression = Compression.GZIP + archiveExtension = "tar.gz" +} + +tasks.named('sourcesDistTar').configure { + compression = Compression.GZIP + archiveExtension = "tar.gz" +} + +signing { + required { shouldSign } + if (shouldSign) { + // Use gpg-agent to sign + useGpgCmd() + } + sign distZip + sign distTar + sign sourcesDistTar + sign buildDeb + sign buildRpm +} diff --git a/client-common/build.gradle b/client-common/build.gradle index a041aa8b..a2a5a06a 100644 --- a/client-common/build.gradle +++ b/client-common/build.gradle @@ -18,8 +18,6 @@ */ -import org.apache.tools.ant.taskdefs.condition.Os - import java.nio.file.Paths plugins { @@ -31,7 +29,7 @@ plugins { id 'com.github.spotbugs' } -version project.version +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = 1.8 @@ -64,25 +62,3 @@ dependencies { testImplementation(group: 'io.netty', name: 'netty-codec-http', version: "${project.nettyVersion}") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:${project.junitVersion}") } - -java { - withJavadocJar() - withSourcesJar() -} - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-${archivesBaseName}" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} - -javadoc { - if (JavaVersion.current().isJava9Compatible()) { - options.addBooleanOption('html5', true) - } -} diff --git a/client/build.gradle b/client/build.gradle index 1921bc7d..193bf77b 100644 --- a/client/build.gradle +++ b/client/build.gradle @@ -17,8 +17,6 @@ */ -import org.apache.tools.ant.taskdefs.condition.Os - import java.nio.file.Paths plugins { @@ -31,14 +29,10 @@ plugins { id('maven-publish') } -version project.version +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = 1.8 -repositories { - mavenCentral() -} - test { useJUnitPlatform() testLogging { @@ -93,26 +87,4 @@ dependencies { testFixturesCompileOnly(group: 'io.netty', name: 'netty-codec-http', version: "${project.nettyVersion}") } -java { - withJavadocJar() - withSourcesJar() -} - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-${archivesBaseName}" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} - -javadoc { - if (JavaVersion.current().isJava9Compatible()) { - options.addBooleanOption('html5', true) - } -} - check.dependsOn(checkstyleMain, checkstyleTest, jacocoTestReport) diff --git a/gradle.properties b/gradle.properties index 3974f7be..a8e1c5c6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,7 +16,7 @@ # limitations under the License. # -version=1.0-SNAPSHOT +version=0.1.0 junitVersion=5.9.2 vertxVersion=4.5.13 nettyVersion=4.1.118.Final diff --git a/gradle/common/integrationTestTask.gradle b/gradle/common/integrationTestTask.gradle index c0ce425b..aa58d901 100644 --- a/gradle/common/integrationTestTask.gradle +++ b/gradle/common/integrationTestTask.gradle @@ -94,5 +94,5 @@ apply from: "${project.rootDir}/gradle/common/java11Options.gradle" task("integrationTest").dependsOn integrationTestLightWeight, integrationTestHeavyWeight -compileIntegrationTestJava.onlyIf { "true" != System.getenv("skipIntegrationTest") } -checkstyleIntegrationTest.onlyIf { "true" != System.getenv("skipIntegrationTest") } +compileIntegrationTestJava.onlyIf { !propertyExists('skipIntegrationTest') } +checkstyleIntegrationTest.onlyIf { !propertyExists('skipIntegrationTest') } diff --git a/gradle/common/publishing.gradle b/gradle/common/publishing.gradle new file mode 100644 index 00000000..514310ea --- /dev/null +++ b/gradle/common/publishing.gradle @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +apply plugin: 'maven-publish' +apply plugin: 'signing' + +ext { + mavenRepositoryUrl = propertyWithDefault("maven.repository.url", "") + // These properties can be set in ~/.gradle/gradle.properties file, + // though it would be open text. They can also be set on the cli via + // -Pmaven.username and -Pmaven.password + mavenUsername = propertyWithDefault("maven.username", "") + mavenPassword = propertyWithDefault("maven.password", "") +} + +java { + withJavadocJar() + withSourcesJar() +} + +publishing { + publications { + maven(MavenPublication) { + from components.java + groupId rootProject.group + artifactId "sidecar-${archivesBaseName}" + version System.getenv("CODE_VERSION") ?: "${project.version}" + + if (mavenRepositoryUrl != "") { + pom { + url = "https://cassandra.apache.org/" + licenses { + license { + name = "The Apache License, Version 2.0" + url = "https://www.apache.org/licenses/LICENSE-2.0.txt" + distribution = "repo" + } + } + } + } + } + } + + if (mavenRepositoryUrl != "") { + repositories { + maven { + url = mavenRepositoryUrl + if (mavenUsername != "" && mavenPassword != "") { + credentials { + username = mavenUsername + password = mavenPassword + } + } + } + } + } +} + +signing { + required { shouldSign } + if (shouldSign) { + // Use gpg-agent to sign + useGpgCmd() + } + + sign publishing.publications +} + +javadoc { + if (JavaVersion.current().isJava9Compatible()) { + options.addBooleanOption('html5', true) + } +} diff --git a/integration-framework/build.gradle b/integration-framework/build.gradle index 9ed39d5e..e1841d49 100644 --- a/integration-framework/build.gradle +++ b/integration-framework/build.gradle @@ -35,8 +35,8 @@ test { } dependencies { - implementation(project(":adapters:base")) - implementation(project(":adapters:cassandra41")) + implementation(project(":adapters:adapters-base")) + implementation(project(":adapters:adapters-cassandra41")) // The dtest jar must be a compile only dependency. We want to avoid having this jar in the // classpath while running integration tests. Instead, a dedicated classloader will load the @@ -84,6 +84,6 @@ dependencies { api(project(path: ":server-common")) } -compileJava.onlyIf { "true" != System.getenv("skipIntegrationTest") } -compileTestJava.onlyIf { "true" != System.getenv("skipIntegrationTest") } -javadoc.onlyIf { "true" != System.getenv("skipIntegrationTest") } +compileJava.onlyIf { !propertyExists('skipIntegrationTest') } +compileTestJava.onlyIf { !propertyExists('skipIntegrationTest') } +javadoc.onlyIf { !propertyExists('skipIntegrationTest') } diff --git a/server-common/build.gradle b/server-common/build.gradle index 163b1f03..23c90dc9 100644 --- a/server-common/build.gradle +++ b/server-common/build.gradle @@ -17,20 +17,15 @@ * under the License. */ - -import org.apache.tools.ant.taskdefs.condition.Os - import java.nio.file.Paths plugins { id 'java-library' id 'idea' - id 'maven-publish' id "com.github.spotbugs" id 'java-test-fixtures' } - -version project.version +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = JavaVersion.VERSION_11 @@ -65,22 +60,6 @@ dependencies { testFixturesImplementation("org.assertj:assertj-core:3.24.2") } -java { - withJavadocJar() - withSourcesJar() -} - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-${archivesBaseName}" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} - compileTestJava { // Required for the JmxClientTest which imports sun.rmi.server.UnicastRef // and sun.rmi.transport.LiveRef diff --git a/server/build.gradle b/server/build.gradle index 39db5e6b..49d0967f 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -31,6 +31,7 @@ plugins { // and produces a docker image id('com.google.cloud.tools.jib') version '3.4.4' } +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = JavaVersion.VERSION_11 @@ -145,8 +146,8 @@ dependencies { testImplementation(testFixtures(project(":test-common"))) implementation(project(":server-common")) - implementation(project(":adapters:base")) - implementation(project(":adapters:cassandra41")) + implementation(project(":adapters:adapters-base")) + implementation(project(":adapters:adapters-cassandra41")) implementation(project(":vertx-auth-mtls")) testFixturesApi(testFixtures(project(":server-common"))) @@ -172,22 +173,6 @@ dependencies { containerTestImplementation('com.adobe.testing:s3mock-testcontainers:2.17.0') // 3.x version do not support java 11 } -java { - withJavadocJar() - withSourcesJar() -} - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-${archivesBaseName}" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} - test { systemProperty "vertxweb.environment", "dev" systemProperty "vertx.logger-delegate-factory-class-name", "io.vertx.core.logging.SLF4JLogDelegateFactory" diff --git a/settings.gradle b/settings.gradle index a9a85664..5d91edb0 100644 --- a/settings.gradle +++ b/settings.gradle @@ -27,8 +27,8 @@ include "vertx-client-shaded" // The server code supports Java 11, but it doesn't support Java 8 if (JavaVersion.current().isJava11Compatible()) { - include "adapters:base" - include "adapters:cassandra41" + include "adapters:adapters-base" + include "adapters:adapters-cassandra41" include "docs" include "server" include "server-common" diff --git a/vertx-auth-mtls/build.gradle b/vertx-auth-mtls/build.gradle index b596f2a7..2e499f26 100644 --- a/vertx-auth-mtls/build.gradle +++ b/vertx-auth-mtls/build.gradle @@ -25,7 +25,7 @@ plugins { id('java-test-fixtures') } -version project.version +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = JavaVersion.VERSION_11 @@ -60,26 +60,4 @@ dependencies { testImplementation(testFixtures(project(path: ":test-common"))) } -java { - withJavadocJar() - withSourcesJar() -} - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-${archivesBaseName}" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} - -javadoc { - if (JavaVersion.current().isJava9Compatible()) { - options.addBooleanOption('html5', true) - } -} - check.dependsOn(checkstyleMain, checkstyleTest, jacocoTestReport) diff --git a/vertx-client-shaded/build.gradle b/vertx-client-shaded/build.gradle index 4bc511e2..4dd74909 100644 --- a/vertx-client-shaded/build.gradle +++ b/vertx-client-shaded/build.gradle @@ -89,18 +89,64 @@ tasks.named('test') { dependsOn 'shadowJar' } +ext { + mavenRepositoryUrl = propertyWithDefault("maven.repository.url", "") + // These properties can be set in ~/.gradle/gradle.properties file, + // though it would be open text. They can also be set on the cli via + // -Pmaven.username and -Pmaven.password + mavenUsername = propertyWithDefault("maven.username", "") + mavenPassword = propertyWithDefault("maven.password", "") +} + publishing { publications { shadow(MavenPublication) { publication -> project.shadow.component(publication) - groupId rootProject.group artifactId "sidecar-vertx-client-all" - version System.getenv("CODE_VERSION") ?: "${version}" + version System.getenv("CODE_VERSION") ?: "${project.version}" + + if (mavenRepositoryUrl != "") { + pom { + url = "https://cassandra.apache.org/" + licenses { + license { + name = "The Apache License, Version 2.0" + url = "https://www.apache.org/licenses/LICENSE-2.0.txt" + distribution = "repo" + } + } + } + } + } + } + + if (mavenRepositoryUrl != "") { + repositories { + maven { + url = mavenRepositoryUrl + if (mavenUsername != "" && mavenPassword != "") { + credentials { + username = mavenUsername + password = mavenPassword + } + } + } } } } +apply plugin: 'signing' +signing { + required { shouldSign } + if (shouldSign) { + // Use gpg-agent to sign + useGpgCmd() + } + + sign publishing.publications +} + /** * A Transformer which updates the Netty JAR META-INF/ resources to accurately * reference shaded class names. diff --git a/vertx-client/build.gradle b/vertx-client/build.gradle index 11ffff50..64c9651c 100644 --- a/vertx-client/build.gradle +++ b/vertx-client/build.gradle @@ -17,8 +17,6 @@ */ -import org.apache.tools.ant.taskdefs.condition.Os - import java.nio.file.Paths plugins { @@ -27,7 +25,7 @@ plugins { id('maven-publish') } -version project.version +apply from: "$rootDir/gradle/common/publishing.gradle" sourceCompatibility = 1.8 @@ -87,26 +85,4 @@ dependencies { } -java { - withJavadocJar() - withSourcesJar() -} - -publishing { - publications { - maven(MavenPublication) { - from components.java - groupId rootProject.group - artifactId "sidecar-${archivesBaseName}" - version System.getenv("CODE_VERSION") ?: "${version}" - } - } -} - -javadoc { - if (JavaVersion.current().isJava9Compatible()) { - options.addBooleanOption('html5', true) - } -} - check.dependsOn(checkstyleMain, checkstyleTest, jacocoTestReport) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org