How fva-net/maxs-logger-java works
Purpose and packaging
maxs-logger-java is a Java 17/Maven library, not an application: consuming software uses it to produce MAXS .maxs XML log files. Its public operational entry point is src/main/java/de/fva_net/maxs/logger/MaxsLogger.java; routine implementations integrate through src/main/java/de/fva_net/maxs/logger/MaxsLoggableRoutine.java. Maven packaging, dependencies, and release coordinates are defined in pom.xml.
Logging façade and control boundary
MaxsLogger accepts logging requests, associates them with a loggable routine/context, and orchestrates validation plus XML notification output. MaxsLoggableRoutine is the principal extension boundary for REXS/model-side code: callers implement or supply routine metadata rather than coupling their domain models directly to XML persistence. Relevant paths:
• src/main/java/de/fva_net/maxs/logger/MaxsLogger.java
• src/main/java/de/fva_net/maxs/logger/MaxsLoggableRoutine.java
Message classification
MaxsMessageType defines the supported severity/category vocabulary (such as INFO, WARNING, and ERROR) used when creating notifications. This separates caller intent from the serialized XML representation and gives the logger a constrained message-type contract.
• src/main/java/de/fva_net/maxs/logger/MaxsMessageType.java
XML notification domain model
The logger serializes through dedicated XML-oriented DTOs rather than exposing file-format details to callers. Notification represents one logged event; Item represents associated attributes/items; KernelNotifications acts as the document-level notification collection/root. These types carry the required and non-zero attribute validation implied by the MAXS format.
• src/main/java/de/fva_net/maxs/logger/xml/Notification.java
• src/main/java/de/fva_net/maxs/logger/xml/Item.java
• src/main/java/de/fva_net/maxs/logger/xml/KernelNotifications.java
Primary flow and persistence
A consumer invokes MaxsLogger with a severity, message, routine/context, and optional structured attributes. The logger maps the request into Notification and Item objects, validates format-required fields, aggregates notifications in KernelNotifications, then writes an XML document to a .maxs file. The key boundary is between the public logger API and the XML schema model: callers work with logging semantics, while XML classes own serialized structure.
• src/main/java/de/fva_net/maxs/logger/MaxsLogger.java
• src/main/java/de/fva_net/maxs/logger/xml/KernelNotifications.java
• src/main/java/de/fva_net/maxs/logger/xml/Notification.java
Runtime, integration, and delivery
Runtime requirements are a Java 17+ JVM and local filesystem access for .maxs output. The library is built and published through Maven; GitHub Actions provide build and release automation under .github/workflows/. Its material external integration is REXS model-component usage through the routine abstraction, rather than a network service or server runtime.
• pom.xml
• .github/workflows/build.yml
• .github/workflows/release.yml
Main entry points: MaxsLogger.java MaxsLogger · KernelNotifications.java KernelNotifications · Notification.java Notification · pom.xml Maven package
Components 13
Public API
Logging semantics exposed to consuming software.
- MaxsLogger · Accepts requests and orchestrates validation and XML output.
src/main/java/de/fva_net/maxs/logger/MaxsLogger.java - MaxsLoggableRoutine · Decouples caller domain models from XML persistence.
src/main/java/de/fva_net/maxs/logger/MaxsLoggableRoutine.java - MaxsMessageType · Constrained INFO, WARNING, and ERROR vocabulary.
src/main/java/de/fva_net/maxs/logger/MaxsMessageType.java
MAXS XML Model
DTOs that own the serialized notification structure.
- Notification · Represents one logged event with format validation.
src/main/java/de/fva_net/maxs/logger/xml/Notification.java - Item · Represents structured notification attributes.
src/main/java/de/fva_net/maxs/logger/xml/Item.java - KernelNotifications · Aggregates notifications for one MAXS document.
src/main/java/de/fva_net/maxs/logger/xml/KernelNotifications.java
Build & Delivery
Maven packaging and CI release automation.
- Maven package · Defines Java 17 build, dependencies, and release coordinates.
pom.xml - Build workflow
.github/workflows/build.yml - Release workflow
.github/workflows/release.yml
Other components
- Consuming software · Uses the library to produce MAXS log files.
- REXS model code · Supplies routine metadata through the extension boundary.
- .maxs XML file · Serialized MAXS notification document.
- Java 17 JVM & filesystem · Executes the library and provides local file output.
Connections 16
- Consuming software → MaxsLogger: logs through
- REXS model code → MaxsLoggableRoutine: implements or supplies
- Consuming software → MaxsLoggableRoutine: provides context
- MaxsLogger → MaxsLoggableRoutine: associates routine
- Consuming software → MaxsMessageType: selects severity
- MaxsLogger → MaxsMessageType: classifies notifications
- MaxsLogger → Notification: maps request to
- MaxsLogger → Item: maps attributes to
- Notification → Item: contains attributes
- MaxsLogger → KernelNotifications: aggregates into
- KernelNotifications → Notification: contains
- KernelNotifications → .maxs XML file: serializes XML
- MaxsLogger → Java 17 JVM & filesystem: runs and writes via
- Maven package → MaxsLogger: packages library
- Build workflow → Maven package: builds
- Release workflow → Maven package: publishes