chronicle-bytes
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-bytes</artifactId>
<version>2026.4</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 2013-2025 chronicle.software; SPDX-License-Identifier: Apache-2.0
-->
<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>net.openhft</groupId>
<artifactId>java-parent-pom</artifactId>
<version>2026.0</version>
<relativePath />
</parent>
<artifactId>chronicle-bytes</artifactId>
<version>2026.4</version>
<name>OpenHFT/Chronicle Bytes</name>
<description>Chronicle-Bytes</description>
<packaging>bundle</packaging>
<properties>
<zero.cost.assertions>disabled</zero.cost.assertions>
<!-- Define the target coverage thresholds as properties -->
<jacoco.line.coverage>0.710</jacoco.line.coverage>
<jacoco.branch.coverage>0.623</jacoco.branch.coverage>
<surefireArgLine />
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>third-party-bom</artifactId>
<version>2026.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-bom</artifactId>
<version>2026.13</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>assertions-${zero.cost.assertions}</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>posix</artifactId>
</dependency>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-core</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.jetbrains</groupId>
<artifactId>annotations</artifactId>
</dependency>
<!-- test dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>affinity</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>jlbh</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.openhft</groupId>
<artifactId>chronicle-test-framework</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<id>chronicle-enterprise-snapshots</id>
<name>Snapshot Repository</name>
<url>
https://nexus.chronicle.software/content/repositories/snapshots
</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>chronicle-enterprise-release</id>
<url>
https://nexus.chronicle.software/content/repositories/releases
</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<build>
<plugins>
<!-- SortPom moved to an opt-in profile to avoid automatic sorting during normal builds -->
<plugin>
<groupId>net.openhft</groupId>
<artifactId>binary-compatibility-enforcer-plugin</artifactId>
<executions>
<execution>
<phase>verify</phase>
<goals>
<goal>enforcer</goal>
</goals>
<configuration>
<referenceVersion>2026.0</referenceVersion>
<artifactsURI>https://teamcity.chronicle.software/repository/download</artifactsURI>
<binaryCompatibilityPercentageRequired>100.0</binaryCompatibilityPercentageRequired>
<extraOptions>
<!--This skips "internal" but checks "impl"-->
<extraOption>
<name>-keep-internal</name>
</extraOption>
<extraOption>
<name>skip-internal-packages</name>
<value>.*internal.*</value>
</extraOption>
</extraOptions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<mavenExecutorId>forked-path</mavenExecutorId>
<useReleaseProfile>false</useReleaseProfile>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<checkoutDirectory>${project.build.directory}/scmpublish/javadoc
</checkoutDirectory>
<checkinComment>Publishing javadoc for ${project.artifactId}:${project.version}
</checkinComment>
<content>${project.reporting.outputDirectory}</content>
<skipDeletedFiles>true</skipDeletedFiles>
<pubScmUrl>scm:git:git@github.com:OpenHFT/Chronicle-Bytes</pubScmUrl>
<scmBranch>gh-pages</scmBranch>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Automatic-Module-Name>chronicle.bytes</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<!--
generate maven dependencies versions file that can be used later
to install the right bundle in test phase.
The file is:
target/classes/META-INF/maven/dependencies.properties
-->
<plugin>
<groupId>org.apache.servicemix.tooling</groupId>
<artifactId>depends-maven-plugin</artifactId>
<executions>
<execution>
<id>generate-depends-file</id>
<goals>
<goal>generate-depends-file</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${surefireArgLine} ${jvm.requiredArgs}</argLine>
<forkCount>4</forkCount>
<reuseForks>true</reuseForks>
<runOrder>hourly</runOrder>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.groupId}.${project.artifactId}
</Bundle-SymbolicName>
<Bundle-Name>OpenHFT :: ${project.artifactId}</Bundle-Name>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>
net.openhft.chronicle.bytes.*;-noimport:=true
</Export-Package>
<Import-Package>
org.xerial.snappy;resolution:=optional,
*
</Import-Package>
</instructions>
</configuration>
<executions>
<!--
This execution makes sure that the manifest is available
when the tests are executed
-->
<execution>
<goals>
<goal>manifest</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- benchmark MMap latency with Byte -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<!-- PingPong test - run this first -->
<execution>
<id>MMapPing</id>
<goals>
<goal>java</goal>
</goals>
<configuration>
<skip>false</skip>
<mainClass>net.openhft.chronicle.bytes.perf.MMapPingPongMain</mainClass>
<classpathScope>test</classpathScope>
</configuration>
</execution>
<!-- PingPong test - run this second -->
<execution>
<id>MMapPong</id>
<goals>
<goal>java</goal>
</goals>
<configuration>
<skip>false</skip>
<mainClass>net.openhft.chronicle.bytes.perf.MMapPingPongMain</mainClass>
<classpathScope>test</classpathScope>
<systemProperties>
<property>
<key>pong</key>
<value>true</value>
</property>
</systemProperties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<scm>
<url>scm:git:git@github.com:OpenHFT/Chronicle-Bytes.git</url>
<connection>scm:git:git@github.com:OpenHFT/Chronicle-Bytes.git</connection>
<developerConnection>scm:git:git@github.com:OpenHFT/Chronicle-Bytes.git
</developerConnection>
<tag>chronicle-bytes-2026.4</tag>
</scm>
<profiles>
<profile>
<id>assertions</id>
<properties>
<zero.cost.assertions>enabled</zero.cost.assertions>
</properties>
</profile>
<profile>
<id>run-benchmarks</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<configuration>
<pom>microbenchmarks/pom.xml</pom>
<goals>clean,integration-test</goals>
<profiles>
<profile>run-benchmarks</profile>
</profiles>
<properties>
<bytes.version>${project.version}</bytes.version>
<skip.binary>true</skip.binary>
</properties>
<streamLogs>true</streamLogs>
</configuration>
<executions>
<execution>
<goals>
<goal>run</goal>
</goals>
<phase>test</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<configuration>
<classpathScope>test</classpathScope>
</configuration>
<executions>
<execution>
<id>NativeBytesArrayReadWriteJLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.NativeBytesReadWriteJLBH
</commandlineArgs>
</configuration>
</execution>
<execution>
<id>OnHeapBytesArrayReadWriteJLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.OnHeapBytesReadWriteJLBH
</commandlineArgs>
</configuration>
</execution>
<execution>
<id>ChunkedMappedBytesArrayReadWriteJLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.ChunkedMappedBytesReadWriteJLBH
</commandlineArgs>
</configuration>
</execution>
<execution>
<id>SingleMappedBytesArrayReadWriteJLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.SingleMappedBytesReadWriteJLBH
</commandlineArgs>
</configuration>
</execution>
<execution>
<id>ContentEqual2JLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.ContentEqual2JLBH
</commandlineArgs>
</configuration>
</execution>
<execution>
<id>ContentEqual20JLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.ContentEqual20JLBH
</commandlineArgs>
</configuration>
</execution>
<execution>
<id>ContentEqual128JLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.ContentEqual128JLBH
</commandlineArgs>
</configuration>
</execution>
<execution>
<id>ContentEqual8192JLBH</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>${java.home}/bin/java</executable>
<commandlineArgs>${jvm.requiredArgs} -Djvm.resource.tracing=false -classpath
%classpath net.openhft.chronicle.bytes.perf.ContentEqual8192JLBH
</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- Disable unit tests -->
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>