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]

Reply via email to