diff --git a/.github/workflows/auto-jdk-os-matrix.yml b/.github/workflows/auto-jdk-os-matrix.yml index ed180f0e..eea189cd 100644 --- a/.github/workflows/auto-jdk-os-matrix.yml +++ b/.github/workflows/auto-jdk-os-matrix.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - jdk: [ 8 ] + jdk: [ 8, 11 ] os: [ windows-latest, ubuntu-latest, macos-latest ] include: - os: windows-latest @@ -28,9 +28,18 @@ jobs: - os: macos-latest arch: aarch64 + - jdk: 8 + distribution: 'zulu' + jvm_args: "" + - jdk: 11 + distribution: 'zulu' + jvm_args: "--add-exports java.base/jdk.internal.misc=org.apache.datasketches.memory --add-exports java.base/jdk.internal.ref=org.apache.datasketches.memory --add-opens java.base/java.nio=org.apache.datasketches.memory --add-opens java.base/sun.nio.ch=org.apache.datasketches.memory" + # Reference the reusable workflow on the "workflows" branch uses: apache/datasketches-memory/.github/workflows/reusable-jdk-os-matrix.yml@workflows with: jdk_version: ${{ matrix.jdk }} os_type: ${{ matrix.os }} - java_arch: ${{ matrix.arch }} + cpu_arch: ${{ matrix.arch }} + jdk_distribution: ${{ matrix.distribution }} + jvm_args: ${{ matrix.jvm_args }} diff --git a/.github/workflows/javadoc.yml b/.github/workflows/javadoc.yml index feaa56eb..4a7d5fb7 100644 --- a/.github/workflows/javadoc.yml +++ b/.github/workflows/javadoc.yml @@ -30,7 +30,7 @@ jobs: uses: actions/setup-java@v4 with: java-version: '8' - distribution: 'temurin' + distribution: 'zulu' java-package: jdk architecture: x64 cache: 'maven' diff --git a/.gitignore b/.gitignore index f36d4f43..3a308a5c 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ datasketches-memory*/.gitignore .classpath .project .settings/ +.factorypath .checkstyle # IntelliJ project files diff --git a/.mvn/maven.config b/.mvn/maven.config new file mode 100644 index 00000000..bd0d7511 --- /dev/null +++ b/.mvn/maven.config @@ -0,0 +1,9 @@ +# suppresses the warning: +# Direct modification of testCompileSourceRoots through add() is deprecated and will not work in Maven 4.0.0. Please use the add/remove methods instead. +# If you're using a plugin that causes this warning, please upgrade to the latest version and report an issue if the warning persists. +# To disable these warnings, set -Dmaven.project.sourceRoots.warningsDisabled=true on the command line or in the .mvn/maven.config file. +-Dmaven.project.sourceRoots.warningsDisabled=true +-Dproject.root=${session.rootDirectory} +--no-transfer-progress +--batch-mode +-Dstyle.color=always \ No newline at end of file diff --git a/datasketches-memory-java11/pom.xml b/datasketches-memory-java11/pom.xml index 3f62410f..2a1ce83c 100644 --- a/datasketches-memory-java11/pom.xml +++ b/datasketches-memory-java11/pom.xml @@ -17,8 +17,10 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> - + 4.0.0 @@ -26,6 +28,7 @@ under the License. org.apache.datasketches datasketches-memory 3.0.2 + ../pom.xml datasketches-memory-java11 @@ -33,44 +36,129 @@ under the License. jar + + 7.12.0 11 - 11 + + ${java.version} ${java.version} ${java.version} - true + false + true + + --add-exports=java.base/jdk.internal.misc=ALL-UNNAMED + + --add-exports=java.base/jdk.internal.ref=ALL-UNNAMED + + --add-exports=java.base/sun.nio.ch=ALL-UNNAMED + + --add-opens=java.base/sun.nio.ch=ALL-UNNAMED + + --add-opens=java.base/java.nio=ALL-UNNAMED + + + + org.testng + testng + ${testng.version} + test + + + + net.openhft + zero-allocation-hashing + ${zero-allocation-hashing.version} + test + + + org.slf4j + slf4j-simple + ${org-slf4j.version} + test + + + - + org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - --add-exports - java.base/jdk.internal.ref=org.apache.datasketches.memory - - + maven-deploy-plugin + + + + org.apache.maven.plugins + maven-compiler-plugin + + true + + ${arg.jdk.internal.ref} + ${arg.jdk.internal.misc} + ${arg.sun.nio.ch.exports} + ${arg.sun.nio.ch.opens} + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + org.apache.maven.plugins + maven-surefire-plugin + + + @{argLine} @{jvm.args} ${arg.java.nio} ${arg.sun.nio.ch.exports} ${arg.sun.nio.ch.opens} ${arg.jdk.internal.misc} ${arg.jdk.internal.ref} + + false + false + false + false + ${project.build.directory}/test-output/${maven.build.timestamp} + false + + + + + org.apache.maven.plugins + maven-toolchains-plugin + + + + toolchain + + + + + + + ${java.version} + + + + + + assemble-mr-jar - - !unsetDefaultProfile - + false - - ${maven.multiModuleProjectDirectory}/tools/scripts/package-multi-release-jar.sh + + ${project.root}/tools/scripts/package-multi-release-jar.sh ${env.JAVA_HOME} ${project.version} - ${maven.multiModuleProjectDirectory} + ${project.root} exec:exec @@ -79,7 +167,7 @@ under the License. org.codehaus.mojo exec-maven-plugin - ${exec-maven-plugin.version} + ${exec-maven-plugin.version} package-mr-jar diff --git a/datasketches-memory-java11/src/main/java/module-info.java b/datasketches-memory-java11/src/main/java/module-info.java deleted file mode 100644 index 07163cf3..00000000 --- a/datasketches-memory-java11/src/main/java/module-info.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * 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. - */ -module org.apache.datasketches.memory { - requires java.base; - requires java.logging; - requires jdk.unsupported; - - exports org.apache.datasketches.memory; -} \ No newline at end of file diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Buffer.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Buffer.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Buffer.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BufferPositionInvariantsException.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/BufferPositionInvariantsException.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/BufferPositionInvariantsException.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/BufferPositionInvariantsException.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Memory.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Memory.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Memory.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MemoryBoundsException.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/MemoryBoundsException.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MemoryBoundsException.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/MemoryBoundsException.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java index 50be79f0..916494f8 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/MurmurHash3v2.java @@ -184,7 +184,7 @@ public static long[] hash( * @param hashOut the size 2 long array for the resulting 128-bit hash * @return the hash. */ - @SuppressWarnings("restriction") + //@SuppressWarnings("restriction") public static long[] hash( final Memory mem, final long offsetBytes, diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Positional.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Positional.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Positional.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Positional.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Resource.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Resource.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/Resource.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/Resource.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/WritableBuffer.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableBuffer.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/WritableBuffer.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/WritableMemory.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/WritableMemory.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/WritableMemory.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/XxHash.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/XxHash.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/XxHash.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/XxHash.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java index 9319e820..f0a05901 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AccessByteBuffer.java @@ -31,7 +31,7 @@ * @author Praveenkumar Venkatesan * @author Roman Leventov */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") final class AccessByteBuffer { static final ByteBuffer ZERO_READ_ONLY_DIRECT_BYTE_BUFFER = diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirect.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AllocateDirect.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirect.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AllocateDirect.java index 02110611..6db389c8 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirect.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AllocateDirect.java @@ -29,7 +29,7 @@ * @author Roman Leventov * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") final class AllocateDirect { static final Logger LOG = Logger.getLogger(AllocateDirect.class.getCanonicalName()); diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMap.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMap.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMap.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMap.java index f461c6f6..eacf63b8 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMap.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMap.java @@ -49,7 +49,7 @@ * @author Lee Rhodes * @author Praveenkumar Venkatesan */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") final class AllocateDirectWritableMap { static final Logger LOG = Logger.getLogger(AllocateDirectWritableMap.class.getCanonicalName()); diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBNonNativeWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BBWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java index 86fbe032..106f004b 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BaseWritableBufferImpl.java @@ -43,7 +43,7 @@ * Common base of native-ordered and non-native-ordered {@link WritableBuffer} implementations. * Contains methods which are agnostic to the byte order. */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") public abstract class BaseWritableBufferImpl extends PositionalImpl implements WritableBuffer { //Pass-through constructor diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java index 5bee6e75..2bd6971d 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/BaseWritableMemoryImpl.java @@ -47,7 +47,7 @@ * Common base of native-ordered and non-native-ordered {@link WritableMemory} implementations. * Contains methods which are agnostic to the byte order. */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") public abstract class BaseWritableMemoryImpl extends ResourceImpl implements WritableMemory { //1KB of empty bytes for speedy clear() diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java index 052b84e5..a3ef00f5 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/CompareAndCopy.java @@ -31,7 +31,7 @@ /** * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") final class CompareAndCopy { private CompareAndCopy() { } diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectNonNativeWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/DirectWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapNonNativeWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/HeapWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Ints.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Ints.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Ints.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Ints.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapNonNativeWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapWritableBufferImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/MapWritableMemoryImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java index f092bb3b..d5be892a 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NativeWritableBufferImpl.java @@ -36,7 +36,7 @@ * @author Roman Leventov * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") abstract class NativeWritableBufferImpl extends BaseWritableBufferImpl { //Pass-through constructor diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java index 922a62d0..198fbe06 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImpl.java @@ -36,7 +36,7 @@ * @author Roman Leventov * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") abstract class NativeWritableMemoryImpl extends BaseWritableMemoryImpl { //Pass-through constructor diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java index 8202ebff..f16c57c3 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImpl.java @@ -30,7 +30,7 @@ * @author Roman Leventov * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") abstract class NonNativeWritableBufferImpl extends BaseWritableBufferImpl { //Pass-through constructor diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java index 8597ce5a..bc94ecff 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImpl.java @@ -30,7 +30,7 @@ * @author Roman Leventov * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") abstract class NonNativeWritableMemoryImpl extends BaseWritableMemoryImpl { //Pass-through constructor diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/PositionalImpl.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Prim.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Prim.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Prim.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Prim.java index 96d82031..0caffb31 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Prim.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Prim.java @@ -52,7 +52,7 @@ * * @author Lee Rhodes */ -@SuppressWarnings("javadoc") +//@SuppressWarnings("javadoc") public enum Prim { BOOLEAN(ARRAY_BOOLEAN_BASE_OFFSET, ARRAY_BOOLEAN_INDEX_SCALE, BOOLEAN_SHIFT), BYTE(ARRAY_BYTE_BASE_OFFSET, ARRAY_BYTE_INDEX_SCALE, BYTE_SHIFT), diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java index d38fdf2a..5eaf3915 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java @@ -35,7 +35,7 @@ * * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") public abstract class ResourceImpl implements Resource { static final String JDK; static final int JDK_MAJOR; //8, 11, 17, etc diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/StepBoolean.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/StepBoolean.java similarity index 100% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/StepBoolean.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/StepBoolean.java diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/UnsafeUtil.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/UnsafeUtil.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/UnsafeUtil.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/UnsafeUtil.java index 7f2481d5..8c4d1fa9 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/UnsafeUtil.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/UnsafeUtil.java @@ -29,7 +29,7 @@ * * @author Lee Rhodes */ -@SuppressWarnings({"restriction","javadoc"}) +//@SuppressWarnings({"restriction","javadoc"}) public final class UnsafeUtil { public static final Unsafe unsafe; diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Util.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Util.java similarity index 83% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Util.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Util.java index d94e3d66..7c4f947a 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/Util.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/Util.java @@ -23,12 +23,15 @@ import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import java.nio.ByteOrder; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.util.Objects; import java.util.Random; @@ -318,7 +321,7 @@ public static final void nullCheck(final Object obj, final String arg) { //Resources NOTE: these 3 methods are duplicated in Java/ datasketches/Util /** - * Gets the absolute path of the given resource file's shortName. + * Gets the Path of the given resource file's shortName. * *

Note that the ClassLoader.getResource(shortName) returns a URL, * which can have special characters, e.g., "%20" for spaces. This method @@ -336,21 +339,21 @@ public static String getResourcePath(final String shortFileName) { Objects.requireNonNull(url, "resource " + shortFileName + " could not be acquired."); final URI uri = url.toURI(); //decodes any special characters - final String path = uri.isAbsolute() ? Paths.get(uri).toAbsolutePath().toString() : uri.getPath(); - return path; + final String pathStr = uri.isAbsolute() ? Paths.get(uri).toAbsolutePath().toString() : uri.getPath(); + return pathStr; } catch (final URISyntaxException e) { throw new IllegalArgumentException("Cannot find resource: " + shortFileName + LS + e); } } - /** - * Gets the file defined by the given resource file's shortFileName. - * @param shortFileName the last name in the pathname's name sequence. - * @return the file defined by the given resource file's shortFileName. - */ - public static File getResourceFile(final String shortFileName) { - return new File(getResourcePath(shortFileName)); - } +// /** +// * Gets the file defined by the given resource file's shortFileName. +// * @param shortFileName the last name in the pathname's name sequence. +// * @return the file defined by the given resource file's shortFileName. +// */ +// public static File getResourceFile(final String shortFileName) { +// return new File(getResourcePath(shortFileName)); +// } /** * Returns a byte array of the contents of the file defined by the given resource file's @@ -367,4 +370,58 @@ public static byte[] getResourceBytes(final String shortFileName) { } } + public static void ensureReadOnly(Path path) { + if (!Files.exists(path)) { + throw new IllegalArgumentException("File not found."); + } + + // Works on Windows and POSIX) + path.toFile().setReadOnly(); + } + + /** + * Windows and JAR friendly get Resource File + * @param resourceName the simple file name. No special characters or slashes. + * @return a File System File + */ + public static File getResourceFile(String resourceName) { + Objects.requireNonNull(resourceName, "Given resourceName must not be null"); + if (resourceName.isEmpty()) { throw new IllegalArgumentException("Given resourceName must not be empty"); } + // Normalize name: ClassLoaders MUST use forward slashes even on Windows + String normalizedName = resourceName.replace('\\', '/'); + if (normalizedName.startsWith("/")) { normalizedName = normalizedName.substring(1); } + + ClassLoader loader = Util.class.getClassLoader(); + URL url = loader.getResource(normalizedName); + if (url == null) { throw new IllegalArgumentException("Resource not found: " + normalizedName); } + + // If it's a real file, return it directly + if ("file".equals(url.getProtocol())) { + try { + URI uri = url.toURI(); + return new File(uri); } + catch (URISyntaxException e) { return new File(url.getPath()); } + } + + // If it's in a JAR, we must extract it for Memory.map() to work + // We use a prefix that won't collide with Windows reserved names + File tempFile; + try { tempFile = File.createTempFile("datasketches-", ".bin"); } + catch (IOException e1) { throw new IllegalArgumentException(e1); } + tempFile.deleteOnExit(); + + try (InputStream in = loader.getResourceAsStream(normalizedName)) { + if (in == null) throw new IllegalArgumentException("Could not open stream for " + normalizedName); + + // Use REPLACE_EXISTING to avoid "File Already Exists" errors on Windows retries + Files.copy(in, tempFile.toPath(), StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { throw new IllegalArgumentException(e); } + + // Final Windows Fix: Ensure the file is actually writable if you need to setReadOnly later + //tempFile.setWritable(true); + + return tempFile; + } + + } diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/XxHash64.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/XxHash64.java similarity index 99% rename from datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/XxHash64.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/XxHash64.java index c4c8afb7..2071b116 100644 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/XxHash64.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/internal/XxHash64.java @@ -52,7 +52,7 @@ * * @author Lee Rhodes */ -@SuppressWarnings("restriction") +//@SuppressWarnings("restriction") public class XxHash64 { // Unsigned, 64-bit primes private static final long P1 = -7046029288634856825L; diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java similarity index 98% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java index a4eefc42..ec4c2d46 100644 --- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java +++ b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMapMemoryTest.java @@ -55,7 +55,7 @@ public void simpleMap() throws IOException { } @Test - public void printGettysbergAddress() throws IOException { + public void printGettysburgAddress() throws IOException { File file = getResourceFile("GettysburgAddress.txt"); try (Memory mem = Memory.map(file)) { diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectMemoryTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/AllocateDirectWritableMapMemoryTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/Buffer2Test.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferBoundaryCheckTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferBoundaryCheckTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferBoundaryCheckTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferBoundaryCheckTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferInvariantsTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferReadWriteSafetyTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferReadWriteSafetyTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferReadWriteSafetyTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferReadWriteSafetyTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/BufferTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CommonBufferTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java similarity index 99% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java index 89697019..a1d2e7fb 100644 --- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java +++ b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CommonMemoryTest.java @@ -93,7 +93,6 @@ public void checkSetGetArrays() throws Exception { } public static void setGetArraysTests(WritableMemory mem) { - int accessCapacity = (int)mem.getCapacity(); int words = 4; diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryOverlapTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/CopyMemoryTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/DruidIssue11544Test.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ExampleMemoryRequestServerTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/IgnoredArrayOverflowTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/LeafImplTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryBoundaryCheckTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryBoundaryCheckTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryBoundaryCheckTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryBoundaryCheckTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryCleanerTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryCleanerTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryCleanerTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryCleanerTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryCloseExceptionTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryCloseExceptionTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryCloseExceptionTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryCloseExceptionTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryReadWriteSafetyTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/MemoryWriteToTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NativeWritableBufferImplTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NativeWritableMemoryImplTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableBufferImplTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/NonNativeWritableMemoryImplTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/PositionalTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/PositionalTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/PositionalTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/PositionalTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ResourceTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ResourceTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ResourceTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ResourceTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java similarity index 93% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java index 9eabcd8f..9c0e9ae0 100644 --- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java +++ b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/SpecificLeafTest.java @@ -47,7 +47,7 @@ public void checkByteBufferLeaves() { ResourceImpl bsi = (ResourceImpl)mem; int typeId = bsi.getTypeId(); assertTrue(bsi.hasByteBuffer()); - assertTrue(bsi.isNativeOrder(typeId)); + assertTrue(ResourceImpl.isNativeOrder(typeId)); assertTrue(mem.isReadOnly()); checkCrossLeafTypeIds(mem); Buffer buf = mem.asBuffer().region(0, bytes, ByteOrder.nativeOrder()); @@ -160,31 +160,31 @@ private static void checkCrossLeafTypeIds(Memory mem) { assertTrue(((ResourceImpl)reg1).isRegionView()); Buffer buf1 = reg1.asBuffer(); assertTrue(((ResourceImpl)buf1).isRegionView()); - assertTrue(((ResourceImpl)buf1).isBuffer(((ResourceImpl)buf1).getTypeId())); + assertTrue(ResourceImpl.isBuffer(((ResourceImpl)buf1).getTypeId())); assertTrue(buf1.isReadOnly()); Buffer buf2 = buf1.duplicate(); assertTrue(((ResourceImpl)buf2).isRegionView()); - assertTrue(((ResourceImpl)buf2).isBuffer(((ResourceImpl)buf2).getTypeId())); + assertTrue(ResourceImpl.isBuffer(((ResourceImpl)buf2).getTypeId())); assertTrue(((ResourceImpl)buf2).isDuplicate()); assertTrue(buf2.isReadOnly()); Memory mem2 = buf1.asMemory(); // assertTrue(((ResourceImpl)mem2).isRegionView()); - assertFalse(((ResourceImpl)mem2).isBuffer(((ResourceImpl)mem2).getTypeId())); + assertFalse(ResourceImpl.isBuffer(((ResourceImpl)mem2).getTypeId())); assertFalse(((ResourceImpl)mem2).isDuplicate()); assertTrue(mem2.isReadOnly()); Buffer buf3 = buf1.duplicate(Util.NON_NATIVE_BYTE_ORDER); assertTrue(((ResourceImpl)buf3).isRegionView()); - assertTrue(((ResourceImpl)buf3).isBuffer(((ResourceImpl)buf3).getTypeId())); + assertTrue(ResourceImpl.isBuffer(((ResourceImpl)buf3).getTypeId())); assertTrue(((ResourceImpl)buf3).isDuplicate()); assertTrue(((ResourceImpl)buf3).isNonNativeOrder()); assertTrue(buf3.isReadOnly()); Memory mem3 = buf3.asMemory(); assertTrue(((ResourceImpl)mem3).isRegionView()); - assertFalse(((ResourceImpl)mem3).isBuffer(((ResourceImpl)mem3).getTypeId())); + assertFalse(ResourceImpl.isBuffer(((ResourceImpl)mem3).getTypeId())); assertTrue(((ResourceImpl)mem3).isDuplicate()); assertTrue(((ResourceImpl)mem3).isNonNativeOrder()); assertTrue(mem3.isReadOnly()); diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ThreadTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ThreadTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ThreadTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ThreadTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/UnsafeUtilTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/UnsafeUtilTest.java similarity index 98% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/UnsafeUtilTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/UnsafeUtilTest.java index 8381e477..cecdbb10 100644 --- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/UnsafeUtilTest.java +++ b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/UnsafeUtilTest.java @@ -51,7 +51,7 @@ public void checkInts() { Ints.checkedCast(1L << 32); } - @SuppressWarnings("restriction") + //@SuppressWarnings("restriction") @Test public void checkArrayBaseOffset() { diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/UtilTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/UtilTest.java similarity index 96% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/UtilTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/UtilTest.java index 14a8629c..0bb9580e 100644 --- a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/UtilTest.java +++ b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/UtilTest.java @@ -149,7 +149,7 @@ static final String getFileAttributes(File file) { static final void setGettysburgAddressFileToReadOnly() { File file = getResourceFile("GettysburgAddress.txt"); try { - Files.setPosixFilePermissions(file.toPath(), PosixFilePermissions.fromString("r--r--r--")); + Files.setPosixFilePermissions(file.toPath(), PosixFilePermissions.fromString("r--r--r--")); } catch (IOException e) { throw new RuntimeException(e); } @@ -164,10 +164,12 @@ public void resourceFileExits() { assertTrue(file.exists()); } - @Test(expectedExceptions = NullPointerException.class) + @Test public void resourceFileNotFound() { final String shortFileName = "GettysburgAddress.txt"; - getResourceFile(shortFileName + "123"); + try { getResourceFile(shortFileName + "123"); } + catch (IllegalArgumentException e) { //OK + } } @Test diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/VirtualMachineMemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/VirtualMachineMemoryTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/VirtualMachineMemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/VirtualMachineMemoryTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/WritableDirectCopyTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/WritableMemoryTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/XxHash64LoopingTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/XxHash64LoopingTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/XxHash64LoopingTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/XxHash64LoopingTest.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/XxHash64Test.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/XxHash64Test.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/XxHash64Test.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/XxHash64Test.java diff --git a/datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ZeroCapacityTest.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ZeroCapacityTest.java similarity index 100% rename from datasketches-memory-java8/src/test/java/org/apache/datasketches/memory/internal/ZeroCapacityTest.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/internal/ZeroCapacityTest.java diff --git a/datasketches-memory-java8/src/test/resources/GettysburgAddress.txt b/datasketches-memory-java11/src/test/resources/GettysburgAddress.txt similarity index 100% rename from datasketches-memory-java8/src/test/resources/GettysburgAddress.txt rename to datasketches-memory-java11/src/test/resources/GettysburgAddress.txt diff --git a/datasketches-memory-java8/pom.xml b/datasketches-memory-java8/pom.xml deleted file mode 100644 index fb2eb701..00000000 --- a/datasketches-memory-java8/pom.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - 4.0.0 - - - org.apache.datasketches - datasketches-memory - 3.0.2 - - - datasketches-memory-java8 - ${project.artifactId} - jar - - - 8 - 8 - ${java.version} - ${java.version} - false - - - - - org.testng - testng - test - - - - net.openhft - zero-allocation-hashing - test - - - - - - - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} - - - report - test - - report - - - - - - - - - diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MemoryException.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MemoryException.java deleted file mode 100644 index 6b3663ca..00000000 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/MemoryException.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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 org.apache.datasketches.memory; - -/** - * Specific RuntimeExceptions for the datasketches-memory component. - * - * @author Lee Rhodes - * - */ -public class MemoryException extends RuntimeException { - private static final long serialVersionUID = 1L; - - /** - * Constructs a new runtime exception with the specified detail message. The cause is not - * initialized, and may subsequently be initialized by a call to - * Throwable.initCause(java.lang.Throwable). - * - * @param message the detail message. The detail message is saved for later retrieval by the - * Throwable.getMessage() method. - */ - public MemoryException(final String message) { - super(message); - } -} diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryCleaner.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryCleaner.java deleted file mode 100644 index c732dfb7..00000000 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/MemoryCleaner.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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 org.apache.datasketches.memory.internal; - -import sun.misc.Cleaner; - -/** - * Extracts a version-dependent reference to the `sun.misc.Cleaner` into - * a standalone class. The package name for Cleaner has changed in - * later versions. If a JDK Toolchain and MR-JAR have been configured, - * the appropriate class will be loaded by the class loader - * depending on the Java version that is used. - */ -@SuppressWarnings("restriction") -public class MemoryCleaner { - private final Cleaner cleaner; - - /** - * Creates a new `sun.misc.Cleaner`. - * @param referent the object to be cleaned - * @param deallocator - the cleanup code to be run when the cleaner is invoked. - * return MemoryCleaner - */ - public MemoryCleaner(final Object referent, final Runnable deallocator) { - cleaner = Cleaner.create(referent, deallocator); - } - - /** - * Runs this cleaner, if it has not been run before. - */ - public void clean() { - cleaner.clean(); - } -} diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/VirtualMachineMemory.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/VirtualMachineMemory.java deleted file mode 100644 index 83952916..00000000 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/VirtualMachineMemory.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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 org.apache.datasketches.memory.internal; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -/** - * Extracts a version-dependent reference to the `sun.misc.VM` into a standalone - * class. The package name for VM has changed in later versions. The appropriate - * class will be loaded by the class loader depending on the Java version that is used. - * For more information, see: https://openjdk.java.net/jeps/238 - */ -public final class VirtualMachineMemory { - - private static final Class VM_CLASS; - private static final Method VM_IS_DIRECT_MEMORY_PAGE_ALIGNED_METHOD; - private static final boolean isPageAligned; - - static { - try { - VM_CLASS = Class.forName("sun.misc.VM"); - VM_IS_DIRECT_MEMORY_PAGE_ALIGNED_METHOD = VM_CLASS.getDeclaredMethod("isDirectMemoryPageAligned"); - VM_IS_DIRECT_MEMORY_PAGE_ALIGNED_METHOD.setAccessible(true); - isPageAligned = (boolean) VM_IS_DIRECT_MEMORY_PAGE_ALIGNED_METHOD.invoke(null); // static method - } catch (final ClassNotFoundException | NoSuchMethodException | IllegalAccessException - | IllegalArgumentException | InvocationTargetException | SecurityException e) { - throw new RuntimeException("Could not acquire sun.misc.VM class: " + e.getClass()); - } - } - - /** - * Returns true if the direct buffers should be page aligned. - * @return flag that determines whether direct buffers should be page aligned. - */ - public static boolean getIsPageAligned() { - return isPageAligned; - } -} diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/package-info.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/package-info.java deleted file mode 100644 index 9e557cbd..00000000 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/internal/package-info.java +++ /dev/null @@ -1,23 +0,0 @@ -/* - * 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. - */ - -/** - * @author Lee Rhodes - */ -package org.apache.datasketches.memory.internal; diff --git a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/package-info.java b/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/package-info.java deleted file mode 100644 index 1bf43737..00000000 --- a/datasketches-memory-java8/src/main/java/org/apache/datasketches/memory/package-info.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * 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. - */ - -/** - * This package provides high performance primitive and primitive array access to - * off-heap memory and memory-mapped file resources, consistent views into - * {@link java.nio.ByteBuffer}, and on-heap primitive arrays. It can be used as a more - * comprehensive and flexible replacement for {@link java.nio.ByteBuffer}. - * - *

In addition, this package provides:

- * - *
  • Two different access APIs: read-only {@link org.apache.datasketches.memory.Memory} and - * {@link org.apache.datasketches.memory.WritableMemory} for absolute offset access, - * and read-only {@link org.apache.datasketches.memory.Buffer} and - * {@link org.apache.datasketches.memory.WritableBuffer} - * for relative positional access (similar to ByteBuffer).
  • - * - *
  • Clean separation of Read-only API from Writable API, which makes writable versus read-only - * resources detectable at compile time.
  • - * - *
  • The conversion from Writable to read-only is just a cast, so no unnecessary objects are - * created. For example: - *
    - *     WritableMemory wMem = ...
    - *     Memory mem = wMem;
    - * 
    - *
  • - * - *
  • {@link java.lang.AutoCloseable} for the external resources that require it, - * which enables compile-time checks for non-closed resources.
  • - * - *
  • Immediate invalidation of all downstream references of an AutoCloseable - * resource when that resource is closed, either manually or by the JVM. - * This virtually eliminates the possibility of use-after-close errors.
  • - * - *
  • Improved performance over the prior Memory implementation.
  • - * - *
  • Cleaner internal architecture, which will make it easier to extend in the future.
  • - * - *
  • No external dependencies, which makes it simple to install in virtually any Java environment. - *
  • - *
- * - *

More specifically, this package provides access to four different types of resources using - * two different access APIs. These resources can be viewed as contiguous blobs of bytes that provide at least - * byte-level read and write access. The four resources are:

- * - *
  • Off-heap memory allocated by the user.
  • - *
  • Memory-mapped files, both writable and read-only.
  • - *
  • {@code ByteBuffers}, both heap and off-heap, writable and read-only.
  • - *
  • Heap-based primitive arrays, which can be accessed as writable or read-only.
  • - *
- * - *

The two different access APIs are:

- *
  • Memory, WritableMemory: Absolute offset addressing into a resource.
  • - *
  • Buffer, WritableBuffer: Position relative addressing into a resource.
  • - *
- * - *

In addition, all combinations of access APIs and backing resources can be accessed via - * multibyte primitive methods (e.g., - * getLong(...), getLongArray(...), putLong(...), putLongArray(...)) as either - * {@link java.nio.ByteOrder#BIG_ENDIAN} or {@link java.nio.ByteOrder#LITTLE_ENDIAN}.

- * - *

The resources don't know or care about the access APIs, and the access - * APIs don't really know or care what resource they are accessing.

- * - *

An off-heap or memory-mapped file resource can also be explicitly closed by the user

- *
- *     //Using try-with-resources block:
- *     try (WritableMemory wmem = WritableMemory.map(File file)) {
- *       doWork(wMem) // read and write to memory mapped file.
- *     }
- *
- *     //Using explicit close():
- *     WritableMemory wmem = WritableMemory.map(File file);
- *     doWork(wMem) // read and write to memory mapped file.
- *     wmem.close();
- * 
- * - *

Whatever thread of your process is responsible for allocating an off-heap or memory-mapped resource - * is responsible for closing it or making sure it gets closed. This is also true for the special - * memory-mapping methods load(), isLoaded() and force().

- * - *

Moving back and forth between Memory and Buffer:

- *
- *    Memory mem = ...
- *    Buffer buf = mem.asBuffer();
- *    ...
- *    Memory mem2 = buf.asMemory();
- *    ...
- * 
- * - *

Hierarchical memory regions can be easily created:

- *
- *     WritableMemory wMem = ...
- *     WritableMemory wReg = wMem.writableRegion(offset, length); //OR
- *     Memory region = wMem.region(offset, length);
- * 
- * - *

All methods are checked for bounds violations.

- * - *

The classes in this package are not thread-safe.

- * - * @author Lee Rhodes - */ -package org.apache.datasketches.memory; diff --git a/datasketches-memory-java8/src/main/javadoc/overview.html b/datasketches-memory-java8/src/main/javadoc/overview.html deleted file mode 100644 index 86ef2bb5..00000000 --- a/datasketches-memory-java8/src/main/javadoc/overview.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - -

Memory

-

Overview

- -

Memory Package Overview

- -

Note: If the requirements or promises of any method's contract are not fulfilled (that is, if there is a bug in either the method or its caller), then an unchecked exception will be thrown. The precise type of such an unchecked exception does not form part of any method's contract.

- - \ No newline at end of file diff --git a/datasketches-memory-report/pom.xml b/datasketches-memory-report/pom.xml new file mode 100644 index 00000000..0f1b422b --- /dev/null +++ b/datasketches-memory-report/pom.xml @@ -0,0 +1,90 @@ + + + + + 4.0.0 + + + org.apache.datasketches + datasketches-memory + 3.0.2 + ../pom.xml + + + datasketches-memory-report + ${project.artifactId} + pom + + + 11 + + + + + org.apache.datasketches + datasketches-memory-java11 + ${project.version} + + + + + + + org.apache.maven.plugins + maven-toolchains-plugin + + + + toolchain + + + + + + + ${java.version} + + + + + + org.jacoco + jacoco-maven-plugin + + + report-aggregate + verify + + report-aggregate + + + + + + + + + + + + diff --git a/pom.xml b/pom.xml index c9444eeb..62dd5ca8 100644 --- a/pom.xml +++ b/pom.xml @@ -17,8 +17,11 @@ KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> - + + 4.0.0 @@ -31,6 +34,14 @@ under the License. High-performance native memory access. https://datasketches.apache.org/ 2015 + + + + Apache-2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + @@ -41,11 +52,11 @@ under the License. https://mail-archives.apache.org/mod_mbox/datasketches-dev - sketches-user - https://groups.google.com/forum/#!forum/sketches-user - mailto:sketches-user%2Bsubscribe@googlegroups.com - mailto:sketches-user%2Bunsubscribe@googlegroups.com - mailto:sketches-user@googlegroups.com + DataSketches Users + user-subscribe@datasketches.apache.org + user-unsubscribe@datasketches.apache.org + user@datasketches.apache.org + https://mail-archives.apache.org/mod_mbox/datasketches-user @@ -56,9 +67,20 @@ under the License. HEAD + + + apache.releases.https + Apache Release Distribution Repository + https://repository.apache.org/service/local/staging/deploy/maven2 + + + apache.snapshots.https + Apache Development Snapshot Repository + https://repository.apache.org/content/repositories/snapshots + + + - - GitHub https://github.com/apache/${project.artifactId}/issues @@ -73,73 +95,72 @@ under the License. - - - - - 0.16 - - - 7.5.1 - 3.6.3 + 3.9.12 8 - 8 ${java.version} ${java.version} - -Xmx4g -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8 + -Xmx4g + -Duser.language=en + -Duser.country=US + -Dfile.encoding=UTF-8 + ${jvm.mem} ${jvm.locale.language} ${jvm.locale.country} ${jvm.locale.encoding} UTF-8 + 2026-01-09T19:00:20Z ${charset.encoding} ${charset.encoding} + ${charset.encoding} ${charset.encoding} + ${project.build.directory}/site + yyyy-MM-dd'T'HH-mm-ss'Z' - 3.7.1 - 3.13.0 - 3.1.2 - 3.4.1 - 3.2.3 - 3.0.0-M1 - 3.4.1 - 3.6.3 - 3.0.1 - 3.2.0 - 3.3.1 - 3.2.5 + 3.15.0 + 3.1.4 + 3.6.2 + 3.2.8 + 3.1.4 + 3.4.2 + 3.11.2 + 3.3.1 + 3.4.0 + 3.5.4 3.2.0 - - 4.9.10 - - 0.16.1 - + + + 0.18 + + - 4.3.0 - - 0.8.12 - - 2.16.2 - 3.3.0 + 5.0.0 + + + 3.6.3 + + + 9.0.2 + + + 0.8.14 + 1.0.0 - + 2.0.12 + + + 2026.0 + true - true true - + apache.snapshots Apache Snapshot Repository - https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/ + https://repository.apache.org/content/groups/snapshots false @@ -150,7 +171,7 @@ under the License. apache Apache Releases Repository - https://repository.apache.org/content/repositories/releases/org/apache/datasketches/ + https://repository.apache.org/content/groups/public true @@ -160,46 +181,64 @@ under the License. - - - - org.testng - testng - ${testng.version} - test - - - - net.openhft - zero-allocation-hashing - ${zero-allocation-hashing.version} - test - - - - - org.codehaus.mojo - versions-maven-plugin - ${versions-maven-plugin.version} + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + true + + - org.apache.maven.plugins maven-deploy-plugin ${maven-deploy-plugin.version} + --> + + + org.apache.maven.plugins + maven-enforcer-plugin + ${maven-enforcer-plugin.version} + + + enforce-banned-dependencies + + enforce + + + + + + [${maven.version},4.0.0) + + + + + com.google.code.findbugs:annotations + + + + true + + + org.apache.maven.plugins - maven-release-plugin - ${maven-release-plugin.version} + maven-install-plugin + ${maven-install-plugin.version} @@ -229,11 +268,17 @@ under the License. maven-javadoc-plugin ${maven-javadoc-plugin.version} + ${project.reporting.outputDirectory} true - none - - ${jdk-toolchain.version} - + public + none + true + + -J${jvm.mem} + -J${jvm.locale.language} + -J${jvm.locale.country} + -J${jvm.locale.encoding} + org.apache.datasketches.memory.internal @@ -247,70 +292,13 @@ under the License. + - com.google.code.findbugs:annotations - - - - true - -
-
- - - - org.apache.rat - apache-rat-plugin - ${apache-rat-plugin.version} - - - verify - - check - - - - - ${project.basedir}/rat - true - true - - **/*.yaml - **/*.yml - **/toolchains.xml - **/.* - **/.clover/**/* - **/test/resources/**/*.txt - **/test-output/**/* - **/img/**/*.png - **/git.properties - **/scripts/assets/LoremIpsum.txt - LICENSE - NOTICE - - + maven-release-plugin + ${maven-release-plugin.version} - +--> org.apache.maven.plugins maven-source-plugin @@ -336,15 +324,15 @@ under the License. org.apache.maven.plugins maven-surefire-plugin - ${maven-surefire-failsafe-plugin.version} + ${maven-surefire-failsafe-plugins.version} + @{argLine} @{jvm.args} false + false false - true - - ${jdk-toolchain.version} - + false ${project.build.directory}/test-output/${maven.build.timestamp} + false @@ -352,13 +340,6 @@ under the License. org.apache.maven.plugins maven-toolchains-plugin ${maven-toolchains-plugin.version} - - - - [8,9),[11,12) - - - @@ -366,45 +347,91 @@ under the License. + + + + ${java.version} + + + - - org.jacoco - jacoco-maven-plugin - ${jacoco-maven-plugin.version} + org.apache.rat + apache-rat-plugin + ${apache-rat-plugin.version} + false - default-prepare-agent + verify - prepare-agent + check + + false + ${project.basedir}/rat + true + + + StandardCollection + **/*.yaml + **/*.yml + **/.* + **/_* + **/test/resources/**/*.txt + **/test-output/**/* + **/git.properties + **/doc/** + **/*.sk + LICENSE + NOTICE + **/*.code-workspace + **/scripts/assets/LoremIpsum.txt + + - org.eluder.coveralls + com.github.hazendaz.maven coveralls-maven-plugin ${coveralls-maven-plugin.version} ${coveralls-repo-token} - ${maven.multiModuleProjectDirectory}/datasketches-memory-java8/target/site/jacoco/jacoco.xml + ${project.basedir}/datasketches-memory-report/target/site/jacoco-aggregate/jacoco.xml - org.apache.maven.plugins - maven-compiler-plugin - ${maven-compiler-plugin.version} - - - ${jdk-toolchain.version} - - + io.github.git-commit-id + git-commit-id-maven-plugin + ${git-commit-id-maven-plugin.version} + + + + + org.jacoco + jacoco-maven-plugin + ${jacoco-maven-plugin.version} + + + default-prepare-agent + + prepare-agent + + + + default-report + test + + report + + + @@ -415,108 +442,89 @@ under the License. + + org.apache.maven.plugins - maven-deploy-plugin + maven-compiler-plugin + org.apache.maven.plugins - maven-jar-plugin + maven-enforcer-plugin + org.apache.maven.plugins - maven-javadoc-plugin + maven-install-plugin + org.apache.maven.plugins - maven-enforcer-plugin + maven-javadoc-plugin + org.apache.maven.plugins maven-source-plugin + org.apache.maven.plugins maven-surefire-plugin + + + org.apache.maven.plugins + maven-toolchains-plugin + + + + org.apache.rat + apache-rat-plugin + + + + com.github.hazendaz.maven + coveralls-maven-plugin + + + + io.github.git-commit-id + git-commit-id-maven-plugin + + org.jacoco jacoco-maven-plugin + - org.eluder.coveralls - coveralls-maven-plugin + org.codehaus.mojo + exec-maven-plugin +
- - - - apache-release - - - - maven-assembly-plugin - ${maven-assembly-plugin.version} - - - source-release-assembly - none - - - - - - - - - only-eclipse - - - m2e.version - - - - - - - org.apache.maven.plugins - maven-remote-resources-plugin - ${maven-remote-resources-plugin.version} - - - process-resource-bundles - none - - - - - - - - - - - + - datasketches-memory-java8 datasketches-memory-java11 + datasketches-memory-report
diff --git a/tools/MemoryCheckstyle.xml b/tools/SketchesCheckstyle.xml similarity index 92% rename from tools/MemoryCheckstyle.xml rename to tools/SketchesCheckstyle.xml index e5f0b855..1d4a387b 100644 --- a/tools/MemoryCheckstyle.xml +++ b/tools/SketchesCheckstyle.xml @@ -1,7 +1,7 @@ + "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" + "https://checkstyle.org/dtds/configuration_1_3.dtd"> + + - + - + + - + - + + - + - + @@ -64,22 +68,27 @@ under the License. - + + - + - + - + + + + + - + @@ -87,49 +96,49 @@ under the License. - + - + - + - + - - + + - + - + - + @@ -137,46 +146,51 @@ under the License. - + - + - + - + - + - + - + + + + + + - + - + - + @@ -184,11 +198,11 @@ under the License. - + - + - + @@ -197,40 +211,40 @@ under the License. - + - + - + - + - + - + - + @@ -245,12 +259,12 @@ under the License. - + - + @@ -261,27 +275,27 @@ under the License. - + - + - + - + - + @@ -355,13 +369,13 @@ under the License. - + - + @@ -372,26 +386,26 @@ under the License. - + - + - + - + - + - + @@ -403,4 +417,4 @@ under the License. - \ No newline at end of file + diff --git a/tools/suppressions.xml b/tools/suppressions.xml deleted file mode 100644 index 58cdce75..00000000 --- a/tools/suppressions.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - -