Apache Groovy #15 – TOML Konfigurationsdateien verarbeiten

In diesem Beitrag erläutere ich dir, wie du eine Konfigurationsdatei im TOML Format in Apache Groovy erstellen und verarbeiten kannst.

Apache Groovy #15 – TOML Konfigurationsdateien verarbeiten
Apache Groovy #15 – TOML Konfigurationsdateien verarbeiten

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

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert