This is an automated email from the ASF dual-hosted git repository.
mck pushed a commit to branch 2.0.10_fixes
in repository https://gitbox.apache.org/repos/asf/cassandra-java-driver.git
The following commit(s) were added to refs/heads/2.0.10_fixes by this push:
new 5ad388900 Add LICENSE and NOTICE.txt/NOTICE_binary to published jars
LICENSE + NOTICE.txt is added to source jars, LICENSE + NOTICE_binary.txt is
added to regular jars. Make parent project inherit from apache pom. Updated
NOTICE wording to "developed at ..." per latest instructions.
5ad388900 is described below
commit 5ad388900221219687d59323f50456a3b21e637b
Author: Henry Hughes <[email protected]>
AuthorDate: Thu Nov 16 23:15:10 2023 -0800
Add LICENSE and NOTICE.txt/NOTICE_binary to published jars
LICENSE + NOTICE.txt is added to source jars, LICENSE + NOTICE_binary.txt
is added to regular jars. Make parent project inherit from apache pom.
Updated NOTICE wording to "developed at ..." per latest instructions.
patch by Henry Hughes; reviewed by Mick Semb Wever for CASSANDRA-18969
---
NOTICE.txt | 243 +--------------------
NOTICE.txt => NOTICE_binary.txt | 5 +-
driver-core/pom.xml | 8 +
.../datastax/driver/core/SCassandraCluster.java | 131 +++++++++++
driver-dist/pom.xml | 13 +-
driver-dist/src/assembly/binary-tarball.xml | 9 +-
driver-dse/pom.xml | 13 ++
driver-examples/pom.xml | 13 ++
pom.xml | 32 +--
9 files changed, 209 insertions(+), 258 deletions(-)
diff --git a/NOTICE.txt b/NOTICE.txt
index b7a91be23..8e27ae3e5 100644
--- a/NOTICE.txt
+++ b/NOTICE.txt
@@ -1,246 +1,5 @@
Apache Cassandra Java Driver
Copyright 2012- The Apache Software Foundation
-This product includes software developed by The Apache Software
+This product includes software developed at The Apache Software
Foundation (http://www.apache.org/).
-
-==================================================================
-io.netty:netty-handler NOTICE.txt
-==================================================================
-This product contains the extensions to Java Collections Framework which has
-been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
-
- * LICENSE:
- * license/LICENSE.jsr166y.txt (Public Domain)
- * HOMEPAGE:
- * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
- *
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
-
-This product contains a modified version of Robert Harder's Public Domain
-Base64 Encoder and Decoder, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.base64.txt (Public Domain)
- * HOMEPAGE:
- * http://iharder.sourceforge.net/current/java/base64/
-
-This product contains a modified portion of 'Webbit', an event based
-WebSocket and HTTP server, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.webbit.txt (BSD License)
- * HOMEPAGE:
- * https://github.com/joewalnes/webbit
-
-This product contains a modified portion of 'SLF4J', a simple logging
-facade for Java, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.slf4j.txt (MIT License)
- * HOMEPAGE:
- * https://www.slf4j.org/
-
-This product contains a modified portion of 'Apache Harmony', an open source
-Java SE, which can be obtained at:
-
- * NOTICE:
- * license/NOTICE.harmony.txt
- * LICENSE:
- * license/LICENSE.harmony.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://archive.apache.org/dist/harmony/
-
-This product contains a modified portion of 'jbzip2', a Java bzip2 compression
-and decompression library written by Matthew J. Francis. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.jbzip2.txt (MIT License)
- * HOMEPAGE:
- * https://code.google.com/p/jbzip2/
-
-This product contains a modified portion of 'libdivsufsort', a C API library
to construct
-the suffix array and the Burrows-Wheeler transformed string for any input
string of
-a constant-size alphabet written by Yuta Mori. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.libdivsufsort.txt (MIT License)
- * HOMEPAGE:
- * https://github.com/y-256/libdivsufsort
-
-This product contains a modified portion of Nitsan Wakart's 'JCTools', Java
Concurrency Tools for the JVM,
- which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.jctools.txt (ASL2 License)
- * HOMEPAGE:
- * https://github.com/JCTools/JCTools
-
-This product optionally depends on 'JZlib', a re-implementation of zlib in
-pure Java, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.jzlib.txt (BSD style License)
- * HOMEPAGE:
- * http://www.jcraft.com/jzlib/
-
-This product optionally depends on 'Compress-LZF', a Java library for encoding
and
-decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.compress-lzf.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/ning/compress
-
-This product optionally depends on 'lz4', a LZ4 Java compression
-and decompression library written by Adrien Grand. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.lz4.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/jpountz/lz4-java
-
-This product optionally depends on 'lzma-java', a LZMA Java compression
-and decompression library, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.lzma-java.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/jponge/lzma-java
-
-This product optionally depends on 'zstd-jni', a zstd-jni Java compression
-and decompression library, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.zstd-jni.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/luben/zstd-jni
-
-This product contains a modified portion of 'jfastlz', a Java port of FastLZ
compression
-and decompression library written by William Kinney. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.jfastlz.txt (MIT License)
- * HOMEPAGE:
- * https://code.google.com/p/jfastlz/
-
-This product contains a modified portion of and optionally depends on
'Protocol Buffers', Google's data
-interchange format, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.protobuf.txt (New BSD License)
- * HOMEPAGE:
- * https://github.com/google/protobuf
-
-This product optionally depends on 'Bouncy Castle Crypto APIs' to generate
-a temporary self-signed X.509 certificate when the JVM does not provide the
-equivalent functionality. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.bouncycastle.txt (MIT License)
- * HOMEPAGE:
- * https://www.bouncycastle.org/
-
-This product optionally depends on 'Snappy', a compression library produced
-by Google Inc, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.snappy.txt (New BSD License)
- * HOMEPAGE:
- * https://github.com/google/snappy
-
-This product optionally depends on 'JBoss Marshalling', an alternative Java
-serialization API, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.jboss-marshalling.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/jboss-remoting/jboss-marshalling
-
-This product optionally depends on 'Caliper', Google's micro-
-benchmarking framework, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.caliper.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/google/caliper
-
-This product optionally depends on 'Apache Commons Logging', a logging
-framework, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.commons-logging.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://commons.apache.org/logging/
-
-This product optionally depends on 'Apache Log4J', a logging framework, which
-can be obtained at:
-
- * LICENSE:
- * license/LICENSE.log4j.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://logging.apache.org/log4j/
-
-This product optionally depends on 'Aalto XML', an ultra-high performance
-non-blocking XML processor, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.aalto-xml.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://wiki.fasterxml.com/AaltoHome
-
-This product contains a modified version of 'HPACK', a Java implementation of
-the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.hpack.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/twitter/hpack
-
-This product contains a modified version of 'HPACK', a Java implementation of
-the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
-
- * LICENSE:
- * license/LICENSE.hyper-hpack.txt (MIT License)
- * HOMEPAGE:
- * https://github.com/python-hyper/hpack/
-
-This product contains a modified version of 'HPACK', a Java implementation of
-the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained
at:
-
- * LICENSE:
- * license/LICENSE.nghttp2-hpack.txt (MIT License)
- * HOMEPAGE:
- * https://github.com/nghttp2/nghttp2/
-
-This product contains a modified portion of 'Apache Commons Lang', a Java
library
-provides utilities for the java.lang API, which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.commons-lang.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://commons.apache.org/proper/commons-lang/
-
-
-This product contains the Maven wrapper scripts from 'Maven Wrapper', that
provides an easy way to ensure a user has everything necessary to run the Maven
build.
-
- * LICENSE:
- * license/LICENSE.mvn-wrapper.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/takari/maven-wrapper
-
-This product contains the dnsinfo.h header file, that provides a way to
retrieve the system DNS configuration on MacOS.
-This private header is also used by Apple's open source
- mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).
-
- * LICENSE:
- * license/LICENSE.dnsinfo.txt (Apple Public Source License 2.0)
- * HOMEPAGE:
- *
https://www.opensource.apple.com/source/configd/configd-453.19/dnsinfo/dnsinfo.h
-
-This product optionally depends on 'Brotli4j', Brotli compression and
-decompression for Java., which can be obtained at:
-
- * LICENSE:
- * license/LICENSE.brotli4j.txt (Apache License 2.0)
- * HOMEPAGE:
- * https://github.com/hyperxpro/Brotli4j
diff --git a/NOTICE.txt b/NOTICE_binary.txt
similarity index 97%
copy from NOTICE.txt
copy to NOTICE_binary.txt
index b7a91be23..c60d8ceb2 100644
--- a/NOTICE.txt
+++ b/NOTICE_binary.txt
@@ -1,9 +1,12 @@
Apache Cassandra Java Driver
Copyright 2012- The Apache Software Foundation
-This product includes software developed by The Apache Software
+This product includes software developed at The Apache Software
Foundation (http://www.apache.org/).
+This compiled product also includes Apache-licensed dependencies
+that contain the following NOTICE information:
+
==================================================================
io.netty:netty-handler NOTICE.txt
==================================================================
diff --git a/driver-core/pom.xml b/driver-core/pom.xml
index 1b3846d7e..149a5cb2b 100644
--- a/driver-core/pom.xml
+++ b/driver-core/pom.xml
@@ -135,6 +135,14 @@
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
+ <resource>
+ <directory>${project.basedir}/..</directory>
+ <includes>
+ <include>LICENSE</include>
+ <include>NOTICE_binary.txt</include>
+ </includes>
+ <targetPath>META-INF</targetPath>
+ </resource>
</resources>
<plugins>
<plugin>
diff --git
a/driver-core/src/test/java/com/datastax/driver/core/SCassandraCluster.java
b/driver-core/src/test/java/com/datastax/driver/core/SCassandraCluster.java
new file mode 100644
index 000000000..039e58ec2
--- /dev/null
+++ b/driver-core/src/test/java/com/datastax/driver/core/SCassandraCluster.java
@@ -0,0 +1,131 @@
+/*
+ * 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.
+ */
+package com.datastax.driver.core;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.List;
+import java.util.Map;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+import org.scassandra.Scassandra;
+import org.scassandra.ScassandraFactory;
+import org.scassandra.http.client.ColumnTypes;
+import org.scassandra.http.client.PrimingClient;
+import org.scassandra.http.client.PrimingRequest;
+
+/**
+ * Launches multiple SCassandra instances, and mocks the appropriate request
to make the driver think
+ * that they belong to the same cluster.
+ *
+ * Note: this uses the same addresses as {@link CCMBridge}, so make sure IP
aliases have been set up,
+ * and a CCM cluster is not running at the same time.
+ */
+public class SCassandraCluster {
+ private static final int BINARY_PORT = 9042;
+ private static final int ADMIN_PORT = 9052;
+
+ private final List<Scassandra> scassandras;
+ private final List<InetAddress> addresses;
+ private final List<PrimingClient> primingClients;
+
+ public SCassandraCluster(String ipPrefix, int nodeCount) {
+ scassandras = Lists.newArrayListWithCapacity(nodeCount);
+ addresses = Lists.newArrayListWithCapacity(nodeCount);
+ primingClients = Lists.newArrayListWithCapacity(nodeCount);
+
+ for (int i = 1; i <= nodeCount; i++) {
+ String ip = ipPrefix + i;
+ try {
+ addresses.add(InetAddress.getByName(ip));
+ } catch (UnknownHostException e) {
+ throw new AssertionError(e);
+ }
+ Scassandra scassandra = ScassandraFactory.createServer(ip,
BINARY_PORT, ip, ADMIN_PORT);
+ scassandra.start();
+ scassandras.add(scassandra);
+
+ // Currently Scassandra#primingClient() uses localhost by default,
so build manually:
+ primingClients.add(PrimingClient.builder()
+ .withHost(ip).withPort(scassandra.getAdminPort())
+ .build());
+ }
+ primePeers();
+ }
+
+ public List<InetAddress> addresses() {
+ return addresses;
+ }
+
+ public void stop() {
+ for (Scassandra scassandra : scassandras)
+ scassandra.stop();
+ }
+
+ public SCassandraCluster prime(int node, PrimingRequest request) {
+ primingClients.get(node - 1).prime(request);
+ return this;
+ }
+
+ public void clearAllPrimes() {
+ for (PrimingClient primingClient : primingClients)
+ primingClient.clearAllPrimes();
+ primePeers();
+ }
+
+ private void primePeers() {
+ for (int i = 0; i < scassandras.size(); i++)
+ primePeers(primingClients.get(i), scassandras.get(i));
+ }
+
+ @SuppressWarnings("unchecked")
+ private void primePeers(PrimingClient primingClient, Scassandra toIgnore) {
+ List<Map<String, ?>> rows =
Lists.newArrayListWithCapacity(scassandras.size());
+ for (int i = 0; i < scassandras.size(); i++) {
+ if (scassandras.get(i).equals(toIgnore))
+ continue;
+ InetAddress address = addresses.get(i);
+ rows.add(ImmutableMap.<String, Object>builder()
+ .put("peer", address)
+ .put("rpc_address", address)
+ .put("data_center", "datacenter1")
+ .put("rack", "rack1")
+ .put("release_version", "2.0.1")
+ .put("tokens", ImmutableSet.of(Long.toString(Long.MIN_VALUE +
i)))
+ .build());
+ }
+ primingClient.prime(
+ PrimingRequest.queryBuilder()
+ .withQuery("SELECT * FROM system.peers")
+ .withColumnTypes(SELECT_PEERS_COLUMN_TYPES)
+ .withRows(rows)
+ .build());
+ }
+
+ private static final ImmutableMap<String, ColumnTypes>
SELECT_PEERS_COLUMN_TYPES =
+ ImmutableMap.<String, ColumnTypes>builder()
+ .put("peer", ColumnTypes.Inet)
+ .put("rpc_address", ColumnTypes.Inet)
+ .put("data_center", ColumnTypes.Text)
+ .put("rack", ColumnTypes.Text)
+ .put("release_version", ColumnTypes.Text)
+ .put("tokens", ColumnTypes.TextSet)
+ .build();
+}
diff --git a/driver-dist/pom.xml b/driver-dist/pom.xml
index 31aa5ee1f..57e8726a4 100644
--- a/driver-dist/pom.xml
+++ b/driver-dist/pom.xml
@@ -71,7 +71,7 @@
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
- <version>2.4</version>
+ <version>2.5</version>
<executions>
<execution>
<id>assemble-binary-tarball</id>
@@ -88,6 +88,17 @@
</descriptors>
</configuration>
</plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.0.2</version>
+ <!--
http://stackoverflow.com/questions/13218313/unable-to-disable-generation-of-empty-jar-maven-jar-plugin
-->
+ <executions>
+ <execution>
+ <id>default-jar</id>
+ <phase>none</phase>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
diff --git a/driver-dist/src/assembly/binary-tarball.xml
b/driver-dist/src/assembly/binary-tarball.xml
index f320b5b9d..f4b41061b 100644
--- a/driver-dist/src/assembly/binary-tarball.xml
+++ b/driver-dist/src/assembly/binary-tarball.xml
@@ -29,7 +29,6 @@
<includes>
<include>com.datastax.cassandra:cassandra-driver-core</include>
<include>com.datastax.cassandra:cassandra-driver-dse</include>
- <include>com.datastax.cassandra:cassandra-driver-mapping</include>
</includes>
<binaries>
<outputDirectory>/</outputDirectory>
@@ -58,5 +57,13 @@
</includes>
<outputDirectory>/</outputDirectory>
</fileSet>
+ <fileSet>
+ <directory>..</directory>
+ <includes>
+ <include>LICENSE*</include>
+ <include>NOTICE*</include>
+ </includes>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
</fileSets>
</assembly>
diff --git a/driver-dse/pom.xml b/driver-dse/pom.xml
index 07f59c7ed..56c8a3f1f 100644
--- a/driver-dse/pom.xml
+++ b/driver-dse/pom.xml
@@ -43,6 +43,19 @@
</dependencies>
<build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${project.basedir}/..</directory>
+ <includes>
+ <include>LICENSE</include>
+ <include>NOTICE_binary.txt</include>
+ </includes>
+ <targetPath>META-INF</targetPath>
+ </resource>
+ </resources>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
diff --git a/driver-examples/pom.xml b/driver-examples/pom.xml
index 296a39182..eb861a283 100644
--- a/driver-examples/pom.xml
+++ b/driver-examples/pom.xml
@@ -63,6 +63,19 @@
</developers>
<build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${project.basedir}/..</directory>
+ <includes>
+ <include>LICENSE</include>
+ <include>NOTICE_binary.txt</include>
+ </includes>
+ <targetPath>META-INF</targetPath>
+ </resource>
+ </resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/pom.xml b/pom.xml
index 61ce2c65e..6916f7c6e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -20,10 +20,9 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.sonatype.oss</groupId>
- <artifactId>oss-parent</artifactId>
- <version>7</version>
- <relativePath />
+ <groupId>org.apache</groupId>
+ <artifactId>apache</artifactId>
+ <version>23</version>
</parent>
<groupId>com.datastax.cassandra</groupId>
@@ -121,6 +120,14 @@
<goals>
<goal>jar</goal>
</goals>
+ <configuration>
+ <includes>
+ <include>NOTICE.txt</include>
+ </includes>
+ <excludes>
+ <exclude>NOTICE_binary.txt</exclude>
+ </excludes>
+ </configuration>
</execution>
</executions>
</plugin>
@@ -144,15 +151,6 @@
</execution>
</executions>
</plugin>
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <version>2.4</version>
- <configuration>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- </configuration>
- </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
@@ -220,6 +218,14 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-remote-resources-plugin</artifactId>
+ <version>1.7.0</version>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
</plugins>
</build>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]