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 57b9bf9c574267cf9250159da938a09d0ff43bf1 Author: David Cromberge <[email protected]> AuthorDate: Tue Mar 23 12:21:58 2021 +0000 Introduce maven multi-module configuration The purpose of this change is to create a release that is usable from multilpe Java versions. This is possible due to the MR-JAR format (https://openjdk.java.net/jeps/238). --- datasketches-memory-base/pom.xml | 81 ++ .../datasketches/memory/AccessByteBuffer.java | 0 .../apache/datasketches/memory/AllocateDirect.java | 4 +- .../datasketches/memory/AllocateDirectMap.java | 54 +- .../memory/AllocateDirectWritableMap.java | 0 .../memory/BBNonNativeWritableBufferImpl.java | 0 .../memory/BBNonNativeWritableMemoryImpl.java | 0 .../datasketches/memory/BBWritableBufferImpl.java | 0 .../datasketches/memory/BBWritableMemoryImpl.java | 0 .../org/apache/datasketches/memory/BaseBuffer.java | 0 .../org/apache/datasketches/memory/BaseState.java | 0 .../memory/BaseWritableBufferImpl.java | 0 .../memory/BaseWritableMemoryImpl.java | 0 .../org/apache/datasketches/memory/Buffer.java | 0 .../apache/datasketches/memory/CompareAndCopy.java | 0 .../memory/DefaultMemoryRequestServer.java | 0 .../memory/DirectNonNativeWritableBufferImpl.java | 0 .../memory/DirectNonNativeWritableMemoryImpl.java | 0 .../memory/DirectWritableBufferImpl.java | 0 .../memory/DirectWritableMemoryImpl.java | 0 .../org/apache/datasketches/memory/Handle.java | 0 .../memory/HeapNonNativeWritableBufferImpl.java | 0 .../memory/HeapNonNativeWritableMemoryImpl.java | 0 .../memory/HeapWritableBufferImpl.java | 0 .../memory/HeapWritableMemoryImpl.java | 0 .../java/org/apache/datasketches/memory/Ints.java | 0 .../apache/datasketches/memory/JDK7Compatible.java | 0 .../java/org/apache/datasketches/memory/Map.java | 0 .../org/apache/datasketches/memory/MapHandle.java | 0 .../memory/MapNonNativeWritableBufferImpl.java | 0 .../memory/MapNonNativeWritableMemoryImpl.java | 0 .../datasketches/memory/MapWritableBufferImpl.java | 0 .../datasketches/memory/MapWritableMemoryImpl.java | 0 .../org/apache/datasketches/memory/Memory.java | 0 .../datasketches/memory/MemoryRequestServer.java | 0 .../org/apache/datasketches/memory/NioBits.java | 20 +- .../memory/NonNativeWritableBufferImpl.java | 0 .../memory/NonNativeWritableMemoryImpl.java | 0 .../java/org/apache/datasketches/memory/Prim.java | 0 .../datasketches/memory/ReadOnlyException.java | 0 .../apache/datasketches/memory/StepBoolean.java | 0 .../org/apache/datasketches/memory/UnsafeUtil.java | 0 .../java/org/apache/datasketches/memory/Utf8.java | 0 .../datasketches/memory/Utf8CodingException.java | 0 .../java/org/apache/datasketches/memory/Util.java | 0 .../apache/datasketches/memory/WritableBuffer.java | 0 .../datasketches/memory/WritableBufferImpl.java | 0 .../datasketches/memory/WritableDirectHandle.java | 0 .../apache/datasketches/memory/WritableHandle.java | 0 .../apache/datasketches/memory/WritableMap.java | 0 .../datasketches/memory/WritableMapHandle.java | 0 .../apache/datasketches/memory/WritableMemory.java | 0 .../datasketches/memory/WritableMemoryImpl.java | 0 .../org/apache/datasketches/memory/XxHash64.java | 0 .../apache/datasketches/memory/package-info.java | 0 .../src}/main/javadoc/overview.html | 0 .../memory/AllocateDirectMapMemoryTest.java | 0 .../memory/AllocateDirectMemoryTest.java | 0 .../AllocateDirectWritableMapMemoryTest.java | 0 .../apache/datasketches/memory/BaseBufferTest.java | 0 .../apache/datasketches/memory/BaseStateTest.java | 0 .../apache/datasketches/memory/Buffer2Test.java | 0 .../memory/BufferBoundaryCheckTest.java | 0 .../datasketches/memory/BufferInvariantsTest.java | 0 .../memory/BufferReadWriteSafetyTest.java | 0 .../org/apache/datasketches/memory/BufferTest.java | 0 .../datasketches/memory/CommonBufferTest.java | 0 .../datasketches/memory/CommonMemoryTest.java | 0 .../datasketches/memory/CopyMemoryOverlapTest.java | 0 .../apache/datasketches/memory/CopyMemoryTest.java | 0 .../memory/ExampleMemoryRequestServerTest.java | 0 .../memory/IgnoredArrayOverflowTest.java | 0 .../datasketches/memory/IsValidUtf8TestUtil.java | 0 .../apache/datasketches/memory/LeafImplTest.java | 0 .../memory/MemoryBoundaryCheckTest.java | 0 .../memory/MemoryReadWriteSafetyTest.java | 0 .../org/apache/datasketches/memory/MemoryTest.java | 0 .../datasketches/memory/MemoryWriteToTest.java | 0 .../apache/datasketches/memory/NioBitsTest.java | 0 .../memory/NonNativeWritableBufferImplTest.java | 0 .../memory/NonNativeWritableMemoryImplTest.java | 0 .../datasketches/memory/SpecificLeafTest.java | 0 .../apache/datasketches/memory/UnsafeUtilTest.java | 0 .../org/apache/datasketches/memory/Utf8Test.java | 0 .../org/apache/datasketches/memory/UtilTest.java | 0 .../memory/WritableBufferImplTest.java | 0 .../memory/WritableDirectCopyTest.java | 0 .../memory/WritableMemoryImplTest.java | 0 .../datasketches/memory/WritableMemoryTest.java | 0 .../datasketches/memory/XxHash64LoopingTest.java | 0 .../apache/datasketches/memory/XxHash64Test.java | 0 .../datasketches/memory/ZeroCapacityTest.java | 0 .../src}/test/resources/GettysburgAddress.txt | 0 datasketches-memory-java11/pom.xml | 97 ++ .../apache/datasketches/memory/AllocateDirect.java | 5 +- .../datasketches/memory/AllocateDirectMap.java | 2 +- .../org/apache/datasketches/memory/NioBits.java | 8 +- .../src}/main/javadoc/overview.html | 0 .../datasketches/memory/AllocateDirectTest.java | 34 +- datasketches-memory-multirelease/pom.xml | 82 ++ .../src/assembly/mrjar.xml | 56 + pom.xml | 1318 ++++++++++---------- 102 files changed, 1045 insertions(+), 716 deletions(-) diff --git a/datasketches-memory-base/pom.xml b/datasketches-memory-base/pom.xml new file mode 100644 index 0000000..29896c2 --- /dev/null +++ b/datasketches-memory-base/pom.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.datasketches</groupId> + <artifactId>datasketches-memory-root</artifactId> + <version>1.4.0-SNAPSHOT</version> + </parent> + + <artifactId>datasketches-memory-base</artifactId> + <name>${project.artifactId}</name> + + <properties> + <maven.install.skip>true</maven.install.skip> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <configuration> + <source>1.8</source> + <target>1.8</target> + <jdkToolchain> + <version>1.8</version> + </jdkToolchain> + </configuration> + </plugin> + <plugin> + <!-- Apache Parent pom, pluginManagement--> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${maven-surefire-plugin.version}</version> + <configuration> + <trimStackTrace>false</trimStackTrace> + <useManifestOnlyJar>false</useManifestOnlyJar> + <redirectTestOutputToFile>true</redirectTestOutputToFile> + <jdkToolchain> + <version>1.8</version> + </jdkToolchain> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + +</project> diff --git a/src/main/java/org/apache/datasketches/memory/AccessByteBuffer.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AccessByteBuffer.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/AccessByteBuffer.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AccessByteBuffer.java diff --git a/src/main/java/org/apache/datasketches/memory/AllocateDirect.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirect.java similarity index 99% copy from src/main/java/org/apache/datasketches/memory/AllocateDirect.java copy to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirect.java index 805554c..dbbcbfe 100644 --- a/src/main/java/org/apache/datasketches/memory/AllocateDirect.java +++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirect.java @@ -136,9 +136,9 @@ final class AllocateDirect implements AutoCloseable { BaseState.currentDirectMemoryAllocations_.decrementAndGet(); BaseState.currentDirectMemoryAllocated_.addAndGet(-capacity); return true; - } + } return false; } } -} +} \ No newline at end of file diff --git a/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java similarity index 85% copy from src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java copy to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java index 0dbe16a..b870d74 100644 --- a/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java +++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java @@ -71,23 +71,23 @@ class AllocateDirectMap implements Map { static { try { FILE_CHANNEL_IMPL_MAP0_METHOD = FileChannelImpl.class - .getDeclaredMethod("map0", int.class, long.class, long.class); + .getDeclaredMethod("map0", int.class, long.class, long.class); FILE_CHANNEL_IMPL_MAP0_METHOD.setAccessible(true); FILE_CHANNEL_IMPL_UNMAP0_METHOD = FileChannelImpl.class - .getDeclaredMethod("unmap0", long.class, long.class); + .getDeclaredMethod("unmap0", long.class, long.class); FILE_CHANNEL_IMPL_UNMAP0_METHOD.setAccessible(true); MAPPED_BYTE_BUFFER_LOAD0_METHOD = MappedByteBuffer.class - .getDeclaredMethod("load0", long.class, long.class); + .getDeclaredMethod("load0", long.class, long.class); MAPPED_BYTE_BUFFER_LOAD0_METHOD.setAccessible(true); MAPPED_BYTE_BUFFER_ISLOADED0_METHOD = MappedByteBuffer.class - .getDeclaredMethod("isLoaded0", long.class, long.class, int.class); + .getDeclaredMethod("isLoaded0", long.class, long.class, int.class); MAPPED_BYTE_BUFFER_ISLOADED0_METHOD.setAccessible(true); MAPPED_BYTE_BUFFER_FORCE0_METHOD = MappedByteBuffer.class - .getDeclaredMethod("force0", FileDescriptor.class, long.class, long.class); + .getDeclaredMethod("force0", FileDescriptor.class, long.class, long.class); MAPPED_BYTE_BUFFER_FORCE0_METHOD.setAccessible(true); } catch (final Exception e) { throw new RuntimeException("Could not reflect static methods: " + e); @@ -105,15 +105,15 @@ class AllocateDirectMap implements Map { //called from AllocateDirectWritableMap constructor @SuppressWarnings("resource") AllocateDirectMap(final File file, final long fileOffsetBytes, final long capacityBytes, - final boolean localReadOnly) { + final boolean localReadOnly) { this.capacityBytes = capacityBytes; resourceReadOnly = isFileReadOnly(file); final long fileLength = file.length(); if ((localReadOnly || resourceReadOnly) && fileOffsetBytes + capacityBytes > fileLength) { throw new IllegalArgumentException( - "Read-only mode and requested map length is greater than current file length: " - + "Requested Length = " + (fileOffsetBytes + capacityBytes) - + ", Current File Length = " + fileLength); + "Read-only mode and requested map length is greater than current file length: " + + "Requested Length = " + (fileOffsetBytes + capacityBytes) + + ", Current File Length = " + fileLength); } raf = mapper(file, fileOffsetBytes, capacityBytes, resourceReadOnly); nativeBaseOffset = map(raf.getChannel(), resourceReadOnly, fileOffsetBytes, capacityBytes); @@ -139,11 +139,11 @@ class AllocateDirectMap implements Map { try { final int pageCount = NioBits.pageCount(capacityBytes); return (boolean) MAPPED_BYTE_BUFFER_ISLOADED0_METHOD - //isLoaded0 is effectively static, so ZERO_READ_ONLY_DIRECT_BYTE_BUFFER is not modified - .invoke(AccessByteBuffer.ZERO_READ_ONLY_DIRECT_BYTE_BUFFER, - nativeBaseOffset, - capacityBytes, - pageCount); + //isLoaded0 is effectively static, so ZERO_READ_ONLY_DIRECT_BYTE_BUFFER is not modified + .invoke(AccessByteBuffer.ZERO_READ_ONLY_DIRECT_BYTE_BUFFER, + nativeBaseOffset, + capacityBytes, + pageCount); } catch (final Exception e) { throw new RuntimeException( String.format("Encountered %s exception while loading", e.getClass())); @@ -163,7 +163,7 @@ class AllocateDirectMap implements Map { // because the valid state is already changed. cleaner.clean(); return true; - } + } return false; } finally { BaseState.reachabilityFence(this); @@ -183,19 +183,19 @@ class AllocateDirectMap implements Map { private void madvise() { try { MAPPED_BYTE_BUFFER_LOAD0_METHOD - //load0 is effectively static, so ZERO_READ_ONLY_DIRECT_BYTE_BUFFER is not modified - .invoke(AccessByteBuffer.ZERO_READ_ONLY_DIRECT_BYTE_BUFFER, - nativeBaseOffset, - capacityBytes); + //load0 is effectively static, so ZERO_READ_ONLY_DIRECT_BYTE_BUFFER is not modified + .invoke(AccessByteBuffer.ZERO_READ_ONLY_DIRECT_BYTE_BUFFER, + nativeBaseOffset, + capacityBytes); } catch (final Exception e) { throw new RuntimeException( - String.format("Encountered %s exception while loading", e.getClass())); + String.format("Encountered %s exception while loading", e.getClass())); } } //Does the actual mapping work, resourceReadOnly must already be set private static RandomAccessFile mapper(final File file, final long fileOffset, - final long capacityBytes, final boolean resourceReadOnly) { + final long capacityBytes, final boolean resourceReadOnly) { final String mode = resourceReadOnly ? "r" : "rw"; final RandomAccessFile raf; @@ -225,14 +225,14 @@ class AllocateDirectMap implements Map { * @throws RuntimeException Encountered an exception while mapping */ private static long map(final FileChannel fileChannel, final boolean resourceReadOnly, - final long position, final long lengthBytes) { + final long position, final long lengthBytes) { final int pagePosition = (int) (position % unsafe.pageSize()); final long mapPosition = position - pagePosition; final long mapSize = lengthBytes + pagePosition; final int mapMode = resourceReadOnly ? MAP_RO : MAP_RW; try { final long nativeBaseOffset = - (long) FILE_CHANNEL_IMPL_MAP0_METHOD.invoke(fileChannel, mapMode, mapPosition, mapSize); + (long) FILE_CHANNEL_IMPL_MAP0_METHOD.invoke(fileChannel, mapMode, mapPosition, mapSize); return nativeBaseOffset; } catch (final InvocationTargetException e) { throw new RuntimeException("Exception while mapping", e.getTargetException()); @@ -259,7 +259,7 @@ class AllocateDirectMap implements Map { private final StepBoolean valid = new StepBoolean(true); //only place for this Deallocator(final long nativeBaseOffset, final long capacityBytes, - final RandomAccessFile raf) { + final RandomAccessFile raf) { BaseState.currentDirectMemoryMapAllocations_.incrementAndGet(); BaseState.currentDirectMemoryMapAllocated_.addAndGet(capacityBytes); myRaf = raf; @@ -294,7 +294,7 @@ class AllocateDirectMap implements Map { BaseState.currentDirectMemoryMapAllocated_.addAndGet(-myCapacity); } return true; - } + } return false; } @@ -308,9 +308,9 @@ class AllocateDirectMap implements Map { myRaf.close(); } catch (final Exception e) { throw new RuntimeException( - String.format("Encountered %s exception while freeing memory", e.getClass())); + String.format("Encountered %s exception while freeing memory", e.getClass())); } } } //End of class Deallocator -} +} \ No newline at end of file diff --git a/src/main/java/org/apache/datasketches/memory/AllocateDirectWritableMap.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectWritableMap.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/AllocateDirectWritableMap.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/AllocateDirectWritableMap.java diff --git a/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBNonNativeWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BBWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/BaseBuffer.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseBuffer.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BaseBuffer.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseBuffer.java diff --git a/src/main/java/org/apache/datasketches/memory/BaseState.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseState.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BaseState.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseState.java diff --git a/src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/BaseWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/Buffer.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Buffer.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Buffer.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Buffer.java diff --git a/src/main/java/org/apache/datasketches/memory/CompareAndCopy.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/CompareAndCopy.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/CompareAndCopy.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/CompareAndCopy.java diff --git a/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java diff --git a/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectNonNativeWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/DirectWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/Handle.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Handle.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Handle.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Handle.java diff --git a/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapNonNativeWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/HeapWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/Ints.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Ints.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Ints.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Ints.java diff --git a/src/main/java/org/apache/datasketches/memory/JDK7Compatible.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/JDK7Compatible.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/JDK7Compatible.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/JDK7Compatible.java diff --git a/src/main/java/org/apache/datasketches/memory/Map.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Map.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Map.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Map.java diff --git a/src/main/java/org/apache/datasketches/memory/MapHandle.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapHandle.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/MapHandle.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapHandle.java diff --git a/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapNonNativeWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MapWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/Memory.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Memory.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Memory.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Memory.java diff --git a/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/MemoryRequestServer.java diff --git a/src/main/java/org/apache/datasketches/memory/NioBits.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NioBits.java similarity index 90% copy from src/main/java/org/apache/datasketches/memory/NioBits.java copy to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NioBits.java index a2627b4..d0b4158 100644 --- a/src/main/java/org/apache/datasketches/memory/NioBits.java +++ b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NioBits.java @@ -52,25 +52,25 @@ final class NioBits { try { VM_CLASS = Class.forName("sun.misc.VM"); VM_MAX_DIRECT_MEMORY_METHOD = - VM_CLASS.getDeclaredMethod("maxDirectMemory"); + VM_CLASS.getDeclaredMethod("maxDirectMemory"); VM_MAX_DIRECT_MEMORY_METHOD.setAccessible(true); maxDBBMemory = (long)VM_MAX_DIRECT_MEMORY_METHOD - .invoke(null); //static method + .invoke(null); //static method VM_IS_DIRECT_MEMORY_PAGE_ALIGNED_METHOD = - VM_CLASS.getDeclaredMethod("isDirectMemoryPageAligned"); + 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 + .invoke(null); //static method NIO_BITS_CLASS = Class.forName("java.nio.Bits"); NIO_BITS_RESERVE_MEMORY_METHOD = NIO_BITS_CLASS - .getDeclaredMethod("reserveMemory", long.class, int.class); + .getDeclaredMethod("reserveMemory", long.class, int.class); NIO_BITS_RESERVE_MEMORY_METHOD.setAccessible(true); NIO_BITS_UNRESERVE_MEMORY_METHOD = NIO_BITS_CLASS - .getDeclaredMethod("unreserveMemory", long.class, int.class); + .getDeclaredMethod("unreserveMemory", long.class, int.class); NIO_BITS_UNRESERVE_MEMORY_METHOD.setAccessible(true); final Field countField = NIO_BITS_CLASS.getDeclaredField("count"); @@ -144,7 +144,7 @@ final class NioBits { reserveUnreserve(allocationSize, capacity, NIO_BITS_RESERVE_MEMORY_METHOD); } catch (final Exception e) { throw new RuntimeException("Could not invoke java.nio.Bits.reserveMemory(...): " - + "allocationSize = " + allocationSize + ", capacity = " + capacity, e); + + "allocationSize = " + allocationSize + ", capacity = " + capacity, e); } } @@ -153,12 +153,12 @@ final class NioBits { reserveUnreserve(allocationSize, capacity, NIO_BITS_UNRESERVE_MEMORY_METHOD); } catch (final Exception e) { throw new RuntimeException("Could not invoke java.nio.Bits.unreserveMemory(...): " - + "allocationSize = " + allocationSize + ", capacity = " + capacity, e); + + "allocationSize = " + allocationSize + ", capacity = " + capacity, e); } } private static void reserveUnreserve(long allocationSize, long capacity, final Method method) - throws Exception { + throws Exception { Util.zeroCheck(capacity, "capacity"); // 1GB is a pretty "safe" limit. final long chunkSizeLimit = 1L << 30; @@ -173,4 +173,4 @@ final class NioBits { allocationSize -= chunk; } } -} +} \ No newline at end of file diff --git a/src/main/java/org/apache/datasketches/memory/NonNativeWritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NonNativeWritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/NonNativeWritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NonNativeWritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/NonNativeWritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NonNativeWritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/NonNativeWritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/NonNativeWritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/Prim.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Prim.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Prim.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Prim.java diff --git a/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java similarity index 100% copy from src/main/java/org/apache/datasketches/memory/ReadOnlyException.java copy to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java diff --git a/src/main/java/org/apache/datasketches/memory/StepBoolean.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/StepBoolean.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/StepBoolean.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/StepBoolean.java diff --git a/src/main/java/org/apache/datasketches/memory/UnsafeUtil.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/UnsafeUtil.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/UnsafeUtil.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/UnsafeUtil.java diff --git a/src/main/java/org/apache/datasketches/memory/Utf8.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Utf8.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Utf8.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Utf8.java diff --git a/src/main/java/org/apache/datasketches/memory/Utf8CodingException.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Utf8CodingException.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Utf8CodingException.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Utf8CodingException.java diff --git a/src/main/java/org/apache/datasketches/memory/Util.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Util.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/Util.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/Util.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableBuffer.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableBuffer.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableBuffer.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableBuffer.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableBufferImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableBufferImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableBufferImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableBufferImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableDirectHandle.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableDirectHandle.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableDirectHandle.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableDirectHandle.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableHandle.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableHandle.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableHandle.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableHandle.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableMap.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMap.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableMap.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMap.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableMapHandle.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMapHandle.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableMapHandle.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMapHandle.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableMemory.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMemory.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableMemory.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMemory.java diff --git a/src/main/java/org/apache/datasketches/memory/WritableMemoryImpl.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMemoryImpl.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/WritableMemoryImpl.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/WritableMemoryImpl.java diff --git a/src/main/java/org/apache/datasketches/memory/XxHash64.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/XxHash64.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/XxHash64.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/XxHash64.java diff --git a/src/main/java/org/apache/datasketches/memory/package-info.java b/datasketches-memory-base/src/main/java/org/apache/datasketches/memory/package-info.java similarity index 100% rename from src/main/java/org/apache/datasketches/memory/package-info.java rename to datasketches-memory-base/src/main/java/org/apache/datasketches/memory/package-info.java diff --git a/src/main/javadoc/overview.html b/datasketches-memory-base/src/main/javadoc/overview.html similarity index 100% copy from src/main/javadoc/overview.html copy to datasketches-memory-base/src/main/javadoc/overview.html diff --git a/src/test/java/org/apache/datasketches/memory/AllocateDirectMapMemoryTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/AllocateDirectMapMemoryTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/AllocateDirectMapMemoryTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/AllocateDirectMapMemoryTest.java diff --git a/src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/AllocateDirectMemoryTest.java diff --git a/src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/AllocateDirectWritableMapMemoryTest.java diff --git a/src/test/java/org/apache/datasketches/memory/BaseBufferTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BaseBufferTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/BaseBufferTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BaseBufferTest.java diff --git a/src/test/java/org/apache/datasketches/memory/BaseStateTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BaseStateTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/BaseStateTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BaseStateTest.java diff --git a/src/test/java/org/apache/datasketches/memory/Buffer2Test.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/Buffer2Test.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/Buffer2Test.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/Buffer2Test.java diff --git a/src/test/java/org/apache/datasketches/memory/BufferBoundaryCheckTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferBoundaryCheckTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/BufferBoundaryCheckTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferBoundaryCheckTest.java diff --git a/src/test/java/org/apache/datasketches/memory/BufferInvariantsTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferInvariantsTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/BufferInvariantsTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferInvariantsTest.java diff --git a/src/test/java/org/apache/datasketches/memory/BufferReadWriteSafetyTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferReadWriteSafetyTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/BufferReadWriteSafetyTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferReadWriteSafetyTest.java diff --git a/src/test/java/org/apache/datasketches/memory/BufferTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/BufferTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/BufferTest.java diff --git a/src/test/java/org/apache/datasketches/memory/CommonBufferTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CommonBufferTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/CommonBufferTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CommonBufferTest.java diff --git a/src/test/java/org/apache/datasketches/memory/CommonMemoryTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CommonMemoryTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/CommonMemoryTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CommonMemoryTest.java diff --git a/src/test/java/org/apache/datasketches/memory/CopyMemoryOverlapTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CopyMemoryOverlapTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/CopyMemoryOverlapTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CopyMemoryOverlapTest.java diff --git a/src/test/java/org/apache/datasketches/memory/CopyMemoryTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CopyMemoryTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/CopyMemoryTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/CopyMemoryTest.java diff --git a/src/test/java/org/apache/datasketches/memory/ExampleMemoryRequestServerTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/ExampleMemoryRequestServerTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/ExampleMemoryRequestServerTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/ExampleMemoryRequestServerTest.java diff --git a/src/test/java/org/apache/datasketches/memory/IgnoredArrayOverflowTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/IgnoredArrayOverflowTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/IgnoredArrayOverflowTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/IgnoredArrayOverflowTest.java diff --git a/src/test/java/org/apache/datasketches/memory/IsValidUtf8TestUtil.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/IsValidUtf8TestUtil.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/IsValidUtf8TestUtil.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/IsValidUtf8TestUtil.java diff --git a/src/test/java/org/apache/datasketches/memory/LeafImplTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/LeafImplTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/LeafImplTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/LeafImplTest.java diff --git a/src/test/java/org/apache/datasketches/memory/MemoryBoundaryCheckTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryBoundaryCheckTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/MemoryBoundaryCheckTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryBoundaryCheckTest.java diff --git a/src/test/java/org/apache/datasketches/memory/MemoryReadWriteSafetyTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryReadWriteSafetyTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/MemoryReadWriteSafetyTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryReadWriteSafetyTest.java diff --git a/src/test/java/org/apache/datasketches/memory/MemoryTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/MemoryTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryTest.java diff --git a/src/test/java/org/apache/datasketches/memory/MemoryWriteToTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryWriteToTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/MemoryWriteToTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/MemoryWriteToTest.java diff --git a/src/test/java/org/apache/datasketches/memory/NioBitsTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/NioBitsTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/NioBitsTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/NioBitsTest.java diff --git a/src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/NonNativeWritableBufferImplTest.java diff --git a/src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/NonNativeWritableMemoryImplTest.java diff --git a/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/SpecificLeafTest.java diff --git a/src/test/java/org/apache/datasketches/memory/UnsafeUtilTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/UnsafeUtilTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/UnsafeUtilTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/UnsafeUtilTest.java diff --git a/src/test/java/org/apache/datasketches/memory/Utf8Test.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/Utf8Test.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/Utf8Test.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/Utf8Test.java diff --git a/src/test/java/org/apache/datasketches/memory/UtilTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/UtilTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/UtilTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/UtilTest.java diff --git a/src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableBufferImplTest.java diff --git a/src/test/java/org/apache/datasketches/memory/WritableDirectCopyTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableDirectCopyTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/WritableDirectCopyTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableDirectCopyTest.java diff --git a/src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableMemoryImplTest.java diff --git a/src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/WritableMemoryTest.java diff --git a/src/test/java/org/apache/datasketches/memory/XxHash64LoopingTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/XxHash64LoopingTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/XxHash64LoopingTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/XxHash64LoopingTest.java diff --git a/src/test/java/org/apache/datasketches/memory/XxHash64Test.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/XxHash64Test.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/XxHash64Test.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/XxHash64Test.java diff --git a/src/test/java/org/apache/datasketches/memory/ZeroCapacityTest.java b/datasketches-memory-base/src/test/java/org/apache/datasketches/memory/ZeroCapacityTest.java similarity index 100% rename from src/test/java/org/apache/datasketches/memory/ZeroCapacityTest.java rename to datasketches-memory-base/src/test/java/org/apache/datasketches/memory/ZeroCapacityTest.java diff --git a/src/test/resources/GettysburgAddress.txt b/datasketches-memory-base/src/test/resources/GettysburgAddress.txt similarity index 100% rename from src/test/resources/GettysburgAddress.txt rename to datasketches-memory-base/src/test/resources/GettysburgAddress.txt diff --git a/datasketches-memory-java11/pom.xml b/datasketches-memory-java11/pom.xml new file mode 100644 index 0000000..a3fcd86 --- /dev/null +++ b/datasketches-memory-java11/pom.xml @@ -0,0 +1,97 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.datasketches</groupId> + <artifactId>datasketches-memory-root</artifactId> + <version>1.4.0-SNAPSHOT</version> + </parent> + + <artifactId>datasketches-memory-java11</artifactId> + <name>${project.artifactId}</name> + + <properties> + <maven.install.skip>true</maven.install.skip> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.datasketches</groupId> + <artifactId>datasketches-memory-base</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.12</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>3.8.1</version> + <configuration> + <source>11</source> + <target>11</target> + <compilerArgs> + <arg>--add-exports</arg> + <arg>java.base/sun.nio.ch=ALL-UNNAMED</arg> + <arg>--add-exports</arg> + <arg>java.base/jdk.internal.ref=ALL-UNNAMED</arg> + </compilerArgs> + <jdkToolchain> + <version>11</version> + </jdkToolchain> + </configuration> + </plugin> + <plugin> + <!-- Apache Parent pom, pluginManagement--> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${maven-surefire-plugin.version}</version> + <configuration> + <trimStackTrace>false</trimStackTrace> + <useManifestOnlyJar>false</useManifestOnlyJar> + <redirectTestOutputToFile>true</redirectTestOutputToFile> + <argLine> + --add-opens java.base/java.nio=ALL-UNNAMED + --add-opens java.base/java.lang=ALL-UNNAMED + --add-opens java.base/jdk.internal.misc=ALL-UNNAMED + --add-opens java.base/jdk.internal.ref=ALL-UNNAMED + --add-opens java.base/sun.nio.ch=ALL-UNNAMED + </argLine> + <jdkToolchain> + <version>11</version> + </jdkToolchain> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> +</project> diff --git a/src/main/java/org/apache/datasketches/memory/AllocateDirect.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/AllocateDirect.java similarity index 97% rename from src/main/java/org/apache/datasketches/memory/AllocateDirect.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/AllocateDirect.java index 805554c..7fcd287 100644 --- a/src/main/java/org/apache/datasketches/memory/AllocateDirect.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/AllocateDirect.java @@ -21,11 +21,10 @@ package org.apache.datasketches.memory; import static org.apache.datasketches.memory.UnsafeUtil.unsafe; +import jdk.internal.ref.Cleaner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sun.misc.Cleaner; - /** * Provides access to direct (native) memory. * @@ -37,7 +36,7 @@ final class AllocateDirect implements AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(AllocateDirect.class); private final Deallocator deallocator; - private final Cleaner cleaner; //TODO-JDK9 import jdk.internal.ref.Cleaner; + private final Cleaner cleaner; private final long nativeBaseOffset; /** diff --git a/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java similarity index 99% rename from src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java index 0dbe16a..aba9ebd 100644 --- a/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/AllocateDirectMap.java @@ -30,10 +30,10 @@ import java.lang.reflect.Method; import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; +import jdk.internal.ref.Cleaner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import sun.misc.Cleaner; //TODO-JDK9 jdk.internal.ref.Cleaner; import sun.nio.ch.FileChannelImpl; /** diff --git a/src/main/java/org/apache/datasketches/memory/NioBits.java b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/NioBits.java similarity index 98% rename from src/main/java/org/apache/datasketches/memory/NioBits.java rename to datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/NioBits.java index a2627b4..973fb54 100644 --- a/src/main/java/org/apache/datasketches/memory/NioBits.java +++ b/datasketches-memory-java11/src/main/java/org/apache/datasketches/memory/NioBits.java @@ -50,7 +50,7 @@ final class NioBits { static { try { - VM_CLASS = Class.forName("sun.misc.VM"); + VM_CLASS = Class.forName("jdk.internal.misc.VM"); VM_MAX_DIRECT_MEMORY_METHOD = VM_CLASS.getDeclaredMethod("maxDirectMemory"); VM_MAX_DIRECT_MEMORY_METHOD.setAccessible(true); @@ -73,15 +73,15 @@ final class NioBits { .getDeclaredMethod("unreserveMemory", long.class, int.class); NIO_BITS_UNRESERVE_MEMORY_METHOD.setAccessible(true); - final Field countField = NIO_BITS_CLASS.getDeclaredField("count"); + final Field countField = NIO_BITS_CLASS.getDeclaredField("COUNT"); countField.setAccessible(true); nioBitsCount = (AtomicLong) (countField.get(null)); - final Field reservedMemoryField = NIO_BITS_CLASS.getDeclaredField("reservedMemory"); + final Field reservedMemoryField = NIO_BITS_CLASS.getDeclaredField("RESERVED_MEMORY"); reservedMemoryField.setAccessible(true); nioBitsReservedMemory = (AtomicLong) (reservedMemoryField.get(null)); - final Field totalCapacityField = NIO_BITS_CLASS.getDeclaredField("totalCapacity"); + final Field totalCapacityField = NIO_BITS_CLASS.getDeclaredField("TOTAL_CAPACITY"); totalCapacityField.setAccessible(true); nioBitsTotalCapacity = (AtomicLong) (totalCapacityField.get(null)); diff --git a/src/main/javadoc/overview.html b/datasketches-memory-java11/src/main/javadoc/overview.html similarity index 100% rename from src/main/javadoc/overview.html rename to datasketches-memory-java11/src/main/javadoc/overview.html diff --git a/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/AllocateDirectTest.java similarity index 61% rename from src/main/java/org/apache/datasketches/memory/ReadOnlyException.java rename to datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/AllocateDirectTest.java index ebced06..e89396a 100644 --- a/src/main/java/org/apache/datasketches/memory/ReadOnlyException.java +++ b/datasketches-memory-java11/src/test/java/org/apache/datasketches/memory/AllocateDirectTest.java @@ -17,22 +17,28 @@ * under the License. */ +/* + * Note: Lincoln's Gettysburg Address is in the public domain. See LICENSE. + */ + package org.apache.datasketches.memory; -/** - * 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; + +import static org.testng.Assert.assertEquals; - /** - * Read Only Exception - * @param message the error message - */ - public ReadOnlyException(final String message) { - super(message); +@SuppressWarnings("javadoc") +public class AllocateDirectTest { + + @Test + public void simpleAllocateDirect() { + int longs = 32; + try (WritableDirectHandle wh = WritableMemory.allocateDirect(longs << 3)) { + WritableMemory wMem1 = wh.get(); + for (int i = 0; i < longs; i++) { + wMem1.putLong(i << 3, i); + assertEquals(wMem1.getLong(i << 3), i); + } } + } } - diff --git a/datasketches-memory-multirelease/pom.xml b/datasketches-memory-multirelease/pom.xml new file mode 100644 index 0000000..9845c73 --- /dev/null +++ b/datasketches-memory-multirelease/pom.xml @@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.datasketches</groupId> + <artifactId>datasketches-memory-root</artifactId> + <version>1.4.0-SNAPSHOT</version> + </parent> + + <artifactId>datasketches-memory-multirelease</artifactId> + <name>${project.artifactId}</name> + + <build> + <plugins> + <plugin> + <!-- Extends Apache Parent pom, apache-release profile --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${maven-javadoc-plugin.version}</version> + <configuration> + <docfilessubdirs>true</docfilessubdirs> + </configuration> + <executions> + <execution> + <id>attach-javadocs</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>3.1.0</version> + <configuration> + <appendAssemblyId>false</appendAssemblyId> + <descriptors> + <descriptor>src/assembly/mrjar.xml</descriptor> + </descriptors> + <archive> + <manifestEntries> + <Multi-Release>true</Multi-Release> + </manifestEntries> + </archive> + </configuration> + <executions> + <execution> + <id>make-assembly</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <dependencies><!-- add multirelease-base dependencies if any --> + </dependencies> +</project> diff --git a/datasketches-memory-multirelease/src/assembly/mrjar.xml b/datasketches-memory-multirelease/src/assembly/mrjar.xml new file mode 100644 index 0000000..1900300 --- /dev/null +++ b/datasketches-memory-multirelease/src/assembly/mrjar.xml @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"> + <id>mvjar</id> + <formats> + <format>jar</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + <moduleSets> + <moduleSet> + <useAllReactorProjects>true</useAllReactorProjects> + <includes> + <include>org.apache.datasketches:datasketches-memory-base</include> + </includes> + <binaries> + <unpack>true</unpack> + <includeDependencies>false</includeDependencies> + </binaries> + </moduleSet> + <moduleSet> + <useAllReactorProjects>true</useAllReactorProjects> + <includes> + <include>org.apache.datasketches:datasketches-memory-java11</include> + </includes> + <binaries> + <outputDirectory>META-INF/versions/11</outputDirectory> + <unpack>true</unpack> + <includeDependencies>false</includeDependencies> + <unpackOptions> + <excludes> + <exclude>/META-INF/**</exclude> + </excludes> + </unpackOptions> + </binaries> + </moduleSet> + </moduleSets> +</assembly> diff --git a/pom.xml b/pom.xml index 446e689..1d46750 100644 --- a/pom.xml +++ b/pom.xml @@ -20,671 +20,679 @@ under the License. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> - - <modelVersion>4.0.0</modelVersion> - - <parent> - <groupId>org.apache</groupId> - <artifactId>apache</artifactId> - <version>23</version> - </parent> - - <groupId>org.apache.datasketches</groupId> - <artifactId>datasketches-memory</artifactId> - <version>1.4.0-SNAPSHOT</version> - <packaging>jar</packaging> - - <name>${project.artifactId}</name> - <description>High-performance native memory access.</description> - <url>https://datasketches.apache.org/</url> - <inceptionYear>2015</inceptionYear> - - <mailingLists> - <mailingList> - <name>DataSketches Developers</name> - <subscribe>[email protected]</subscribe> - <unsubscribe>[email protected]</unsubscribe> - <post>[email protected]</post> - <archive>https://mail-archives.apache.org/mod_mbox/datasketches-dev</archive> - </mailingList> - <mailingList> - <name>sketches-user</name> - <archive>https://groups.google.com/forum/#!forum/sketches-user</archive> - <subscribe>mailto:sketches-user%[email protected]</subscribe> - <unsubscribe>mailto:sketches-user%[email protected]</unsubscribe> - <post>mailto:[email protected]</post> - </mailingList> - </mailingLists> - - <scm> - <connection>scm:git:ssh://[email protected]/apache/${project.artifactId}.git</connection> - <developerConnection>scm:git:ssh://[email protected]/apache/${project.artifactId}.git</developerConnection> - <url>https://github.com/apache/${project.artifactId}</url> - <tag>HEAD</tag> - </scm> - - <issueManagement> - <!-- <system>jira</system> - <url>https://issues.apache.org/jira/browse/DATASKETCHES</url> --> - <system>GitHub</system> - <url>https://github.com/apache/${project.artifactId}/issues</url> - </issueManagement> - - <developers> - <developer> - <name>The Apache DataSketches Team</name> - <email>[email protected]</email> - <url>https://datasketches.apache.org</url> - <organization>Apache Software Foundation</organization> - <organizationUrl>http://www.apache.org</organizationUrl> - </developer> - </developers> - - <properties> - <!-- UNIQUE FOR THIS JAVA COMPONENT --> - <slf4j-api.version>1.7.30</slf4j-api.version> - <slf4j-simple.version>1.7.30</slf4j-simple.version> - <protobuf-java.version>3.6.0</protobuf-java.version> - <!-- Used for UTF8 testing --> - <zero-allocation-hashing.version>0.8</zero-allocation-hashing.version> - <!-- END:UNIQUE FOR THIS JAVA COMPONENT --> - - <!-- Test --> - <testng.version>7.1.0</testng.version> - - <!-- System-wide properties --> - <maven.version>3.5.0</maven.version> - <java.version>1.8</java.version> - <maven.compiler.source>${java.version}</maven.compiler.source> - <maven.compiler.target>${java.version}</maven.compiler.target> - <argLine>-Xmx4g -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8</argLine> - <charset.encoding>UTF-8</charset.encoding> - <project.build.sourceEncoding>${charset.encoding}</project.build.sourceEncoding> - <project.build.resourceEncoding>${charset.encoding}</project.build.resourceEncoding> - <project.reporting.outputEncoding>${charset.encoding}</project.reporting.outputEncoding> - - <!-- org.codehaus plugins --> - <!-- used for strict profile testing--> - <plexus-compiler-javac-errorprone.version>2.8.5</plexus-compiler-javac-errorprone.version> - <versions-maven-plugin.version>2.8.1</versions-maven-plugin.version> - - <!-- Maven Plugins --> - <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version> <!-- overrides parent --> - <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <!-- overrides parent --> - <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version> <!-- overrides parent --> - <maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version> <!-- overrides parent --> - <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version> <!-- overrides parent --> - <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version> <!-- overrides parent --> - <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version> <!-- overrides parent --> - <maven-release-plugin.version>3.0.0-M1</maven-release-plugin.version> <!-- overrides parent --> - <maven-remote-resources-plugin.version>[1.7.0,)</maven-remote-resources-plugin.version> <!-- overrides parent --> - <maven-source-plugin.version>3.2.1</maven-source-plugin.version> <!-- overrides parent --> - <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> <!-- overrides parent --> - <!-- Apache Plugins --> - <apache-rat-plugin.version>0.13</apache-rat-plugin.version> <!-- overrides parent --> - <!-- org.jacoco Maven Plugins --> - <jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version> - <!-- org.eluder Maven Plugins --> - <coveralls-repo-token></coveralls-repo-token> - <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version> - <!-- other --> - <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version> - <git-commit-id-plugin.version>4.0.4</git-commit-id-plugin.version> - </properties> - - <repositories> - <repository> - <id>apache.snapshots</id> - <name>Apache Snapshot Repository</name> - <url>https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/</url> - <releases> - <enabled>false</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> - <repository> - <id>apache</id> - <name>Apache Releases Repository</name> - <url>https://repository.apache.org/content/repositories/releases/org/apache/datasketches/</url> - <releases> - <enabled>true</enabled> - </releases> - <snapshots> - <enabled>false</enabled> - </snapshots> - </repository> - </repositories> - - <dependencies> - <!-- UNIQUE FOR THIS JAVA COMPONENT --> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-api</artifactId> - <version>${slf4j-api.version}</version> - </dependency> - <!-- Test Scope --> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-simple</artifactId> - <version>${slf4j-simple.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <!-- Used for UTF8 testing --> - <groupId>com.google.protobuf</groupId> - <artifactId>protobuf-java</artifactId> - <version>${protobuf-java.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <!-- Used for xxHash testing --> - <groupId>net.openhft</groupId> - <artifactId>zero-allocation-hashing</artifactId> - <version>${zero-allocation-hashing.version}</version> - <scope>test</scope> - </dependency> - <!-- END: UNIQUE FOR THIS JAVA COMPONENT --> - - <!-- Test Scope --> - <dependency> - <groupId>org.testng</groupId> - <artifactId>testng</artifactId> - <version>${testng.version}</version> - <scope>test</scope> - </dependency> - </dependencies> - - <build> - <pluginManagement> - <plugins> - - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>versions-maven-plugin</artifactId> - <version>${versions-maven-plugin.version}</version> - </plugin> - - <plugin> - <!-- We want to deploy the artifacts to a staging location for perusal --> - <!-- Apache Parent pom: apache-release profile --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - <version>${maven-deploy-plugin.version}</version> - </plugin> - - <plugin> - <!-- Apache Parent pom, pluginManagement--> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-release-plugin</artifactId> - <version>${maven-release-plugin.version}</version> - </plugin> - - <plugin> - <!-- Extends Apache Parent pom, pluginManagement--> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>${maven-jar-plugin.version}</version> - <executions> - <execution> - <id>default-jar</id> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - </execution> - <execution> - <id>default-test-jar</id> - <phase>package</phase> - <goals> - <goal>test-jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <!-- Extends Apache Parent pom, apache-release profile --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - <version>${maven-javadoc-plugin.version}</version> - <configuration> - <docfilessubdirs>true</docfilessubdirs> - </configuration> - <executions> - <execution> - <id>attach-javadocs</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-enforcer-plugin</artifactId> - <version>${maven-enforcer-plugin.version}</version> - <executions> - <execution> - <id>enforce-banned-dependencies</id> - <goals> - <goal>enforce</goal> - </goals> - <configuration> - <rules> - <requireJavaVersion> - <version>${java.version}</version> - </requireJavaVersion> - <requireMavenVersion> - <version>${maven.version},</version> - </requireMavenVersion> - <bannedDependencies> - <excludes> - <!--LGPL licensed library--> - <exclude>com.google.code.findbugs:annotations</exclude> - </excludes> - </bannedDependencies> - </rules> - <fail>true</fail> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <!-- Apache Parent pom, pluginManagement--> - <groupId>org.apache.rat</groupId> - <artifactId>apache-rat-plugin</artifactId> - <version>${apache-rat-plugin.version}</version> - <executions> - <execution> - <phase>verify</phase> - <goals> - <goal>check</goal> - </goals> - </execution> - </executions> - <configuration> - <outputDirectory>${project.basedir}/rat</outputDirectory> - <consoleOutput>true</consoleOutput> - <useDefaultExcludes>true</useDefaultExcludes> - <excludes> - <!-- rat uses .gitignore for excludes by default --> - <exclude>**/*.yaml</exclude> - <exclude>**/*.yml</exclude> - <exclude>**/.*</exclude> - <exclude>**/test/resources/**/*.txt</exclude> - <exclude>LICENSE</exclude> - <exclude>NOTICE</exclude> - </excludes> - </configuration> - </plugin> - - <plugin> - <!-- Extends Apache Parent pom, apache-release profile --> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - <version>${maven-source-plugin.version}</version> - <executions> - <execution> - <id>attach-sources</id> - <phase>package</phase> - <goals> - <goal>jar-no-fork</goal> - </goals> - </execution> - <execution> - <id>attach-test-sources</id> - <phase>package</phase> - <goals> - <goal>test-jar-no-fork</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <!-- Apache Parent pom, pluginManagement--> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>${maven-surefire-plugin.version}</version> - <configuration> - <trimStackTrace>false</trimStackTrace> - <useManifestOnlyJar>false</useManifestOnlyJar> - <redirectTestOutputToFile>true</redirectTestOutputToFile> - </configuration> - </plugin> - - <plugin> - <!-- Generates code coverage report from website. --> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - <version>${jacoco-maven-plugin.version}</version> - <executions> - <execution> - <id>default-prepare-agent</id> - <goals> - <goal>prepare-agent</goal> - </goals> - </execution> - <execution> - <id>default-report</id> - <goals> - <goal>report</goal> - </goals> - </execution> - </executions> - </plugin> - - <plugin> - <!-- Submit code coverage report to Coveralls.io. --> - <groupId>org.eluder.coveralls</groupId> - <artifactId>coveralls-maven-plugin</artifactId> - <version>${coveralls-maven-plugin.version}</version> - <configuration> - <repoToken>${coveralls-repo-token}</repoToken> - </configuration> - </plugin> - - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>${lifecycle-mapping.version}</version> - </plugin> - - <plugin> - <groupId>pl.project13.maven</groupId> - <artifactId>git.commit-id-plugin</artifactId> - <version>${git-commit-id-plugin.version}</version> - </plugin> - - </plugins> - </pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-deploy-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-release-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-javadoc-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-enforcer-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.rat</groupId> - <artifactId>apache-rat-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-source-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.jacoco</groupId> - <artifactId>jacoco-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - </plugin> - <plugin> - <groupId>org.eluder.coveralls</groupId> - <artifactId>coveralls-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>pl.project13.maven</groupId> - <artifactId>git.commit-id-plugin</artifactId> - </plugin> - </plugins> - </build> - <profiles> - <!-- Ignore nuisance warning from Apache parent plugin: - "maven-remote-resources-plugin (goal "process") is ignored by m2e". - This also should fix the Maven warning that it can't find the lifecycle-mapping jar. - This profile is only active when the property "m2e.version" is set, - which is the case when building in Eclipse with m2e. - The ignore below tells m2eclipse to skip the execution. - --> - <profile> - <id>m2e</id> - <activation> - <property> - <name>m2e.version</name> - </property> - </activation> - <build> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache</groupId> + <artifactId>apache</artifactId> + <version>23</version> + </parent> + + <groupId>org.apache.datasketches</groupId> + <artifactId>datasketches-memory-root</artifactId> + <version>1.4.0-SNAPSHOT</version> + <packaging>pom</packaging> + + <name>${project.artifactId}</name> + <description>High-performance native memory access.</description> + <url>https://datasketches.apache.org/</url> + <inceptionYear>2015</inceptionYear> + + <mailingLists> + <mailingList> + <name>DataSketches Developers</name> + <subscribe>[email protected]</subscribe> + <unsubscribe>[email protected]</unsubscribe> + <post>[email protected]</post> + <archive>https://mail-archives.apache.org/mod_mbox/datasketches-dev</archive> + </mailingList> + <mailingList> + <name>sketches-user</name> + <archive>https://groups.google.com/forum/#!forum/sketches-user</archive> + <subscribe>mailto:sketches-user%[email protected]</subscribe> + <unsubscribe>mailto:sketches-user%[email protected]</unsubscribe> + <post>mailto:[email protected]</post> + </mailingList> + </mailingLists> + + <scm> + <connection>scm:git:ssh://[email protected]/apache/${project.artifactId}.git</connection> + <developerConnection>scm:git:ssh://[email protected]/apache/${project.artifactId}.git</developerConnection> + <url>https://github.com/apache/${project.artifactId}</url> + <tag>HEAD</tag> + </scm> + + <issueManagement> + <!-- <system>jira</system> + <url>https://issues.apache.org/jira/browse/DATASKETCHES</url> --> + <system>GitHub</system> + <url>https://github.com/apache/${project.artifactId}/issues</url> + </issueManagement> + + <developers> + <developer> + <name>The Apache DataSketches Team</name> + <email>[email protected]</email> + <url>https://datasketches.apache.org</url> + <organization>Apache Software Foundation</organization> + <organizationUrl>http://www.apache.org</organizationUrl> + </developer> + </developers> + + <properties> + <!-- UNIQUE FOR THIS JAVA COMPONENT --> + <slf4j-api.version>1.7.30</slf4j-api.version> + <slf4j-simple.version>1.7.30</slf4j-simple.version> + <protobuf-java.version>3.6.0</protobuf-java.version> + <!-- Used for UTF8 testing --> + <zero-allocation-hashing.version>0.8</zero-allocation-hashing.version> + <!-- END:UNIQUE FOR THIS JAVA COMPONENT --> + + <!-- Test --> + <testng.version>7.1.0</testng.version> + + <!-- System-wide properties --> + <maven.version>3.5.0</maven.version> + <java.version>11</java.version> + <maven.compiler.source>${java.version}</maven.compiler.source> + <maven.compiler.target>${java.version}</maven.compiler.target> + <argLine>-Xmx4g -Duser.language=en -Duser.country=US -Dfile.encoding=UTF-8</argLine> + <charset.encoding>UTF-8</charset.encoding> + <project.build.sourceEncoding>${charset.encoding}</project.build.sourceEncoding> + <project.build.resourceEncoding>${charset.encoding}</project.build.resourceEncoding> + <project.reporting.outputEncoding>${charset.encoding}</project.reporting.outputEncoding> + + <!-- org.codehaus plugins --> + <!-- used for strict profile testing--> + <plexus-compiler-javac-errorprone.version>2.8.5</plexus-compiler-javac-errorprone.version> + <versions-maven-plugin.version>2.8.1</versions-maven-plugin.version> + + <!-- Maven Plugins --> + <maven-assembly-plugin.version>3.3.0</maven-assembly-plugin.version> <!-- overrides parent --> + <maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version> <!-- overrides parent --> + <maven-deploy-plugin.version>3.0.0-M1</maven-deploy-plugin.version> <!-- overrides parent --> + <maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version> <!-- overrides parent --> + <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version> <!-- overrides parent --> + <maven-jar-plugin.version>3.2.0</maven-jar-plugin.version> <!-- overrides parent --> + <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version> <!-- overrides parent --> + <maven-release-plugin.version>3.0.0-M1</maven-release-plugin.version> <!-- overrides parent --> + <maven-remote-resources-plugin.version>[1.7.0,)</maven-remote-resources-plugin.version> <!-- overrides parent --> + <maven-source-plugin.version>3.2.1</maven-source-plugin.version> <!-- overrides parent --> + <maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> <!-- overrides parent --> + <!-- Apache Plugins --> + <apache-rat-plugin.version>0.13</apache-rat-plugin.version> <!-- overrides parent --> + <!-- org.jacoco Maven Plugins --> + <jacoco-maven-plugin.version>0.8.6</jacoco-maven-plugin.version> + <!-- org.eluder Maven Plugins --> + <coveralls-repo-token></coveralls-repo-token> + <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version> + <!-- other --> + <lifecycle-mapping.version>1.0.0</lifecycle-mapping.version> + <toolchain.vendor>openjdk</toolchain.vendor> + <git-commit-id-plugin.version>4.0.4</git-commit-id-plugin.version> + </properties> + + <repositories> + <repository> + <id>apache.snapshots</id> + <name>Apache Snapshot Repository</name> + <url>https://repository.apache.org/content/groups/snapshots/org/apache/datasketches/</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + <repository> + <id>apache</id> + <name>Apache Releases Repository</name> + <url>https://repository.apache.org/content/repositories/releases/org/apache/datasketches/</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + </repositories> + + <dependencies> + <!-- UNIQUE FOR THIS JAVA COMPONENT --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>${slf4j-api.version}</version> + </dependency> + <!-- Test Scope --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-simple</artifactId> + <version>${slf4j-simple.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <!-- Used for UTF8 testing --> + <groupId>com.google.protobuf</groupId> + <artifactId>protobuf-java</artifactId> + <version>${protobuf-java.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <!-- Used for xxHash testing --> + <groupId>net.openhft</groupId> + <artifactId>zero-allocation-hashing</artifactId> + <version>${zero-allocation-hashing.version}</version> + <scope>test</scope> + </dependency> + <!-- END: UNIQUE FOR THIS JAVA COMPONENT --> + + <!-- Test Scope --> + <dependency> + <groupId>org.testng</groupId> + <artifactId>testng</artifactId> + <version>${testng.version}</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> <pluginManagement> - <plugins> + <plugins> + + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>versions-maven-plugin</artifactId> + <version>${versions-maven-plugin.version}</version> + </plugin> + + <plugin> + <!-- We want to deploy the artifacts to a staging location for perusal --> + <!-- Apache Parent pom: apache-release profile --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> + <version>${maven-deploy-plugin.version}</version> + </plugin> + + <plugin> + <!-- Apache Parent pom, pluginManagement--> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> + <version>${maven-release-plugin.version}</version> + </plugin> + + <plugin> + <!-- Extends Apache Parent pom, pluginManagement--> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>${maven-jar-plugin.version}</version> + <executions> + <execution> + <id>default-jar</id> + <phase>package</phase> + <goals> + <goal>jar</goal> + </goals> + </execution> + <execution> + <id>default-test-jar</id> + <phase>package</phase> + <goals> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <!-- Extends Apache Parent pom, apache-release profile --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${maven-javadoc-plugin.version}</version> + <configuration> + <docfilessubdirs>true</docfilessubdirs> + </configuration> + <executions> + <execution> + <id>attach-javadocs</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + <version>${maven-enforcer-plugin.version}</version> + <executions> + <execution> + <id>enforce-banned-dependencies</id> + <goals> + <goal>enforce</goal> + </goals> + <configuration> + <rules> + <requireJavaVersion> + <version>${java.version}</version> + </requireJavaVersion> + <requireMavenVersion> + <version>${maven.version},</version> + </requireMavenVersion> + <bannedDependencies> + <excludes> + <!--LGPL licensed library--> + <exclude>com.google.code.findbugs:annotations</exclude> + </excludes> + </bannedDependencies> + </rules> + <fail>true</fail> + </configuration> + </execution> + </executions> + </plugin> + + <plugin> + <!-- Apache Parent pom, pluginManagement--> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + <version>${apache-rat-plugin.version}</version> + <executions> + <execution> + <phase>verify</phase> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + <configuration> + <outputDirectory>${project.basedir}/rat</outputDirectory> + <consoleOutput>true</consoleOutput> + <useDefaultExcludes>true</useDefaultExcludes> + <excludes> + <!-- rat uses .gitignore for excludes by default --> + <exclude>**/*.yaml</exclude> + <exclude>**/*.yml</exclude> + <exclude>**/.*</exclude> + <exclude>**/test/resources/**/*.txt</exclude> + <exclude>LICENSE</exclude> + <exclude>NOTICE</exclude> + </excludes> + </configuration> + </plugin> + + <plugin> + <!-- Extends Apache Parent pom, apache-release profile --> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + <version>${maven-source-plugin.version}</version> + <executions> + <execution> + <id>attach-sources</id> + <phase>package</phase> + <goals> + <goal>jar-no-fork</goal> + </goals> + </execution> + <execution> + <id>attach-test-sources</id> + <phase>package</phase> + <goals> + <goal>test-jar-no-fork</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <!-- Apache Parent pom, pluginManagement--> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>${maven-surefire-plugin.version}</version> + <configuration> + <trimStackTrace>false</trimStackTrace> + <useManifestOnlyJar>false</useManifestOnlyJar> + <redirectTestOutputToFile>true</redirectTestOutputToFile> + </configuration> + </plugin> + + <plugin> + <!-- Generates code coverage report from website. --> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + <version>${jacoco-maven-plugin.version}</version> + <executions> + <execution> + <id>default-prepare-agent</id> + <goals> + <goal>prepare-agent</goal> + </goals> + </execution> + <execution> + <id>default-report</id> + <goals> + <goal>report</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <!-- Submit code coverage report to Coveralls.io. --> + <groupId>org.eluder.coveralls</groupId> + <artifactId>coveralls-maven-plugin</artifactId> + <version>${coveralls-maven-plugin.version}</version> + <configuration> + <repoToken>${coveralls-repo-token}</repoToken> + </configuration> + </plugin> + + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>${lifecycle-mapping.version}</version> + </plugin> + + <plugin> + <groupId>pl.project13.maven</groupId> + <artifactId>git.commit-id-plugin</artifactId> + <version>${git-commit-id-plugin.version}</version> + </plugin> + + </plugins> + </pluginManagement> + <plugins> <plugin> - <groupId>org.eclipse.m2e</groupId> - <artifactId>lifecycle-mapping</artifactId> - <version>${lifecycle-mapping.version}</version> - <configuration> - <lifecycleMappingMetadata> - <pluginExecutions> - <pluginExecution> - <pluginExecutionFilter> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-remote-resources-plugin</artifactId> - <versionRange>${maven-remote-resources-plugin.version}</versionRange> - <goals> - <goal>process</goal> - </goals> - </pluginExecutionFilter> - <action> - <ignore/> - </action> - </pluginExecution> - </pluginExecutions> - </lifecycleMappingMetadata> - </configuration> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-deploy-plugin</artifactId> </plugin> - </plugins> - </pluginManagement> - </build> - </profile> - - <profile> - <id>strict</id> - <build> - <pluginManagement> - <plugins> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>${maven-compiler-plugin.version}</version> - <dependencies> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-compiler-javac-errorprone</artifactId> - <version>${plexus-compiler-javac-errorprone.version}</version> - </dependency> - </dependencies> - <configuration> - <source>${maven.compiler.source}</source> - <target>${maven.compiler.target}</target> - <compilerId>javac-with-errorprone</compilerId> - <forceJavacCompilerUse>true</forceJavacCompilerUse> - </configuration> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-release-plugin</artifactId> </plugin> - </plugins> - </pluginManagement> - </build> - </profile> - - <!-- This profile is used to release signed jars to the Apache Nexus repository. - This must be executed from a git repository set at the proper Release branch (e.g., 1.1.X) - and at a Release Candidate tag (e.g., 1.1.0-RC1). - The pom version in the release branch must be properly set to something like: "1.1.0". - The pom version in the master would be set to something like: "1.2.0-SNAPSHOT". - Test Command: mvn clean verify -Pnexus-jars -DskipTests=true - Command: mvn clean deploy -Dnexus-jars - Verify Command (from terminal): gpg -v --verify $ASC $FILE # dashdashverify - --> - <profile> - <id>nexus-jars</id> - <build> - <pluginManagement> - <plugins> <plugin> - <groupId>pl.project13.maven</groupId> - <artifactId>git-commit-id-plugin</artifactId> - <version>${git-commit-id-plugin.version}</version> - <executions> - <execution> - <goals> - <goal>revision</goal> - </goals> - <phase>initialize</phase> - </execution> - </executions> - <configuration> - <dotGitDirectory>${project.basedir}/.git</dotGitDirectory> - <dateFormatTimeZone>UTC</dateFormatTimeZone> - <verbose>false</verbose> - <skipPoms>false</skipPoms> - <format>json</format> - <generateGitPropertiesFile>true</generateGitPropertiesFile> - <generateGitPropertiesFilename>${project.build.directory}/git.properties</generateGitPropertiesFilename> - <failOnNoGitDirectory>true</failOnNoGitDirectory> - <failOnUnableToExtractRepoInfo>true</failOnUnableToExtractRepoInfo> - <commitIdGenerationMode>full</commitIdGenerationMode> - <includeOnlyProperties> - <includeProperty>git.branch</includeProperty> - <includeProperty>git.commit.id.full</includeProperty> - <includeProperty>git.commit.time</includeProperty> - <includeProperty>git.commit.user.email</includeProperty> - <includeProperty>git.tags</includeProperty> - </includeOnlyProperties> - <gitDescribe> - <skip>false</skip> - <always>true</always> - <abbrev>7</abbrev> - <dirty>-dirty</dirty> - <tags>true</tags> - <forceLongFormat>true</forceLongFormat> - </gitDescribe> - </configuration> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> </plugin> - - <!-- Extends Apache Parent pom, pluginManagement--> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - <version>${maven-jar-plugin.version}</version> - <executions> - <execution> - <id>default-jar</id> - <goals> - <goal>jar</goal> - </goals> - </execution> - <execution> - <id>default-test-jar</id> - <goals> - <goal>test-jar</goal> - </goals> - </execution> - </executions> - <configuration> - <archive> - <manifest> - <addDefaultEntries>false</addDefaultEntries> - <addDefaultSpecificationEntries>false</addDefaultSpecificationEntries> - <addDefaultImplementationEntries>false</addDefaultImplementationEntries> - </manifest> - <manifestEntries> - <Build-Jdk>${java.version} (${java.vendor} ${java.vm.version})</Build-Jdk> - <Build-OS>${os.name} ${os.arch} ${os.version}</Build-OS> - <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor> - <GroupId-ArtifactId>${project.groupId}:${project.artifactId}</GroupId-ArtifactId> - <git-branch>${git.branch}</git-branch> - <git-commit-id>${git.commit.id.full}</git-commit-id> - <git-commit-time>${git.commit.time}</git-commit-time> - <git-commit-user-email>${git.commit.user.email}</git-commit-user-email> - <git-commit-tag>${git.tags}</git-commit-tag> - </manifestEntries> - </archive> - </configuration> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> </plugin> - - <!-- We want to sign the artifacts, POM, and all attached artifacts --> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-gpg-plugin</artifactId> - <version>${maven-gpg-plugin.version}</version> - <executions> - <execution> - <id>sign-artifacts</id> - <phase>verify</phase> - <goals> - <goal>sign</goal> - </goals> - </execution> - </executions> - <configuration> - <gpgArguments> - <arg>--verbose</arg> - <!-- prints the algorithm used --> - <arg>--personal-digest-preferences=SHA512</arg> - </gpgArguments> - </configuration> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-enforcer-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.rat</groupId> + <artifactId>apache-rat-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-source-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.jacoco</groupId> + <artifactId>jacoco-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + </plugin> + <plugin> + <groupId>org.eluder.coveralls</groupId> + <artifactId>coveralls-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>pl.project13.maven</groupId> + <artifactId>git.commit-id-plugin</artifactId> </plugin> - </plugins> - </pluginManagement> - - <plugins> - <plugin> - <groupId>pl.project13.maven</groupId> - <artifactId>git-commit-id-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-jar-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-gpg-plugin</artifactId> - </plugin> - </plugins> - </build> - </profile> - <!-- Disable source release assembly for 'apache-release' profile. - This is performed from a script outside Maven - --> - <profile> - <id>apache-release</id> - <build> - <plugins> - <plugin> - <artifactId>maven-assembly-plugin</artifactId> - <version>${maven-assembly-plugin.version}</version> - <executions> - <execution> - <id>source-release-assembly</id> - <phase>none</phase> - </execution> - </executions> - </plugin> </plugins> - </build> - </profile> - </profiles> + </build> + <profiles> + <!-- Ignore nuisance warning from Apache parent plugin: + "maven-remote-resources-plugin (goal "process") is ignored by m2e". + This also should fix the Maven warning that it can't find the lifecycle-mapping jar. + This profile is only active when the property "m2e.version" is set, + which is the case when building in Eclipse with m2e. + The ignore below tells m2eclipse to skip the execution. + --> + <profile> + <id>m2e</id> + <activation> + <property> + <name>m2e.version</name> + </property> + </activation> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>${lifecycle-mapping.version}</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-remote-resources-plugin</artifactId> + <versionRange>${maven-remote-resources-plugin.version}</versionRange> + <goals> + <goal>process</goal> + </goals> + </pluginExecutionFilter> + <action> + <ignore/> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + + <profile> + <id>strict</id> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-compiler-plugin</artifactId> + <version>${maven-compiler-plugin.version}</version> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-compiler-javac-errorprone</artifactId> + <version>${plexus-compiler-javac-errorprone.version}</version> + </dependency> + </dependencies> + <configuration> + <source>${maven.compiler.source}</source> + <target>${maven.compiler.target}</target> + <compilerId>javac-with-errorprone</compilerId> + <forceJavacCompilerUse>true</forceJavacCompilerUse> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + </profile> + + <!-- This profile is used to release signed jars to the Apache Nexus repository. + This must be executed from a git repository set at the proper Release branch (e.g., 1.1.X) + and at a Release Candidate tag (e.g., 1.1.0-RC1). + The pom version in the release branch must be properly set to something like: "1.1.0". + The pom version in the master would be set to something like: "1.2.0-SNAPSHOT". + Test Command: mvn clean verify -Pnexus-jars -DskipTests=true + Command: mvn clean deploy -Dnexus-jars + Verify Command (from terminal): gpg -v --verify $ASC $FILE # dashdashverify + --> + <profile> + <id>nexus-jars</id> + <build> + <pluginManagement> + <plugins> + <plugin> + <groupId>pl.project13.maven</groupId> + <artifactId>git-commit-id-plugin</artifactId> + <version>${git-commit-id-plugin.version}</version> + <executions> + <execution> + <goals> + <goal>revision</goal> + </goals> + <phase>initialize</phase> + </execution> + </executions> + <configuration> + <dotGitDirectory>${project.basedir}/.git</dotGitDirectory> + <dateFormatTimeZone>UTC</dateFormatTimeZone> + <verbose>false</verbose> + <skipPoms>false</skipPoms> + <format>json</format> + <generateGitPropertiesFile>true</generateGitPropertiesFile> + <generateGitPropertiesFilename>${project.build.directory}/git.properties</generateGitPropertiesFilename> + <failOnNoGitDirectory>true</failOnNoGitDirectory> + <failOnUnableToExtractRepoInfo>true</failOnUnableToExtractRepoInfo> + <commitIdGenerationMode>full</commitIdGenerationMode> + <includeOnlyProperties> + <includeProperty>git.branch</includeProperty> + <includeProperty>git.commit.id.full</includeProperty> + <includeProperty>git.commit.time</includeProperty> + <includeProperty>git.commit.user.email</includeProperty> + <includeProperty>git.tags</includeProperty> + </includeOnlyProperties> + <gitDescribe> + <skip>false</skip> + <always>true</always> + <abbrev>7</abbrev> + <dirty>-dirty</dirty> + <tags>true</tags> + <forceLongFormat>true</forceLongFormat> + </gitDescribe> + </configuration> + </plugin> + + <!-- Extends Apache Parent pom, pluginManagement--> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>${maven-jar-plugin.version}</version> + <executions> + <execution> + <id>default-jar</id> + <goals> + <goal>jar</goal> + </goals> + </execution> + <execution> + <id>default-test-jar</id> + <goals> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + <configuration> + <archive> + <manifest> + <addDefaultEntries>false</addDefaultEntries> + <addDefaultSpecificationEntries>false</addDefaultSpecificationEntries> + <addDefaultImplementationEntries>false</addDefaultImplementationEntries> + </manifest> + <manifestEntries> + <Build-Jdk>${java.version} (${java.vendor} ${java.vm.version})</Build-Jdk> + <Build-OS>${os.name} ${os.arch} ${os.version}</Build-OS> + <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor> + <GroupId-ArtifactId>${project.groupId}:${project.artifactId}</GroupId-ArtifactId> + <git-branch>${git.branch}</git-branch> + <git-commit-id>${git.commit.id.full}</git-commit-id> + <git-commit-time>${git.commit.time}</git-commit-time> + <git-commit-user-email>${git.commit.user.email}</git-commit-user-email> + <git-commit-tag>${git.tags}</git-commit-tag> + </manifestEntries> + </archive> + </configuration> + </plugin> + + <!-- We want to sign the artifacts, POM, and all attached artifacts --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-gpg-plugin</artifactId> + <version>${maven-gpg-plugin.version}</version> + <executions> + <execution> + <id>sign-artifacts</id> + <phase>verify</phase> + <goals> + <goal>sign</goal> + </goals> + </execution> + </executions> + <configuration> + <gpgArguments> + <arg>--verbose</arg> + <!-- prints the algorithm used --> + <arg>--personal-digest-preferences=SHA512</arg> + </gpgArguments> + </configuration> + </plugin> + </plugins> + </pluginManagement> + + <plugins> + <plugin> + <groupId>pl.project13.maven</groupId> + <artifactId>git-commit-id-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-gpg-plugin</artifactId> + </plugin> + </plugins> + </build> + </profile> + <!-- Disable source release assembly for 'apache-release' profile. + This is performed from a script outside Maven + --> + <profile> + <id>apache-release</id> + <build> + <plugins> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>${maven-assembly-plugin.version}</version> + <executions> + <execution> + <id>source-release-assembly</id> + <phase>none</phase> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + + <modules> + <module>datasketches-memory-base</module> + <module>datasketches-memory-java11</module> + <module>datasketches-memory-multirelease</module> + </modules> + </project> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
