This Ada05 library contains various utility packages for building Ada05 applications. This includes:
- A logging framework close to Java log4j framework,
- Support for properties
- A serialization/deserialization framework for XML, JSON, CSV
- Ada beans framework
- Encoding/decoding framework (Base16, Base64, SHA, HMAC-SHA, AES-256)
- A composing stream framework (raw, files, buffers, pipes, sockets)
- Several concurrency tools (reference counters, counters, pools, fifos, arrays)
- Process creation and pipes
- Support for loading shared libraries (on Windows or Unix)
- HTTP client library on top of CURL or AWS
Ada Util also provides a small test utility library on top of Ahven or AUnit to help in writing unit tests. Ahven is the default testing framework as it provides better reports.
- Add support to set environment variables when launching a process (without changing the current process environment!)
- Fix compilation issues with GNAT 2021
- Fix serialization of Util.Beans.Objects holding arrays or maps
For a detailed description on how you can configure, build and install the library refer to the Installation guide. Otherwise, you can easily configure and build the library with the steps described below.
To use Ahven testing framework, configure and build as follows:
./configure
make
To use AUnit, build with the following commands:
./configure --enable-aunit
make
The unit tests are built and executed with:
make test
And unit tests are executed with (256 success, 0 failed):
bin/util_harness
For the installation, use the following command:
make install
Since the integration with Alire, you can build without running configure.
However, there are a number of checks and dependencies which are not verified
and you must run several commands manually, choosing the correct values for
UTIL_ASM_TYPE
and UTIL_OS
build variables. The trick is to give gprbuild
the Alire configuration project in .alire/utilada_conf.gpr
.
For a simple Linux 64-bit build, use:
gprbuild -aP.alire -Putilada_core -p
gprbuild -aP.alire -Putilada_base -p
gprbuild -aP.alire -Putilada_sys -p
gprbuild -aP.alire -Putilada_aws -p
gprbuild -aP.alire -Putilada_curl -p
gprbuild -aP.alire -Putilada_xml -p
For a Linux 32-bit build, use
gprbuild -aP.alire -Putilada_sys -p -XUTIL_OS=linux32
For Windows-64 try:
gprbuild -aP.alire -Putilada_sys -p -XUTIL_OS=win64
Checkout the file .alire/utilada_conf.gpr
for other alternatives.
You can then use gprinstall
for the installation:
gprinstall -aP.alire -Putilada_core -p
gprinstall -aP.alire -Putilada_base -p
gprinstall -aP.alire -Putilada_sys -p
gprinstall -aP.alire -Putilada_aws -p
gprinstall -aP.alire -Putilada_curl -p
gprinstall -aP.alire -Putilada_xml -p
I've never tried to build on Windows without msys2. I don't know if it works. I suspect there will be problems.
The samples can be built using:
gnatmake -Psamples