ProtoStream is a serialization library based on Protobuf data format. It is open source software released under the Apache License, v2.0. ProtoStream is part of the Infinispan data grid platform. For more information about Infinispan visit the project's website on https://infinispan.org
Add this dependency to your pom.xml
file:
<dependency>
<groupId>org.infinispan.protostream</groupId>
<artifactId>protostream</artifactId>
<version>5.0.1.Final</version>
</dependency>
The Java compiler discovers annotation processors differently, depending on the version and the options in use.
With Java up to version 21, it's enough to put the protostream-processor
dependency on the classpath and it
will be automatically discovered by the service loader mechanism. Another way, which is mandatory since Java 22,
is to use the --processor-path
option.
javac --processor-path /path/to/protostream-processor-5.0.1.Final.jar:... ...
Using Maven:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.12.1</version>
<configuration>
<!-- Annotation processors -->
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>org.infinispan.protostream</groupId>
<artifactId>protostream-processor</artifactId>
<version>5.0.1.Final</version>
</annotationProcessorPath>
</annotationProcessorPaths>
</configuration>
</plugin>
The annotation processor supports some configuration options:
protostream.debug
prints out debug information during the processing phase.protostream.fullyqualifiedannotations
when generating the.proto
files, the annotation names are stripped of the package name. This flag keeps the fully-qualified annotation names in the generated files.
You can pass these arguments to javac
using the -Aoption=value
argument.
The following pom.xml
snippet shows how to do it with Maven:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.12.1</version>
<configuration>
<compilerArgs>
<arg>-Aprotostream-debug=true</arg>
</compilerArgs>
<!-- Annotation processors -->
<annotationProcessorPaths>
<annotationProcessorPath>
<groupId>org.infinispan.protostream</groupId>
<artifactId>protostream-processor</artifactId>
<version>5.0.1.Final</version>
</annotationProcessorPath>
</annotationProcessorPaths>
</configuration>
</plugin>
Target runtime platform is Java 17 or newer.
Requires Java 17 or newer to build.
Maven 3.6.0 or newer.
Bug reports go here