In diesem Beitrag erläutere ich dir, wie du eine Konfigurationsdatei im TOML Format in Apache Groovy erstellen und verarbeiten kannst.
In den letzten Beiträgen Apache Groovy #13 – JSON Daten verarbeiten & Apache Groovy #14 – XML Strukturen habe ich dir bereits die beiden Datenformate JSON sowie XML vorgestellt, hier soll es nun darum gehen, wie du eine Konfigurationsdatei im Format TOML erstellst und verarbeitest.
Was ist das TOML Format?
Das TOML Format für Konfigurationsdateien dient zum einfachen Abspeichern von Schlüssel / Wertepaare in ASCII-Dateien. Damit kannst du somit diese Daten auch ohne eine IDE betrachten und ändern.
Zu diesem Format findest du nachfolgenden, interessanten Wikipedia Artikel:
Seite „TOML“. In: Wikipedia – Die freie Enzyklopädie. Bearbeitungsstand: 1. September 2022, 15:19 UTC. URL: https://de.wikipedia.org/w/index.php?title=TOML&oldid=225820344 (Abgerufen: 1. November 2022, 08:33 UTC)
Was bedeutet TOML?
Die Abkürzung TOML steht für “Tom’s Obvious, Minimal Language”, und wurde von Tom-Preston Werner entwickelt.
Ein kleines Beispiel einer TOML Konfigurationsdatei
Nachfolgend zunächst ein kleines Beispiel für eine TOML Konfigurationsdatei:
# Mein erster Kommentar
title = "TOML Beispiel"
[person]
firstname = "Stefan"
lastname = "Draeger"
age = 42
birthday = 1980-06-12T02:15:00-01:00
hobby = ["Garten", "Programmieren"]
In einer TOML Datei können wir diverse Daten speichern, wie in dem Beispiel zu sehen
- Zeichenketten,
- Zahlen,
- Datum,
- Arrays
Dabei kann man die Daten verschachteln und mit Kommentaren versehen.
Parsen von TOML Daten mit TomlSlurper
Wollen wir zunächst die Konfigurationsdatei aus dem gezeigten Beispiel mit TomlSlurper parsen.
import groovy.toml.* def ts = new TomlSlurper() def toml = ts.parseText ''' # Mein erster Kommentar title = "TOML Beispiel" [person] firstname = "Stefan" lastname = "Draeger" age = 42 birthday = 1980-06-12T02:15:00-01:00 hobby = ["Garten", "Programmieren"] ''' // prüfen der Datentypen assert toml.person.firstname.class == java.lang.String assert toml.person.age.class == java.lang.Integer assert toml.person.hobby.class == java.util.ArrayList // Ausgeben der Daten println(toml.person.firstname) println(toml.person.hobby)
Ausgabe in der GroovyConsole:
Stefan
[Garten, Programmieren]
Die Klasse TomlSlurper bietet auch die Möglichkeit vom parsen von Dateien, dazu ruft man die Funktion “parse” mit dem Parameter “java.io.File” auf.
import groovy.toml.* def tomlData = new TomlSlurper().parse(new File("config.toml")) println(tomlData.toString()) println(tomlData.person.firstname)
Ausgabe in der GroovyConsole:
{person={firstname=Stefan, lastname=Draeger, age=42, birthday=1980-06-12T02:15:00-01:00, hobby=[Garten, Programmieren]}}
Stefan
Erstellen einer TOML Konfigurationsdatei mit Apache Groovy
Eine TOML Datei können wir auch aus Groovy heraus wie nachfolgend gezeigt mit dem TomlBuilder erstellen.
import groovy.toml.* Map<String, Object> tomlData = [ person: [ firstname: 'Stefan', lastname: 'Draeger', age: 42, birthday: new GregorianCalendar(1980, Calendar.MAY, 11, 1, 10, 45).time, hobby: ["Garten", "Programmieren"] ] ] def builder = new TomlBuilder() builder tomlData println(builder.toString())
Ausgabe in der GroovyConsole:
person.firstname = 'Stefan'
person.lastname = 'Draeger'
person.age = 42
person.birthday = '1980-05-10T23:10:45+0000'
person.hobby = ['Garten', 'Programmieren']
Alternative Datenformate für Konfigurationsdateien
Neben diesem gezeigten Datenformat gibt es noch die bekannten:
- Initialisierungsdatei – *.ini,
- Extensible Markup Language – *.xml,
- JavaScript Object Notation – *.json,
- YAML Ain’t Markup Language – *.yaml,
- Java Properties Datei – *.properties