LevelDB
JVM since1.2.0 Native since1.2.0
Using LevelDB as persistent EIP store
Maven coordinates
Or add the coordinates to your existing project:
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifactId>camel-quarkus-leveldb</artifactId>
</dependency>
Check the User guide for more information about writing Camel Quarkus applications.
Camel Quarkus limitations
In native mode the extension uses a port of LevelDB written in Java (documentation), which is within 10% of the performance of the C++ original. Please upvote this issue if you do not like the present state.
Serialization is not supported on GraalVM. Extension has to use serializationization based on Jackson. Aggregation repository in native has to be constructed in one of the following ways:
-
Use class
QuarkusLevelDBAggregationRepository
instead ofLevelDBAggregationRepository
. -
Configure jackson serializer on
LevelDBAggregationRepository
by callingrepo.setSerializer(new JacksonLevelDBSerializer());
Jackson serializer has limitation towards binary content. If payload object contains binary data (does not concern payloads which are completely binary), Jackson serialization and deserialization won’t work correctly.
To avoid this, define your own jackson serializer/deserealizer via Module
and provide it to the aggragation repository
(you can use for example the constructor of QuarkusLevelDBAggregationRepository
).