OTM Java Toolkit verschijnt op Maven Central

Op 9 juli 2025 verscheen org.opentripmodel:otm-toolkit versie 1.0.1.0 op Maven Central. Acht dagen na de eerste officiële .NET-package, en met precies dezelfde bedoeling: OTM implementeren zonder de specificatie met de hand na te typen.
Eén regel in je pom.xml, en de entiteiten van de standaard staan in je project.
Eerst even: wat is OTM? Het Open Trip Model is de open standaard waarmee partijen in transport en logistiek ritgegevens uitwisselen — ritten, zendingen, transportorders, voertuigen, locaties, goederen, acties en events — als lichtgewicht JSON over een REST-API.
De reden dat dit ertoe doet is niet technisch maar organisatorisch. Een verlader praat met meerdere vervoerders, die praten weer met meerdere verladers, en er zit een wegbeheerder, een douanesysteem en een statistiekbureau omheen. Zonder gedeelde taal is elk van die verbindingen maatwerk. OTM wordt sinds 2018 beheerd door de Stichting Uniforme Transport Code samen met TLN, evofenedex en DALTI, en elke wijziging wordt openbaar besproken.
Eén artifact, drie verantwoordelijkheden
Waar de .NET-kant koos voor drie losse NuGet-packages, levert Java één artifact met daarin dezelfde driedeling:
otm.model.entities— de OTM v5-entiteiten als Java-klassen. Trip, Consignment, Vehicle, Location, Actor, Constraint, Document, Event, en de bijbehorende enums zoalsActionType,Enforceability,EmissionStandardenFuel.otm.profile— validatie tegen een OTM-profiel, met eenValidationResultdat losseValidationMessages bevat, elk met eenSeverityen eenValidationCode. Bij de eerste release zit daar een validator voor het transportorder-profiel in.otm.serializer— JSON-serialisatie volgens de OTM-conventies, inclusief de camelCase-behandeling van enums die OTM gebruikt.
Onder de motorkap draait het op Jackson voor de serialisatie en op de json-schema-validator van networknt voor de profielvalidatie. Apache 2.0-licentie.
De validatie is het deel dat de meeste tijd bespaart. Profielen zijn in OTM de manier waarop een concrete use case invult wat er verplicht is: het transportorder-profiel, het CBS-profiel voor wegvervoerstatistiek, het carbon footprint-profiel. De kernspecificatie laat bewust veel open, dus 'is dit geldig OTM' is zonder profiel een halve vraag.
De randvoorwaarde die je moet weten
Het artifact wordt gebouwd tegen Java 21. maven.compiler.source en -target staan allebei op 21.
Dat is voor een greenfield-project geen probleem en voor veel bestaande logistieke systemen wél. Als je TMS of koppelvlak nog op Java 11 of 17 draait, kun je deze library niet zomaar toevoegen — dan is de upgrade van je runtime de eerste stap, niet de laatste.
Het is het soort detail dat nergens in een aankondiging staat en dat een integratieplanning met een kwartaal kan verschuiven. Controleer het voordat je het inplant.
Wat er daarna gebeurde
Op 21 oktober 2025 verscheen versie 1.0.2.0. De belangrijkste toevoeging daarin is validatie tegen het CBS-profiel — het profiel waarmee wegvervoerstatistiek aan het Centraal Bureau voor de Statistiek wordt aangeleverd.
Dat is een veelzeggende tweede release. Niet meer entiteiten, niet meer velden, maar een tweede profiel. Het bevestigt waar de moeite in een OTM-koppeling werkelijk zit: niet in het model, maar in de vraag wat er in jouw specifieke uitwisseling verplicht is.
Java en .NET naast elkaar
De twee libraries zijn duidelijk vanuit hetzelfde ontwerp gebouwd — dezelfde driedeling model, profiel en serializer, dezelfde keuze om géén transportlaag mee te leveren. Publiceren doe je met de HTTP-, bestands- of messaging-stack die je al hebt.
Dat laatste is een goede grens. De library gaat over het datamodel en over of je bericht klopt. Hoe het bericht bij je tegenpartij komt, blijft jouw keuze, en dat is precies de laag waar in logistiek de meeste variatie zit: de een doet REST, de ander SFTP, de derde een message queue.
Waar ze verschillen is in de verpakking. Drie NuGet-packages laten je in .NET alleen de modeltypes binnenhalen als je meer niet nodig hebt; het Java-artifact is één geheel. In de praktijk maakt dat weinig uit, maar het is wel het soort verschil dat je merkt zodra je een afhankelijkheidsboom moet verantwoorden.
Waarom wij hier op letten
Bij Keana, onze planningssoftware voor groene stadslogistiek, is elke koppeling met een verlader of vervoerder tijd die niet naar het eigenlijke probleem gaat: transportorders bundelen tot minder ritten door de binnenstad, met CO₂-winst die je kunt aantonen.
Hoe meer van die koppeling uit de standaard komt in plaats van uit een afspraak per klant, hoe sneller een nieuwe partij kan aansluiten. Officiële libraries in beide grote ecosystemen zijn daarvoor een stap in de goede richting. Bekijk de Keana-case.
Kort samengevat
org.opentripmodel:otm-toolkit 1.0.1.0 verscheen op 9 juli 2025 op Maven Central, gevolgd door 1.0.2.0 op 21 oktober 2025.
Eén artifact met drie onderdelen: OTM v5-entiteiten als Java-klassen, validatie tegen een OTM-profiel met severity en foutcodes, en JSON-serialisatie volgens de OTM-conventies. Jackson en networknt onder de motorkap, Apache 2.0-licentie. Versie 1.0.2.0 voegde het CBS-profiel toe.
De belangrijkste voetnoot: het artifact wordt gebouwd tegen Java 21. Controleer je runtime voor je het inplant.

Softwareontwikkeling ontmoeilijken
Laat ZEN Software je softwareontwikkeling analyseren en optimaliseren.
Maatwerksoftware bouwen en beheren
Applicaties die jouw proces volgen, niet omgekeerd. Van eerste schets tot productie, en daarna houden wij ze draaiend.
Lees ook:

Mijn AI agent werkt 's nachts voor me door. Hij mag alleen niks beslissen.
Sinds augustus draait bij ons elke werkdag om half acht een agent die de open merge requests leest en er iets van vindt....

48 grote storingen in twaalf maanden. Wat is er aan de hand bij GitHub?
Bijna acht uur plat op één middag, 48 grote storingen in een jaar, en de grootste oorzaak is capaciteit. Over GitHub dat...

Wat je mist bij AI-agents is meestal geen gereedschap
Ik draai al maanden meerdere AI-agents naast elkaar. Na vijf uur DHH over programmeren met agents bleek mijn gereedschap...

De bedenker van Ruby on Rails schrijft geen regel code meer zelf
De bedenker van Ruby on Rails schrijft geen regel code meer zelf en stuurt zestien agents tegelijk aan. Vijf uur gesprek...

Zenthropic: AI-telefoonagenten die 24/7 opnemen
De telefoon gaat buiten kantooruren, tijdens een incident, of precies als iedereen in een overleg zit. Zenthropic zet da...

CyberCloud Voice Analytics: zie wat er in je telefoongesprekken gebeurt
De meeste organisaties weten hoeveel er gebeld is en verder niets. Voice Analytics laat zien waarover die gesprekken gin...
