root
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.yahoo.oak</groupId>
<artifactId>root</artifactId>
<version>0.2.5</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>com.yahoo.oak</groupId>
<artifactId>root</artifactId>
<packaging>pom</packaging>
<version>0.2.5</version>
<modules>
<module>core</module>
<module>benchmarks/jmh</module>
<module>benchmarks/synchrobench</module>
<!--
This module is a workaround to a bug with a nexus issue:
https://issues.sonatype.org/browse/NEXUS-19853
Namely, the last module must be deployed, otherwise nothing is deployed.
-->
<module>benchmarks/nexus-deploy-stub</module>
</modules>
<!--<name>Oak: Off-heap Allocated Keys</name>-->
<name>Oak root</name>
<description>A scalable, concurrent, in-memory Key Value (KV) map.
Oak implements a concurrent Key-Value map that can keep all keys and values off-heap.
This enables working with bigger heap sizes than JVM's managed heap.
OakMap implements an API similar to the industry standard Java8 ConcurrentNavigableMap API.
It provides strong (atomic) semantics for read, write, and read-modify-write, as well as (non-atomic) range query (scan) operations, both forward and backward.
OakMap is optimized for big keys and values, in particular, for incremental maintenance of objects (update in-place).
It is faster and scales better with additional CPU cores than the popular Java ConcurrentNavigableMap ConcurrentSkipListMap</description>
<url>https://github.com/yahoo/Oak</url>
<organization>
<name>Yahoo Inc.</name>
<url>https://github.com/yahoo</url>
</organization>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/yahoo/Oak/issues</url>
</issueManagement>
<developers>
<developer>
<name>Anastasia Braginsky</name>
<email>sanastas@yahooinc.com</email>
<organization>Yahoo Inc.</organization>
<organizationUrl>https://github.com/yahoo</organizationUrl>
<timezone>UTC+02:00</timezone>
</developer>
<developer>
<name>Hagar Meir</name>
<timezone>UTC+02:00</timezone>
</developer>
<developer>
<name>Dmitry Basin</name>
<email>dbasin@yahooinc.com</email>
<organization>Yahoo Inc.</organization>
<organizationUrl>https://github.com/yahoo</organizationUrl>
<timezone>UTC+02:00</timezone>
</developer>
<developer>
<name>Gali Sheffi</name>
<timezone>UTC+02:00</timezone>
</developer>
<developer>
<name>Eshcar Hillel</name>
<email>eshcar@yahooinc.com</email>
<organization>Yahoo Inc.</organization>
<organizationUrl>https://github.com/yahoo</organizationUrl>
<timezone>UTC+02:00</timezone>
</developer>
<developer>
<name>Edward Bortnikov</name>
<timezone>UTC+02:00</timezone>
</developer>
<developer>
<name>Eran Meir</name>
<timezone>UTC+02:00</timezone>
</developer>
<developer>
<name>Liran Funaro</name>
<email>liran.funaro@yahooinc.com</email>
<organization>Yahoo Inc.</organization>
<organizationUrl>https://github.com/yahoo</organizationUrl>
<timezone>UTC+02:00</timezone>
</developer>
</developers>
<scm>
<developerConnection>scm:git:ssh://git@github.com/yahoo/Oak.git</developerConnection>
<url>https://github.com/yahoo/Oak.git</url>
<tag>root-0.2.5</tag>
</scm>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<properties>
<java.version>1.8</java.version>
<!-- Set default jacoco argument -->
<jacoco.argLine />
<!-- Github actions are limited to 7g and we want to make sure we don't exceed that -->
<tests.heapLimit>2g</tests.heapLimit>
<tests.directLimit>2g</tests.directLimit>
<!-- Maven Plugin Versioning -->
<maven-clean-plugin.version>2.5</maven-clean-plugin.version>
<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
<nexus-staging-maven-plugin.version>1.6.7</nexus-staging-maven-plugin.version>
<maven-release-plugin.version>2.5.3</maven-release-plugin.version>
<maven-source-plugin.version>2.2.1</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version>
<maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.sonatype.plugins</groupId>
<artifactId>nexus-staging-maven-plugin</artifactId>
<version>${nexus-staging-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<serverId>ossrh</serverId>
<nexusUrl>https://oss.sonatype.org/</nexusUrl>
<autoReleaseAfterClose>false</autoReleaseAfterClose>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${maven-release-plugin.version}</version>
<configuration>
<localCheckout>true</localCheckout>
<pushChanges>false</pushChanges>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
<goals>deploy nexus-staging:release</goals>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<!-- TODO Fix Javadoc and set this to true -->
<failOnError>false</failOnError>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<configLocation>codestyle/checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<encoding>UTF-8</encoding>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
</configuration>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.29</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>
@{jacoco.argLine}
-Xmx${tests.heapLimit}
-XX:MaxDirectMemorySize=${tests.directLimit}
</argLine>
<reuseForks>false</reuseForks>
<forkCount>1</forkCount>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<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>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<!-- TODO Fix Javadoc and set this to true -->
<failOnError>false</failOnError>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java-17-profile</id>
<activation>
<jdk>[17,)</jdk>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>
@{jacoco.argLine}
-Xmx${tests.heapLimit}
-XX:MaxDirectMemorySize=${tests.directLimit}
--add-modules jdk.incubator.foreign
--add-opens jdk.incubator.foreign/jdk.internal.foreign=ALL-UNNAMED
--add-opens java.base/java.nio=ALL-UNNAMED
--enable-native-access=ALL-UNNAMED
</argLine>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.yahoo.oak</groupId>
<artifactId>oak</artifactId>
<version>0.2.5</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>