© Excellent backgrounds/Shutterstock.com
Mit wenigen Abstraktionen zu einer flexiblen Lösung

Einführung in Apache Tamaya


In den vorherigen Teilen dieser Serie haben wir uns mit den Anforderungen an Konfigurationen befasst und einige der bereits vorhandenen Lösungsansätze betrachtet. Nun möchten wir das Apache-Tamaya-Projekt [1] genauer vorstellen, das seit dem letzten Jahr im Incubator vorangetrieben wird. Dazu werden wir eine Einführung in die zentralen Konzepte und Designentscheidungen geben und aufzeigen, dass auch mit wenigen Abstraktionen sehr viele Anforderungen abgedeckt werden können.

Vor ca. zwei Jahren versuchten die Credit Suisse und Oracle intensiv, einen gemeinsamen JSR (Java Specification Request) [2] für Java EE 8 zu starten. Aus verschiedenen Gründen war das leider nicht möglich [3]. Dennoch hat sich gezeigt, dass das Thema wichtig ist und ein entsprechender Standard viele Vorteile bringen würde. Es hat sich aber auch gezeigt, dass die Ideen und Konzepte noch weiter verfeinert werden müssen. Aus diesem Grund haben sich einige Unterstützer des JSR-Versuchs zusammengetan, um die Ideen und Erfahrungen in Apache Tamaya einfließen zu lassen.

Das Projekt ist analog zu einem JSR aufgebaut, d. h. es definiert ein API und bietet eine dazu passende Referenzimplementierung (RI). Das erleichtert eine spätere Überführung in einen Standard erheblich und hilft auch, die Konzepte zu minimalisieren und schlank zu halten. Genau genommen definiert Tamaya sogar zwei APIs, eines kompatibel zu Java 7 und eines für Java 8. Ebenso stehen zwei Referenzimplementierungen zur Verfügung. Denn auch wenn Java 7 bereits vor ein paar Monaten sein offizielles „End of Life“ erreicht hat, findet es in der Praxis noch eine breite Verwendung. Wir werden uns nachfolgend auf die Java-8-Variante fokussieren und bei Bedarf bestehende Unterschiede zur Java-7-Version entsprechend benennen.

Das API von Tamaya ist bewusst minimalistisch gehalten, lässt sich aber mit den definierten Service Provider Interfaces (SPI) sehr flexibel erweitern. Abbildung 1 gibt einen grafischen Überblick über die beschriebene Unterteilung des Projekts in API, RI und Erweiterungsmodule.

janssen_tamaya_1_neu.tif_fmt1.jpgAbb. 1: Überblick zu API, RI und Erweiterungsmodulen in Apache Tamaya

Modellieren von und Zugriff auf Konfiguration

Konfiguration wird in Tamaya durch das Interface Configuration modelliert (Listing 1), mit dem einzelne Konfigurationswerte oder auch die ganze Konfiguration eingelesen werden können. Konfigurationseinträge werden dabei immer mit einem eindeutigen Schlüssel vom Typ String referenziert. Die Konfigurationswerte können in beliebig...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang