In response to a previous thread where I was asked to share my knowledge
regarding a native image build of Qpid Broker-j, here's a progress update.
Using the 8.0.6 release I have updated broker-j to Java 17 and built a
native image using the 22.2 GraalVM compiler. In addition, my build
scripts are modified to support running as a standard JVM as well as a
native image )outside of a container). In addition, the build currently
creates a Docker image containing the native image broker-j. I have not
tested every possible function and feature as I do not have a working
test suite capable of automatically testing every function (if anyone
knows of something PLEASE provide a reference to it). Unit tests have
only gotten me so far with the native image build and testing. I wrote a
test based on the Qpid JMS client code to automate testing message
processing and I have successfully run millions of messages through the
native image broker-j using a topic exchange and BDB, Memory, JSON, and
JDBC (PostgreSQL) storage types. The Derby storage type will not
currently support a native image due to how Derby uses reflection (Maybe
I can address and solve this, but that would be a separate project).
More testing is needed for functionality such as certificate management
(my next task) and other exchange types. I am currently working on some
documentation to help other developers understand the build and test
process when converting a Java application such as this to a native image.
The project is located here and since this is the only thing I am
currently working on, I'm very active at updating it:
https://github.com/Rohan427/Qpid4Graal
Paul G. Allen
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org
For additional commands, e-mail: users-h...@qpid.apache.org