You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by dc...@apache.org on 2021/05/11 21:20:38 UTC

[datasketches-memory] branch multi-module-experimental updated (e5af17d -> ee21b6e)

This is an automated email from the ASF dual-hosted git repository.

dcromberge pushed a change to branch multi-module-experimental
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git.


    from e5af17d  Merge from master
     add 67abafc  Initial move of all test classes to memory.test.
     add 9c318ef  interim update
     add 5a23ec6  interim commit, not done.
     add 9ac70eb  Interim 3, almost done.
     new ee21b6e  Merge noSplitPackage into multi-release branch

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../apache/datasketches/memory/AllocateDirect.java |   2 +-
 .../datasketches/memory/AllocateDirectMap.java     |  11 +-
 .../memory/BBNonNativeWritableBufferImpl.java      |   4 +-
 .../memory/BBNonNativeWritableMemoryImpl.java      |   4 +-
 .../datasketches/memory/BBWritableBufferImpl.java  |   4 +-
 .../datasketches/memory/BBWritableMemoryImpl.java  |   4 +-
 .../org/apache/datasketches/memory/BaseState.java  |  23 +-
 .../memory/BaseWritableBufferImpl.java             |   2 +-
 .../memory/BaseWritableMemoryImpl.java             |  12 +-
 .../apache/datasketches/memory/CompareAndCopy.java |  13 +-
 .../memory/DirectNonNativeWritableBufferImpl.java  |  11 +-
 .../memory/DirectNonNativeWritableMemoryImpl.java  |  11 +-
 .../memory/DirectWritableBufferImpl.java           |  10 +-
 .../memory/DirectWritableMemoryImpl.java           |   6 +-
 .../memory/HeapNonNativeWritableBufferImpl.java    |   4 +-
 .../memory/HeapNonNativeWritableMemoryImpl.java    |   4 +-
 .../memory/HeapWritableBufferImpl.java             |   4 +-
 .../memory/HeapWritableMemoryImpl.java             |   4 +-
 .../java/org/apache/datasketches/memory/Ints.java  |   4 +-
 .../apache/datasketches/memory/JDK7Compatible.java |  26 +-
 .../memory/MapNonNativeWritableBufferImpl.java     |  11 +-
 .../memory/MapNonNativeWritableMemoryImpl.java     |  11 +-
 .../datasketches/memory/MapWritableBufferImpl.java |  11 +-
 .../datasketches/memory/MapWritableMemoryImpl.java |  11 +-
 .../org/apache/datasketches/memory/Memory.java     |  16 +-
 .../org/apache/datasketches/memory/NioBits.java    |   2 +-
 .../java/org/apache/datasketches/memory/Prim.java  |   8 +-
 .../apache/datasketches/memory/StepBoolean.java    |  10 +-
 .../org/apache/datasketches/memory/UnsafeUtil.java |   8 +-
 .../java/org/apache/datasketches/memory/Util.java  |  49 +++-
 .../apache/datasketches/memory/WritableMemory.java |  25 +-
 .../memory/{ => test}/internal/MemoryCleaner.java  |   2 +-
 .../{ => test}/internal/VirtualMachineMemory.java  |   2 +-
 .../apache/datasketches/memory/NioBitsTest.java    |  79 ------
 .../datasketches/memory/SpecificLeafTest.java      | 186 --------------
 .../{ => test}/AllocateDirectMapMemoryTest.java    |   4 +-
 .../{ => test}/AllocateDirectMemoryTest.java       |  79 ++++--
 .../AllocateDirectWritableMapMemoryTest.java       |  58 +++--
 .../memory/{ => test}/BaseBufferTest.java          |   6 +-
 .../memory/{ => test}/BaseStateTest.java           |  32 ++-
 .../memory/{ => test}/Buffer2Test.java             |   7 +-
 .../memory/{ => test}/BufferBoundaryCheckTest.java |   3 +-
 .../memory/{ => test}/BufferInvariantsTest.java    |   6 +-
 .../{ => test}/BufferReadWriteSafetyTest.java      |   6 +-
 .../datasketches/memory/{ => test}/BufferTest.java |   7 +-
 .../memory/{ => test}/CommonBufferTest.java        |   5 +-
 .../memory/{ => test}/CommonMemoryTest.java        |   4 +-
 .../memory/{ => test}/CopyMemoryOverlapTest.java   |   5 +-
 .../memory/{ => test}/CopyMemoryTest.java          |   7 +-
 .../{ => test}/ExampleMemoryRequestServerTest.java |   5 +-
 .../{ => test}/IgnoredArrayOverflowTest.java       |   4 +-
 .../memory/{ => test}/IsValidUtf8TestUtil.java     |   2 +-
 .../memory/{ => test}/LeafImplTest.java            | 120 +++++----
 .../memory/{ => test}/MemoryBoundaryCheckTest.java |   4 +-
 .../{ => test}/MemoryReadWriteSafetyTest.java      |   6 +-
 .../datasketches/memory/{ => test}/MemoryTest.java |  79 ++++--
 .../memory/{ => test}/MemoryWriteToTest.java       |  20 +-
 .../datasketches/memory/test/NioBitsTest.java      | 166 ++++++++++++
 .../NonNativeWritableBufferImplTest.java           |   5 +-
 .../NonNativeWritableMemoryImplTest.java           |   4 +-
 .../datasketches/memory/test/ReflectUtil.java      | 139 +++++++++++
 .../datasketches/memory/test/SpecificLeafTest.java | 278 +++++++++++++++++++++
 .../memory/{ => test}/UnsafeUtilTest.java          |  20 +-
 .../datasketches/memory/{ => test}/Utf8Test.java   |   6 +-
 .../datasketches/memory/{ => test}/UtilTest.java   |   5 +-
 .../memory/{ => test}/WritableBufferImplTest.java  |  12 +-
 .../memory/{ => test}/WritableDirectCopyTest.java  |   5 +-
 .../memory/{ => test}/WritableMemoryImplTest.java  |  12 +-
 .../memory/{ => test}/WritableMemoryTest.java      |  13 +-
 .../memory/{ => test}/XxHash64LoopingTest.java     |   3 +-
 .../memory/{ => test}/XxHash64Test.java            |   4 +-
 .../memory/{ => test}/ZeroCapacityTest.java        |   4 +-
 .../{ => test}/internal/MemoryCleanerTest.java     |   2 +-
 .../internal/VirtualMachineMemoryTest.java         |   2 +-
 .../datasketches/memory/test/package-info.java     |   6 +-
 .../memory/java9/tests/MemoryCleanerTest.java      |   2 +-
 .../java9/tests/VirtualMachineMemoryTest.java      |   2 +-
 .../src/main/java/module-info.java                 |   2 +-
 .../memory/{ => test}/internal/MemoryCleaner.java  |   2 +-
 .../{ => test}/internal/VirtualMachineMemory.java  |   2 +-
 80 files changed, 1183 insertions(+), 576 deletions(-)
 rename datasketches-memory-base/src/main/java/org/apache/datasketches/memory/{ => test}/internal/MemoryCleaner.java (96%)
 rename datasketches-memory-base/src/main/java/org/apache/datasketches/memory/{ => test}/internal/VirtualMachineMemory.java (98%)
 delete mode 100644 datasketches-memory-base/src/test/java/org/apache/datasketches/memory/NioBitsTest.java
 delete mode 100644 datasketches-memory-base/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/AllocateDirectMapMemoryTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/AllocateDirectMemoryTest.java (56%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/AllocateDirectWritableMapMemoryTest.java (80%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/BaseBufferTest.java (90%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/BaseStateTest.java (74%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/Buffer2Test.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/BufferBoundaryCheckTest.java (98%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/BufferInvariantsTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/BufferReadWriteSafetyTest.java (94%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/BufferTest.java (96%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/CommonBufferTest.java (98%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/CommonMemoryTest.java (98%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/CopyMemoryOverlapTest.java (96%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/CopyMemoryTest.java (95%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/ExampleMemoryRequestServerTest.java (96%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/IgnoredArrayOverflowTest.java (95%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/IsValidUtf8TestUtil.java (98%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/LeafImplTest.java (74%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/MemoryBoundaryCheckTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/MemoryReadWriteSafetyTest.java (96%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/MemoryTest.java (82%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/MemoryWriteToTest.java (77%)
 create mode 100644 datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/NioBitsTest.java
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/NonNativeWritableBufferImplTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/NonNativeWritableMemoryImplTest.java (97%)
 create mode 100644 datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/ReflectUtil.java
 create mode 100644 datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/SpecificLeafTest.java
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/UnsafeUtilTest.java (89%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/Utf8Test.java (98%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/UtilTest.java (96%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/WritableBufferImplTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/WritableDirectCopyTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/WritableMemoryImplTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/WritableMemoryTest.java (93%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/XxHash64LoopingTest.java (99%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/XxHash64Test.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/ZeroCapacityTest.java (92%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/internal/MemoryCleanerTest.java (97%)
 rename datasketches-memory-base/src/test/java/org/apache/datasketches/memory/{ => test}/internal/VirtualMachineMemoryTest.java (95%)
 copy datasketches-memory-java9-tests/src/main/java/module-info.java => datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/package-info.java (84%)
 rename datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/{ => test}/internal/MemoryCleaner.java (96%)
 rename datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/{ => test}/internal/VirtualMachineMemory.java (98%)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org


[datasketches-memory] 01/01: Merge noSplitPackage into multi-release branch

Posted by dc...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dcromberge pushed a commit to branch multi-module-experimental
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git

commit ee21b6ed2d0c210b7eef2f89eed28db4a12fb771
Merge: e5af17d 9ac70eb
Author: David Cromberge <da...@gmail.com>
AuthorDate: Tue May 11 22:20:23 2021 +0100

    Merge noSplitPackage into multi-release branch

 .../apache/datasketches/memory/AllocateDirect.java |   2 +-
 .../datasketches/memory/AllocateDirectMap.java     |  11 +-
 .../memory/BBNonNativeWritableBufferImpl.java      |   4 +-
 .../memory/BBNonNativeWritableMemoryImpl.java      |   4 +-
 .../datasketches/memory/BBWritableBufferImpl.java  |   4 +-
 .../datasketches/memory/BBWritableMemoryImpl.java  |   4 +-
 .../org/apache/datasketches/memory/BaseState.java  |  23 +-
 .../memory/BaseWritableBufferImpl.java             |   2 +-
 .../memory/BaseWritableMemoryImpl.java             |  12 +-
 .../apache/datasketches/memory/CompareAndCopy.java |  13 +-
 .../memory/DirectNonNativeWritableBufferImpl.java  |  11 +-
 .../memory/DirectNonNativeWritableMemoryImpl.java  |  11 +-
 .../memory/DirectWritableBufferImpl.java           |  10 +-
 .../memory/DirectWritableMemoryImpl.java           |   6 +-
 .../memory/HeapNonNativeWritableBufferImpl.java    |   4 +-
 .../memory/HeapNonNativeWritableMemoryImpl.java    |   4 +-
 .../memory/HeapWritableBufferImpl.java             |   4 +-
 .../memory/HeapWritableMemoryImpl.java             |   4 +-
 .../java/org/apache/datasketches/memory/Ints.java  |   4 +-
 .../apache/datasketches/memory/JDK7Compatible.java |  26 +-
 .../memory/MapNonNativeWritableBufferImpl.java     |  11 +-
 .../memory/MapNonNativeWritableMemoryImpl.java     |  11 +-
 .../datasketches/memory/MapWritableBufferImpl.java |  11 +-
 .../datasketches/memory/MapWritableMemoryImpl.java |  11 +-
 .../org/apache/datasketches/memory/Memory.java     |  16 +-
 .../org/apache/datasketches/memory/NioBits.java    |   2 +-
 .../java/org/apache/datasketches/memory/Prim.java  |   8 +-
 .../apache/datasketches/memory/StepBoolean.java    |  10 +-
 .../org/apache/datasketches/memory/UnsafeUtil.java |   8 +-
 .../java/org/apache/datasketches/memory/Util.java  |  49 +++-
 .../apache/datasketches/memory/WritableMemory.java |  25 +-
 .../memory/{ => test}/internal/MemoryCleaner.java  |   2 +-
 .../{ => test}/internal/VirtualMachineMemory.java  |   2 +-
 .../apache/datasketches/memory/NioBitsTest.java    |  79 ------
 .../datasketches/memory/SpecificLeafTest.java      | 186 --------------
 .../{ => test}/AllocateDirectMapMemoryTest.java    |   4 +-
 .../{ => test}/AllocateDirectMemoryTest.java       |  79 ++++--
 .../AllocateDirectWritableMapMemoryTest.java       |  58 +++--
 .../memory/{ => test}/BaseBufferTest.java          |   6 +-
 .../memory/{ => test}/BaseStateTest.java           |  32 ++-
 .../memory/{ => test}/Buffer2Test.java             |   7 +-
 .../memory/{ => test}/BufferBoundaryCheckTest.java |   3 +-
 .../memory/{ => test}/BufferInvariantsTest.java    |   6 +-
 .../{ => test}/BufferReadWriteSafetyTest.java      |   6 +-
 .../datasketches/memory/{ => test}/BufferTest.java |   7 +-
 .../memory/{ => test}/CommonBufferTest.java        |   5 +-
 .../memory/{ => test}/CommonMemoryTest.java        |   4 +-
 .../memory/{ => test}/CopyMemoryOverlapTest.java   |   5 +-
 .../memory/{ => test}/CopyMemoryTest.java          |   7 +-
 .../{ => test}/ExampleMemoryRequestServerTest.java |   5 +-
 .../{ => test}/IgnoredArrayOverflowTest.java       |   4 +-
 .../memory/{ => test}/IsValidUtf8TestUtil.java     |   2 +-
 .../memory/{ => test}/LeafImplTest.java            | 120 +++++----
 .../memory/{ => test}/MemoryBoundaryCheckTest.java |   4 +-
 .../{ => test}/MemoryReadWriteSafetyTest.java      |   6 +-
 .../datasketches/memory/{ => test}/MemoryTest.java |  79 ++++--
 .../memory/{ => test}/MemoryWriteToTest.java       |  20 +-
 .../datasketches/memory/test/NioBitsTest.java      | 166 ++++++++++++
 .../NonNativeWritableBufferImplTest.java           |   5 +-
 .../NonNativeWritableMemoryImplTest.java           |   4 +-
 .../datasketches/memory/test/ReflectUtil.java      | 139 +++++++++++
 .../datasketches/memory/test/SpecificLeafTest.java | 278 +++++++++++++++++++++
 .../memory/{ => test}/UnsafeUtilTest.java          |  20 +-
 .../datasketches/memory/{ => test}/Utf8Test.java   |   6 +-
 .../datasketches/memory/{ => test}/UtilTest.java   |   5 +-
 .../memory/{ => test}/WritableBufferImplTest.java  |  12 +-
 .../memory/{ => test}/WritableDirectCopyTest.java  |   5 +-
 .../memory/{ => test}/WritableMemoryImplTest.java  |  12 +-
 .../memory/{ => test}/WritableMemoryTest.java      |  13 +-
 .../memory/{ => test}/XxHash64LoopingTest.java     |   3 +-
 .../memory/{ => test}/XxHash64Test.java            |   4 +-
 .../memory/{ => test}/ZeroCapacityTest.java        |   4 +-
 .../{ => test}/internal/MemoryCleanerTest.java     |   2 +-
 .../internal/VirtualMachineMemoryTest.java         |   2 +-
 .../datasketches/memory/test/package-info.java     |   9 +-
 .../memory/java9/tests/MemoryCleanerTest.java      |   2 +-
 .../java9/tests/VirtualMachineMemoryTest.java      |   2 +-
 .../src/main/java/module-info.java                 |   2 +-
 .../memory/{ => test}/internal/MemoryCleaner.java  |   2 +-
 .../{ => test}/internal/VirtualMachineMemory.java  |   2 +-
 80 files changed, 1183 insertions(+), 579 deletions(-)

diff --cc datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirect.java
index 27211d9,b031ce0..a3fb6d9
--- a/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirect.java
+++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirect.java
@@@ -19,11 -19,12 +19,11 @@@
  
  package org.apache.datasketches.memory;
  
- import org.apache.datasketches.memory.internal.MemoryCleaner;
 -import static org.apache.datasketches.memory.UnsafeUtil.unsafe;
++import org.apache.datasketches.memory.test.internal.MemoryCleaner;
  
 -import org.slf4j.Logger;
 -import org.slf4j.LoggerFactory;
 +import static org.apache.datasketches.memory.UnsafeUtil.unsafe;
  
 -import sun.misc.Cleaner; //JDK9+ moved to jdk.internal.ref.Cleaner;
 +import java.util.logging.Logger;
  
  /**
   * Provides access to direct (native) memory.
diff --cc datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java
index 7d65394,25bfef7..7b25cf8
--- a/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java
+++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java
@@@ -29,10 -29,11 +29,10 @@@ import java.lang.reflect.InvocationTarg
  import java.lang.reflect.Method;
  import java.nio.MappedByteBuffer;
  import java.nio.channels.FileChannel;
 +import java.util.logging.Logger;
  
- import org.apache.datasketches.memory.internal.MemoryCleaner;
 -import org.slf4j.Logger;
 -import org.slf4j.LoggerFactory;
++import org.apache.datasketches.memory.test.internal.MemoryCleaner;
  
 -import sun.misc.Cleaner; //JDK9+ moved to jdk.internal.ref.Cleaner;
  import sun.nio.ch.FileChannelImpl;
  
  /**
diff --cc datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NioBits.java
index 61b67e7,a089a30..a7182f4
--- a/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NioBits.java
+++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NioBits.java
@@@ -19,8 -19,6 +19,8 @@@
  
  package org.apache.datasketches.memory;
  
- import org.apache.datasketches.memory.internal.VirtualMachineMemory;
++import org.apache.datasketches.memory.test.internal.VirtualMachineMemory;
 +
  import static org.apache.datasketches.memory.UnsafeUtil.unsafe;
  
  import java.lang.reflect.Field;
diff --cc datasketches-memory-base/src/main/java/org/apache/datasketches/memory/test/internal/MemoryCleaner.java
index 4be7abb,0000000..93587f2
mode 100644,000000..100644
--- a/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/test/internal/MemoryCleaner.java
+++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/test/internal/MemoryCleaner.java
@@@ -1,53 -1,0 +1,53 @@@
 +/*
 + * 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;
++package org.apache.datasketches.memory.test.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. 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 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(Object referent, Runnable deallocator) {
 +        cleaner = Cleaner.create(referent, deallocator);
 +    }
 +
 +    /**
 +     * Runs this cleaner, if it has not been run before.
 +     */
 +    public void clean() {
 +        cleaner.clean();
 +    }
 +}
 +
diff --cc datasketches-memory-base/src/main/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemory.java
index c61a638,0000000..ef8c9db
mode 100644,000000..100644
--- a/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemory.java
+++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemory.java
@@@ -1,72 -1,0 +1,72 @@@
 +/*
 + * 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;
++package org.apache.datasketches.memory.test.internal;
 +
 +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_MAX_DIRECT_MEMORY_METHOD;
 +    private static final Method VM_IS_DIRECT_MEMORY_PAGE_ALIGNED_METHOD;
 +    private static final long maxDBBMemory;
 +    private static final boolean isPageAligned;
 +
 +    static {
 +        try {
 +            VM_CLASS = Class.forName("sun.misc.VM");
 +            VM_MAX_DIRECT_MEMORY_METHOD = VM_CLASS.getDeclaredMethod("maxDirectMemory");
 +            VM_MAX_DIRECT_MEMORY_METHOD.setAccessible(true);
 +            maxDBBMemory = (long) VM_MAX_DIRECT_MEMORY_METHOD.invoke(null); // static method
 +
 +            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 Exception e) {
 +            throw new RuntimeException("Could not acquire sun.misc.VM: " + e.getClass());
 +        }
 +    }
 +
 +    /**
 +     * Returns the maximum amount of allocatable direct buffer memory. The
 +     * directMemory variable is initialized during system initialization.
 +     * 
 +     * @return the maximum amount of allocatable direct buffer memory.
 +     */
 +    public static long getMaxDBBMemory() {
 +        return maxDBBMemory;
 +    }
 +
 +    /**
 +     * 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 --cc datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/NioBitsTest.java
index 0000000,f6b7710..f6b7710
mode 000000,100644..100644
--- a/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/NioBitsTest.java
+++ b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/NioBitsTest.java
diff --cc datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/ReflectUtil.java
index 0000000,fc6333c..fc6333c
mode 000000,100644..100644
--- a/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/ReflectUtil.java
+++ b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/ReflectUtil.java
diff --cc datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/SpecificLeafTest.java
index 0000000,72cbd01..72cbd01
mode 000000,100644..100644
--- a/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/SpecificLeafTest.java
+++ b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/SpecificLeafTest.java
diff --cc datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/internal/MemoryCleanerTest.java
index 231f8c5,0000000..5ebe603
mode 100644,000000..100644
--- a/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/internal/MemoryCleanerTest.java
+++ b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/internal/MemoryCleanerTest.java
@@@ -1,63 -1,0 +1,63 @@@
 +/*
 + * 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;
++package org.apache.datasketches.memory.test.internal;
 +
 +import org.testng.annotations.Test;
 +
 +import java.util.concurrent.atomic.AtomicBoolean;
 +
 +import static org.testng.Assert.assertFalse;
 +import static org.testng.Assert.assertTrue;
 +
 +@SuppressWarnings("javadoc")
 +public class MemoryCleanerTest {
 +
 +    @Test
 +    public void cleanerDeallocates() {
 +       SimpleDeallocator deallocator = new SimpleDeallocator();
 +       MemoryCleaner cleaner = new MemoryCleaner(this, deallocator);
 +       cleaner.clean();
 +       assertTrue(deallocator.getHasRun());
 +    }
 +
 +    @Test
 +    public void noDeallocation() {
 +        SimpleDeallocator deallocator = new SimpleDeallocator();
 +        MemoryCleaner cleaner = new MemoryCleaner(this, deallocator);
 +        assertFalse(deallocator.getHasRun());
 +    }
 +
 +    private static final class SimpleDeallocator implements Runnable {
 +        static final AtomicBoolean hasRun = new AtomicBoolean();
 +
 +        private SimpleDeallocator() {
 +            hasRun.set(false);
 +        }
 +
 +        @Override
 +        public void run() {
 +            hasRun.compareAndSet(false, true);
 +        }
 +
 +        public Boolean getHasRun() {
 +            return hasRun.get();
 +        }
 +    }
 +}
diff --cc datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemoryTest.java
index f883ba8,ebced06..41405cf
--- a/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemoryTest.java
+++ b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemoryTest.java
@@@ -17,21 -17,22 +17,21 @@@
   * under the License.
   */
  
- package org.apache.datasketches.memory.internal;
 -package org.apache.datasketches.memory;
++package org.apache.datasketches.memory.test.internal;
  
 -/**
 - * The exception thrown when attempting to write into a read-only Resource.
 - *
 - * @author Praveenkumar Venkatesan
 - */
 -public class ReadOnlyException extends UnsupportedOperationException {
 -    private static final long serialVersionUID = 1L;
 +import org.testng.annotations.Test;
 +
 +@SuppressWarnings("javadoc")
 +public class VirtualMachineMemoryTest {
  
 -    /**
 -     * Read Only Exception
 -     * @param message the error message
 -     */
 -    public ReadOnlyException(final String message) {
 -      super(message);
 +    @Test
 +    public void maxDirectBufferMemory() {
 +       assert(VirtualMachineMemory.getMaxDBBMemory() >= 0);
      }
 -}
  
 +    @Test
 +    public void inertPageAlignment() {
 +        System.out.println("VM page alignment:" + VirtualMachineMemory.getIsPageAligned());
 +        assert(true);
 +    }
 +}
diff --cc datasketches-memory-java9-tests/src/test/java/org/apache/datasketches/memory/java9/tests/MemoryCleanerTest.java
index 5553d11,0000000..e41bf5d
mode 100644,000000..100644
--- a/datasketches-memory-java9-tests/src/test/java/org/apache/datasketches/memory/java9/tests/MemoryCleanerTest.java
+++ b/datasketches-memory-java9-tests/src/test/java/org/apache/datasketches/memory/java9/tests/MemoryCleanerTest.java
@@@ -1,64 -1,0 +1,64 @@@
 +/*
 + * 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.java9.tests;
 +
- import org.apache.datasketches.memory.internal.MemoryCleaner;
++import org.apache.datasketches.memory.test.internal.MemoryCleaner;
 +import org.testng.annotations.Test;
 +
 +import java.util.concurrent.atomic.AtomicBoolean;
 +
 +import static org.testng.Assert.assertFalse;
 +import static org.testng.Assert.assertTrue;
 +
 +@SuppressWarnings("javadoc")
 +public class MemoryCleanerTest {
 +
 +    @Test
 +    public void cleanerDeallocates() {
 +       SimpleDeallocator deallocator = new SimpleDeallocator();
 +       MemoryCleaner cleaner = new MemoryCleaner(this, deallocator);
 +       cleaner.clean();
 +       assertTrue(deallocator.getHasRun());
 +    }
 +
 +    @Test
 +    public void noDeallocation() {
 +        SimpleDeallocator deallocator = new SimpleDeallocator();
 +        MemoryCleaner cleaner = new MemoryCleaner(this, deallocator);
 +        assertFalse(deallocator.getHasRun());
 +    }
 +
 +    private static final class SimpleDeallocator implements Runnable {
 +        static final AtomicBoolean hasRun = new AtomicBoolean();
 +
 +        private SimpleDeallocator() {
 +            hasRun.set(false);
 +        }
 +
 +        @Override
 +        public void run() {
 +            hasRun.compareAndSet(false, true);
 +        }
 +
 +        public Boolean getHasRun() {
 +            return hasRun.get();
 +        }
 +    }
 +}
diff --cc datasketches-memory-java9-tests/src/test/java/org/apache/datasketches/memory/java9/tests/VirtualMachineMemoryTest.java
index 2504e99,ebced06..1109207
--- a/datasketches-memory-java9-tests/src/test/java/org/apache/datasketches/memory/java9/tests/VirtualMachineMemoryTest.java
+++ b/datasketches-memory-java9-tests/src/test/java/org/apache/datasketches/memory/java9/tests/VirtualMachineMemoryTest.java
@@@ -17,22 -17,22 +17,22 @@@
   * under the License.
   */
  
 -package org.apache.datasketches.memory;
 +package org.apache.datasketches.memory.java9.tests;
  
- import org.apache.datasketches.memory.internal.VirtualMachineMemory;
 -/**
 - * The exception thrown when attempting to write into a read-only Resource.
 - *
 - * @author Praveenkumar Venkatesan
 - */
 -public class ReadOnlyException extends UnsupportedOperationException {
 -    private static final long serialVersionUID = 1L;
++import org.apache.datasketches.memory.test.internal.VirtualMachineMemory;
 +import org.testng.annotations.Test;
 +
 +@SuppressWarnings("javadoc")
 +public class VirtualMachineMemoryTest {
  
 -    /**
 -     * Read Only Exception
 -     * @param message the error message
 -     */
 -    public ReadOnlyException(final String message) {
 -      super(message);
 +    @Test
 +    public void maxDirectBufferMemory() {
 +       assert(VirtualMachineMemory.getMaxDBBMemory() >= 0);
      }
 -}
  
 +    @Test
 +    public void inertPageAlignment() {
 +        System.out.println("VM page alignment:" + VirtualMachineMemory.getIsPageAligned());
 +        assert(true);
 +    }
 +}
diff --cc datasketches-memory-java9/src/main/java/module-info.java
index b21e9f0,be97bb8..d33d401
--- a/datasketches-memory-java9/src/main/java/module-info.java
+++ b/datasketches-memory-java9/src/main/java/module-info.java
@@@ -17,11 -17,4 +17,11 @@@
   * under the License.
   */
  
 -package org.apache.datasketches.memory.test;
 +module org.apache.datasketches.memory {
 +    requires java.base;
 +    requires java.logging;
 +    requires jdk.unsupported;
 +
 +    exports org.apache.datasketches.memory;
-     exports org.apache.datasketches.memory.internal to org.apache.datasketches.memory.java9.tests;
++    exports org.apache.datasketches.memory.test.internal to org.apache.datasketches.memory.java9.tests;
 +}
diff --cc datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/test/internal/MemoryCleaner.java
index 3d803fc,0000000..29d7db0
mode 100644,000000..100644
--- a/datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/test/internal/MemoryCleaner.java
+++ b/datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/test/internal/MemoryCleaner.java
@@@ -1,52 -1,0 +1,52 @@@
 +/*
 + * 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;
++package org.apache.datasketches.memory.test.internal;
 +
 +import jdk.internal.ref.Cleaner;
 +
 +/**
 + * Extracts a version-dependent reference to the `jdk.internal.ref.Cleaner` into
 + * a standalone class. The package name for Cleaner 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 class MemoryCleaner {
 +    private final Cleaner cleaner;
 +
 +    /**
 +     * Creates a new `jdk.internal.ref.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(Object referent, Runnable deallocator) {
 +        cleaner = Cleaner.create(referent, deallocator);
 +    }
 +
 +    /**
 +     * Runs this cleaner, if it has not been run before.
 +     */
 +    public void clean() {
 +        cleaner.clean();
 +    }
 +}
diff --cc datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemory.java
index 605abf4,0000000..0de1a7d
mode 100644,000000..100644
--- a/datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemory.java
+++ b/datasketches-memory-java9/src/main/java/org/apache/datasketches/memory/test/internal/VirtualMachineMemory.java
@@@ -1,74 -1,0 +1,74 @@@
 +/*
 + * 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;
++package org.apache.datasketches.memory.test.internal;
 +
 +import java.lang.reflect.Method;
 +
 +/**
 + * Extracts a version-dependent reference to the `jdk.internal.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_MAX_DIRECT_MEMORY_METHOD;
 +    private static final Method VM_IS_DIRECT_MEMORY_PAGE_ALIGNED_METHOD;
 +    private static final long maxDBBMemory;
 +    private static final boolean isPageAligned;
 +
 +    static {
 +        try {
 +            VM_CLASS = Class.forName("jdk.internal.misc.VM");
 +            VM_MAX_DIRECT_MEMORY_METHOD = VM_CLASS.getDeclaredMethod("maxDirectMemory");
 +            VM_MAX_DIRECT_MEMORY_METHOD.setAccessible(true);
 +            maxDBBMemory = (long) VM_MAX_DIRECT_MEMORY_METHOD.invoke(null); //static method
 +
 +            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 Exception e) {
 +            throw new RuntimeException("Could not acquire jdk.internal.misc.VM: " + e.getClass());
 +        }
 +    }
 +
 +    /**
 +     * Returns the maximum amount of allocatable direct buffer memory.
 +     * The directMemory variable is initialized during system initialization.
 +     * @return the maximum amount of allocatable direct buffer memory.
 +     */
 +    public static long getMaxDBBMemory() {
 +        return maxDBBMemory;
 +    }
 +
 +    /**
 +     * 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;
 +    }
 +}

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org