You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by wl...@apache.org on 2022/11/03 17:12:10 UTC

[datasketches-memory] branch refactorInterfaces updated (4b7c71e -> a7f129d)

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

wlauer pushed a change to branch refactorInterfaces
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git


    from 4b7c71e  removing MurmurHash3v2IT.java
     new fd4041a  Fixing memory/request server interdependency
     new a7f129d  Fixing git build

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


Summary of changes:
 .github/workflows/maven.yml                        |  22 ---
 .../datasketches/memory/DefaultMemoryFactory.java  |   6 +-
 .../memory/DefaultMemoryRequestServer.java         |  20 +--
 tools/scripts/package-multi-release-jar.sh         | 189 ---------------------
 tools/scripts/package-single-release-jar.sh        | 146 ----------------
 tools/scripts/test-jar.sh                          |  96 -----------
 6 files changed, 15 insertions(+), 464 deletions(-)
 delete mode 100755 tools/scripts/package-multi-release-jar.sh
 delete mode 100755 tools/scripts/package-single-release-jar.sh
 delete mode 100755 tools/scripts/test-jar.sh


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


[datasketches-memory] 01/02: Fixing memory/request server interdependency

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

wlauer pushed a commit to branch refactorInterfaces
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git

commit fd4041a27406848b7a274d2ca17debd6070cd275
Author: Will Lauer <wl...@yahooinc.com>
AuthorDate: Thu Nov 3 11:59:16 2022 -0500

    Fixing memory/request server interdependency
---
 .../datasketches/memory/DefaultMemoryFactory.java    |  6 +++++-
 .../memory/DefaultMemoryRequestServer.java           | 20 ++++++++++----------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java b/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java
index 11619d3..e5998c5 100644
--- a/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java
+++ b/src/main/java/org/apache/datasketches/memory/DefaultMemoryFactory.java
@@ -34,10 +34,14 @@ import static org.apache.datasketches.memory.internal.Util.negativeCheck;
  */
 public class DefaultMemoryFactory implements MemoryFactory {
     
-    public final static MemoryFactory DEFAULT = DefaultMemoryRequestServer.DEFAULT.getFactory();
+    public final static MemoryFactory DEFAULT = new DefaultMemoryFactory();
     
     private final MemoryRequestServer memoryRequestServer;
     
+    public DefaultMemoryFactory() {
+        this(DefaultMemoryRequestServer.DEFAULT);
+    }
+    
     public DefaultMemoryFactory(MemoryRequestServer memoryRequestServer) {
         this.memoryRequestServer = memoryRequestServer;
     }
diff --git a/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java b/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
index 1393d7c..3759dce 100644
--- a/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
+++ b/src/main/java/org/apache/datasketches/memory/DefaultMemoryRequestServer.java
@@ -68,8 +68,8 @@ public final class DefaultMemoryRequestServer implements MemoryRequestServer {
     
   public static final DefaultMemoryRequestServer DEFAULT = new DefaultMemoryRequestServer();
     
-  private MemoryFactory factory = new DefaultMemoryFactory(this);
-
+  private MemoryFactory factory;
+  
   /**
    * {@inheritDoc}
    *
@@ -77,6 +77,9 @@ public final class DefaultMemoryRequestServer implements MemoryRequestServer {
    */
   @Override
   public WritableMemory request(final WritableMemory currentWritableMemory, final long capacityBytes) {
+    if (factory == null) {
+        factory = DefaultMemoryFactory.DEFAULT;
+    }
     final WritableMemory wmem = factory.allocate((int)capacityBytes, currentWritableMemory.getByteOrder());
     return wmem;
   }
@@ -92,15 +95,12 @@ public final class DefaultMemoryRequestServer implements MemoryRequestServer {
   public void requestClose(final WritableMemory memToRelease, final WritableMemory newMemory) {
     //do nothing
   }
-  
-  /**
-   * Get the associated {@link MemoryFactory}. This has package level access so that the default
-   * {@link DefaultMemoryFactory} can correctly initialize itself with a cross reference to this.
-   * 
-   * @return The current {@link MemoryFactory}
-   */
-  MemoryFactory getFactory() {
+
+  public MemoryFactory getFactory() {
     return factory;
   }
 
+  public void setFactory(MemoryFactory factory) {
+    this.factory = factory;
+  }
 }


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


[datasketches-memory] 02/02: Fixing git build

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

wlauer pushed a commit to branch refactorInterfaces
in repository https://gitbox.apache.org/repos/asf/datasketches-memory.git

commit a7f129d3aa831f8bf2c7f2391d3d0a97ad85cf09
Author: Will Lauer <wl...@yahooinc.com>
AuthorDate: Thu Nov 3 12:11:04 2022 -0500

    Fixing git build
---
 .github/workflows/maven.yml                 |  22 ----
 tools/scripts/package-multi-release-jar.sh  | 189 ----------------------------
 tools/scripts/package-single-release-jar.sh | 146 ---------------------
 tools/scripts/test-jar.sh                   |  96 --------------
 4 files changed, 453 deletions(-)

diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 22fc03f..89af810 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -54,22 +54,6 @@ jobs:
           impl: hotspot
           targets: 'JAVA11_HOME'
 
-      - name: Install JDK 12
-        uses: AdoptOpenJDK/install-jdk@v1
-        with:
-          version: '12'
-          architecture: x64
-          impl: hotspot
-          targets: 'JAVA12_HOME'
-
-      - name: Install JDK 13
-        uses: AdoptOpenJDK/install-jdk@v1
-        with:
-          version: '13'
-          architecture: x64
-          impl: hotspot
-          targets: 'JAVA13_HOME'
-
       - name: Install Matrix JDK
         uses: AdoptOpenJDK/install-jdk@v1
         with:
@@ -103,12 +87,6 @@ jobs:
           -Dgpg.skip=true
           --toolchains .github/workflows/.toolchains.xml
 
-      # The GitTag for CI purposes is irrelevant
-      - name: Custom build script
-        run: |
-          ./tools/scripts/package-single-release-jar.sh $JAVA_HOME x.y.z .
-        shell: bash
-
       - name: Test & Report
         if: ${{ matrix.jdk == 8 && success() }}
         run: >
diff --git a/tools/scripts/package-multi-release-jar.sh b/tools/scripts/package-multi-release-jar.sh
deleted file mode 100755
index 57b423e..0000000
--- a/tools/scripts/package-multi-release-jar.sh
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/bin/bash -e
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This is a general bash script to build a datasketches-memory-X.jar
-# with multi-release functionality.  The sources, test-sources, tests and
-# javadoc jars are also included in the output.
-# It does use git and also uses the script get-git-properties.sh.
-#
-# NOTE: This script assumes that `mvn package` has been run prior to invocation.
-#       By default, it is called from the maven exec-plugin.
-
-#  Required Input Parameters:
-#  \$1 = absolute path of JDK home directory
-#  \$2 = Git Version Tag for this deployment
-#       Example tag for SNAPSHOT         : 1.0.0-SNAPSHOT
-#       Example tag for Release Candidate: 1.0.0-RC1
-#       Example tag for Release          : 1.0.0
-#  \$3 = absolute path of project.basedir
-#  For example:  $ <this script>.sh $JAVA_HOME 2.1.0 .
-
-if [ -z "$1" ]; then echo "Missing JDK home";            exit 1; fi
-if [ -z "$2" ]; then echo "Missing Git Tag";             exit 1; fi
-if [ -z "$3" ]; then echo "Missing project.basedir";     exit 1; fi
-
-#### Extract JDKHome, Version and ProjectBaseDir from input parameters ####
-JDKHome=$1
-GitTag=$2
-ProjectBaseDir=$3 #this must be an absolute path
-
-#### Setup absolute directory references ####
-ProjectArtifactId="datasketches-memory"
-ScriptsDir=${ProjectBaseDir}/tools/scripts/
-
-#### Initialise path dependent variables ####
-OutputDir=target
-OutputMrJar=${OutputDir}/datasketches-memory-${GitTag}.jar
-OutputTests=${OutputDir}/datasketches-memory-${GitTag}-tests.jar
-OutputJavaDoc=${OutputDir}/datasketches-memory-${GitTag}-javadoc.jar
-OutputSources=${OutputDir}/datasketches-memory-${GitTag}-sources.jar
-OutputTestSources=${OutputDir}/datasketches-memory-${GitTag}-test-sources.jar
-
-ArchiveDir=${OutputDir}/archive-tmp
-PackageSources=${ArchiveDir}/sources
-PackageTestSources=${ArchiveDir}/test-sources
-PackageTests=${ArchiveDir}/tests
-PackageJavaDoc=${ArchiveDir}/javadoc
-PackageMrJar=${ArchiveDir}/jar
-
-#### Move to project directory ####
-cd ${ProjectBaseDir}
-
-#### Use JAVA_HOME to set required executables ####
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/jar" ]];     then Jar_="${JDKHome}/bin/jar";         else echo "No jar version could be found.";     exit 1; fi
-
-MemoryJava8Classes=datasketches-memory-java8/target/classes
-MemoryJava8TestClasses=datasketches-memory-java8/target/test-classes
-MemoryJava8Sources=datasketches-memory-java8/src/main/java
-MemoryJava8TestSources=datasketches-memory-java8/src/test/java
-MemoryJava8Docs=datasketches-memory-java8/target/apidocs/
-MemoryJava11Classes=datasketches-memory-java11/target/classes
-MemoryJava11Sources=datasketches-memory-java11/src/main/java
-MemoryJava8Docs=datasketches-memory-java8/target/apidocs/
-MavenArchiver=target/maven-archiver
-
-if ! [[ -x "${MemoryJava8Classes}" ]];        then echo "No compiled classes - run mvn package first.";        exit 1; fi
-if ! [[ -x "${MemoryJava8TestClasses}" ]];    then echo "No compiled test classes - run mvn package first.";   exit 1; fi
-if ! [[ -x "${MemoryJava11Classes}" ]];       then echo "No compiled classes - run mvn package first.";        exit 1; fi
-if ! [[ -x "${MemoryJava8Docs}" ]];           then echo "No javadocs - run mvn package first.";                exit 1; fi
-if ! [[ -x "${MavenArchiver}" ]];             then echo "No maven archiver - run mvn package first.";          exit 1; fi
-
-#### Cleanup and setup output directories ####
-echo
-if [ -d "$OutputDir" ]; then rm -f $OutputDir/*.jar; fi
-if [ -d "$ArchiveDir" ]; then rm -r $ArchiveDir; fi
-
-mkdir -p $PackageSources
-mkdir -p $PackageTestSources
-mkdir -p $PackageTests
-mkdir -p $PackageJavaDoc
-mkdir -p $PackageMrJar
-
-#### JAR Metadata function
-prepare_jar () {
-  JarBase=$1
-  JarMeta=${JarBase}/META-INF
-  JarMaven=${JarMeta}/maven/org.apache.datasketches/datasketches-memory
-
-  mkdir -p ${JarMeta}/versions/11
-  mkdir -p ${JarMaven}
-  
-  #### Generate DEPENDENCIES ####
- cat >> ${JarMeta}/DEPENDENCIES<< EOF
-// ------------------------------------------------------------------
-// Transitive dependencies of this project determined from the
-// maven pom organized by organization.
-// ------------------------------------------------------------------
-EOF
-  
-  #### Copy LICENSE and NOTICE ####
-  cp LICENSE $JarMeta
-  cp NOTICE $JarMeta
-  
-  #### Copy pom.properties
-  cp ${MavenArchiver}/pom.properties $JarMaven
-  cp pom.xml $JarMaven
-  
-}
-
-#### Generate MANIFEST.MF ####
-cat >> ${ArchiveDir}/MANIFEST.MF<< EOF
-Manifest-Version: 1.0
-Created-By: Apache Datasketches Memory package-mr-jar.sh
-Multi-Release: true
-EOF
-#### Generate git.properties file ####
-echo "$($ScriptsDir/get-git-properties.sh $ProjectBaseDir $ProjectArtifactId $GitTag)" >> ${ArchiveDir}/MANIFEST.MF
-
-###########################
-#### MULTI-RELEASE JAR ####
-###########################
-prepare_jar $PackageMrJar
-#### Copy java 8 compiled classes to target/jar
-rsync -q -a -I --filter="- .*" ${MemoryJava8Classes}/org $PackageMrJar
-#### Copy java 11 compiled classes to target/jar/META-INF/versions/11
-rsync -q -a -I --filter="- .*" ${MemoryJava11Classes}/org ${PackageMrJar}/META-INF/versions/11
-cp ${MemoryJava11Classes}/module-info.class ${PackageMrJar}/META-INF/versions/11
-
-${Jar_} cfm $OutputMrJar ${ArchiveDir}/MANIFEST.MF -C $PackageMrJar .
-echo "Created multi-release jar ${OutputMrJar}"
-
-###########################
-####     TESTS JAR     ####
-###########################
-prepare_jar $PackageTests
-#### Copy java 8 compiled test classes to target/jar
-rsync -q -a -I --filter="- .*" ${MemoryJava8TestClasses}/org $PackageTests
-
-${Jar_} cfm $OutputTests ${ArchiveDir}/MANIFEST.MF -C $PackageTests .
-echo "Created tests jar ${OutputTests}"
-
-###########################
-####    SOURCES JAR    ####
-###########################
-prepare_jar $PackageSources
-#### Copy java 8 source files to target/sources
-rsync -q -a -I --filter="- .*" ${MemoryJava8Sources}/org $PackageSources
-#### Copy java 11 source files to target/sources/META-INF/versions/11
-rsync -q -a -I --filter="- .*" ${MemoryJava11Sources}/org ${PackageSources}/META-INF/versions/11
-cp ${MemoryJava11Sources}/module-info.java ${PackageSources}/META-INF/versions/11
-
-${Jar_} cfm $OutputSources ${ArchiveDir}/MANIFEST.MF -C $PackageSources .
-echo "Created sources jar ${OutputSources}"
-
-###########################
-####  TEST SOURCES JAR ####
-###########################
-prepare_jar $PackageTestSources
-#### Copy java 8 test source files to target/test-sources
-rsync -q -a -I --filter="- .*" ${MemoryJava8TestSources}/org $PackageTestSources
-
-${Jar_} cfm $OutputTestSources ${ArchiveDir}/MANIFEST.MF -C $PackageTestSources .
-echo "Created test sources jar ${OutputTestSources}"
-
-###########################
-####    JAVADOC JAR    ####
-###########################
-prepare_jar $PackageJavaDoc
-
-rsync -q -a -I --filter="- .*" ${MemoryJava8Docs} $PackageJavaDoc
-${Jar_} cfm $OutputJavaDoc ${ArchiveDir}/MANIFEST.MF -C $PackageJavaDoc .
-echo "Created javadoc jar ${OutputJavaDoc}"
-
-echo "$($ScriptsDir/test-jar.sh $JDKHome $GitTag $OutputMrJar $ProjectBaseDir)"
diff --git a/tools/scripts/package-single-release-jar.sh b/tools/scripts/package-single-release-jar.sh
deleted file mode 100755
index e58ff57..0000000
--- a/tools/scripts/package-single-release-jar.sh
+++ /dev/null
@@ -1,146 +0,0 @@
-#!/bin/bash -e
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This is a general bash script to build a JDK version-specific
-# datasketches-memory-X.jar without multi-release functionality.
-# This is intended to be used for developers compiling from source
-# who do not wish to install several versions of the JDK on their
-# machine.
-# The script does not assume a POM file and does not use Maven.
-# It does use git and also uses the script get-git-properties.sh and
-# test-jar.sh scripts.
-
-#  Required Input Parameters:
-#  \$1 = absolute path of JDK home directory
-#  \$2 = Git Version Tag for this deployment
-#       Example tag for SNAPSHOT         : 1.0.0-SNAPSHOT
-#       Example tag for Release Candidate: 1.0.0-RC1
-#       Example tag for Release          : 1.0.0
-#  \$3 = absolute path of project.basedir
-#  For example:  $ <this script>.sh $JAVA_HOME 2.1.0 .
-
-if [ -z "$1" ]; then echo "Missing JDK home";            exit 1; fi
-if [ -z "$2" ]; then echo "Missing Git Tag";             exit 1; fi
-if [ -z "$3" ]; then echo "Missing project.basedir";     exit 1; fi
-
-#### Extract JDKHome, Version and ProjectBaseDir from input parameters ####
-JDKHome=$1
-GitTag=$2
-ProjectBaseDir=$3 #this must be an absolute path
-
-#### Setup absolute directory references ####
-ProjectArtifactId="memory"
-ScriptsDir=${ProjectBaseDir}/tools/scripts/
-MemoryMapFile=$ScriptsDir/assets/LoremIpsum.txt
-
-#### Initialise path dependent variables ####
-OutputDir=target
-OutputJar=${OutputDir}/org.apache.datasketches.memory-${GitTag}.jar
-
-PackageDir=${OutputDir}/archive-tmp
-PackageSrc=${PackageDir}/src
-PackageTests=${PackageDir}/test-classes
-PackageContents=${PackageDir}/contents
-PackageMeta=${PackageContents}/META-INF
-PackageManifest=${PackageMeta}/MANIFEST.MF
-
-MemoryJava8Src=datasketches-memory-java8/src/main/java
-MemoryJava11Src=datasketches-memory-java11/src/main/java
-
-#### Move to project directory ####
-cd ${ProjectBaseDir}
-
-#### Use JAVA_HOME to set required executables ####
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/java" ]];    then Java_="${JDKHome}/bin/java";       else echo "No java version could be found.";    exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/javac" ]];   then Javac_="${JDKHome}/bin/javac";     else echo "No javac version could be found.";   exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/jar" ]];     then Jar_="${JDKHome}/bin/jar";         else echo "No jar version could be found.";     exit 1; fi
-
-#### Parse java -version into major version number ####
-if [[ "$Java_" ]]; then
-  # This expression extracts the correct major version of the Java runtime.
-  # For older runtime versions, such as 1.8, the leading '1.' is removed.
-  # Adapted from this answer on StackOverflow:
-  # https://stackoverflow.com/questions/7334754/correct-way-to-check-java-version-from-bash-script/56243046#56243046
-  JavaVersion=$("$Java_" -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
-else
-  echo "No version information could be determined from installed JDK."; exit 1;
-fi
-
-# Exit if Java version too low (< 8) or too high (> 13)
-if [[ $JavaVersion -lt 8 || $JavaVersion -gt 13 ]]; then
-  echo "Java version not supported: " $JavaVersion; exit 1;
-fi
-
-#### Cleanup and setup output directories ####
-echo
-if [ -d "$OutputDir" ]; then rm -r $OutputDir; fi
-mkdir -p $PackageSrc
-mkdir -p $PackageTests
-mkdir -p $PackageMeta
-
-#### Copy LICENSE and NOTICE ####
-cp LICENSE $PackageMeta
-cp NOTICE $PackageMeta
-
-#### Generate MANIFEST.MF ####
-cat >> ${PackageManifest}<< EOF
-Manifest-Version: 1.0
-Created-By: Apache Datasketches Memory package-single-release-jar.sh
-Multi-Release: false
-EOF
-
-#### Generate git.properties file ####
-echo "$($ScriptsDir/get-git-properties.sh $ProjectBaseDir $ProjectArtifactId $GitTag)" >> $PackageManifest
-
-#### Copy source tree to target/src
-rsync -a -I $MemoryJava8Src $PackageSrc
-
-if [[ $JavaVersion -gt 10 ]]; then
-  #### Copy java 11 src trees to target/src, overwriting replacements
-  rsync -a -I $MemoryJava11Src $PackageSrc
-fi
-
-#### Compile ####
-echo "--- CLEAN & COMPILE ---"
-echo
-echo "Compiling with JDK version $JavaVersion..."
-if [[ $JavaVersion -lt 9 ]]; then
-  ${Javac_} -d $PackageContents $(find $PackageSrc -name '*.java')
-else
-  # Compile with JPMS exports
-  ${Javac_} \
-    --add-exports java.base/jdk.internal.ref=org.apache.datasketches.memory \
-    --add-exports java.base/sun.nio.ch=org.apache.datasketches.memory \
-    -d $PackageContents $(find $PackageSrc -name '*.java')
-fi
-echo
-echo "--- JARS ---"
-echo
-echo "Building JAR from ${PackageContents}..."
-${Jar_} cfm $OutputJar ${PackageManifest} -C $PackageContents .
-echo
-echo "Successfully built ${OutputJar}"
-
-# Uncomment this section to display JAR contents
-# echo "--- JAR CONTENTS ---"
-# echo
-# ${Jar_} tf ${OutputJar}
-# echo
-
-echo "$($ScriptsDir/test-jar.sh $JDKHome $GitTag $OutputJar $ProjectBaseDir)"
diff --git a/tools/scripts/test-jar.sh b/tools/scripts/test-jar.sh
deleted file mode 100755
index a565073..0000000
--- a/tools/scripts/test-jar.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/bin/bash -e
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-# This is a general bash script to test a datasketches-memory-X.jar.
-# This is intended to be used for C/I matrix testing or for quick
-# verification of the output from the assembly process.
-
-#  Required Input Parameters:
-#  \$1 = absolute path of JDK home directory
-#  \$2 = Git Version Tag for this deployment
-#       Example tag for SNAPSHOT         : 1.0.0-SNAPSHOT
-#       Example tag for Release Candidate: 1.0.0-RC1
-#       Example tag for Release          : 1.0.0
-#  \$3 = absolute path of datasketches-memory-X.jar
-#  \$4 = absolute path of project.basedir
-#  For example:  $ <this script>.sh $JAVA_HOME 2.1.0 target/datasketches-memory-X.jar .
-
-#### Extract JDKHome, Version, TestJar and ProjectBaseDir from input parameters ####
-JDKHome=$1
-GitTag=$2
-TestJar=$3
-ProjectBaseDir=$4
-
-#### Setup absolute directory references ####
-ProjectArtifactId="memory"
-ScriptsDir=${ProjectBaseDir}/tools/scripts/
-MemoryMapFile=$ScriptsDir/assets/LoremIpsum.txt
-
-#### Initialise path dependent variables ####
-PackageChecks=target/archive-tmp/checks
-
-#### Move to project directory ####
-cd ${ProjectBaseDir}
-
-#### Use JAVA_HOME to set required executables ####
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/java" ]];    then Java_="${JDKHome}/bin/java";       else echo "No java version could be found.";    exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/javac" ]];   then Javac_="${JDKHome}/bin/javac";     else echo "No javac version could be found.";   exit 1; fi
-if [[ -n "$JDKHome" ]] && [[ -x "${JDKHome}/bin/jar" ]];     then Jar_="${JDKHome}/bin/jar";         else echo "No jar version could be found.";     exit 1; fi
-
-#### Parse java -version into major version number ####
-if [[ "$Java_" ]]; then
-  # This expression extracts the correct major version of the Java runtime.
-  # For older runtime versions, such as 1.8, the leading '1.' is removed.
-  # Adapted from this answer on StackOverflow:
-  # https://stackoverflow.com/questions/7334754/correct-way-to-check-java-version-from-bash-script/56243046#56243046
-  JavaVersion=$("$Java_" -version 2>&1 | head -1 | cut -d'"' -f2 | sed '/^1\./s///' | cut -d'.' -f1)
-else
-  echo "No version information could be determined from installed JDK."; exit 1;
-fi
-
-# Exit if Java version too low (< 8) or too high (> 13)
-if [[ $JavaVersion -lt 8 || $JavaVersion -gt 13 ]]; then
-  echo "Java version not supported: " $JavaVersion; exit 1;
-fi
-
-#### Cleanup and setup output directories ####
-echo
-if [ -d "$PackageChecks" ]; then rm -r $PackageChecks; fi
-mkdir -p $PackageChecks
-
-echo "--- RUN JAR CHECKS ---"
-echo
-if [[ $JavaVersion -eq 8 ]]; then
-  ${Javac_} -cp $TestJar -d $PackageChecks $(find ${ScriptsDir/assets} -name '*.java')
-  ${Java_} -cp $PackageChecks:$TestJar org.apache.datasketches.memory.tools.scripts.CheckMemoryJar $MemoryMapFile
-else
-  ${Javac_} \
-    --add-modules org.apache.datasketches.memory \
-    -p "$TestJar" -d $PackageChecks $(find ${ScriptsDir/assets} -name '*.java')
-
-  ${Java_} \
-    --add-modules org.apache.datasketches.memory \
-    --add-exports java.base/jdk.internal.misc=org.apache.datasketches.memory \
-    --add-exports java.base/jdk.internal.ref=org.apache.datasketches.memory \
-    --add-opens java.base/java.nio=org.apache.datasketches.memory \
-    --add-opens java.base/sun.nio.ch=org.apache.datasketches.memory \
-    -p $TestJar -cp $PackageChecks org.apache.datasketches.memory.tools.scripts.CheckMemoryJar $MemoryMapFile
-fi
-echo
-echo "Successfully checked ${TestJar}"


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