Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

Apache Tamaya: Einstieg in die Konfiguration in Java
Apache Tamaya: Einstieg in die Konfiguration in Java
Apache Tamaya: Einstieg in die Konfiguration in Java
Ebook73 pages36 minutes

Apache Tamaya: Einstieg in die Konfiguration in Java

Rating: 0 out of 5 stars

()

Read preview

About this ebook

Was bedeutet Konfiguration in Java? Wie sollte sie gemanagt werden? Dieser shortcut geht der Thematik auf den Grund, beleuchtet die Anforderungen an Konfiguration und mögliche Lösungsansätze. Anschließend werden die zentralen Konzepte und Erweiterungsmodule des Apache-Tamaya-Projekts vorgestellt. Auch komplexe Konfigurationsszenarien im Java-SE-Umfeld können mit dem Konfigurationsframework umgesetzt werden. Zuletzt geht es um den Einsatz von Apache Tamaya in der Java-EE-Welt und die Integration mit CDI.
LanguageDeutsch
Release dateJan 12, 2016
ISBN9783868025736
Apache Tamaya: Einstieg in die Konfiguration in Java

Related to Apache Tamaya

Titles in the series (100)

View More

Related ebooks

Programming For You

View More

Related articles

Reviews for Apache Tamaya

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    Apache Tamaya - Anatole Tresch

    GmbH

    1 Konfiguration in Java

    Konfiguration erlaubt es, das Verhalten eines Softwaresystems in kontrollierter Art und Weise zu verändern, ohne dass eine Neuimplementierung notwendig ist. Dazu sind Design­entscheidungen darüber zu treffen, welche Aspekte konfigurierbar sind und welche eben nicht. Alles konfigurierbar zu machen, ist genauso sinnlos, wie alle Aspekte fest zu kodieren. Dennoch scheiden sich die Geister daran, was Konfiguration nun ist und wie sie gemanagt werden soll. Wir möchten mit diesem shortcut Licht ins Dunkel bringen.

    Konfiguration ist ein häufiges und sehr facettenreiches Thema in der Softwarewelt. Auch wenn es bisher keine einheitliche Lösung für Konfiguration in Java gibt, wurden im letzten Jahr einige Anstrengungen unternommen, dies zu ändern. Daraus ist das neu gegründete Projekt Apache Tamaya [1] entstanden, mit dem eine Lösung für die vielfältigen Aufgaben der Konfiguration entwickelt werden soll.

    Wir werden die Themen Konfiguration und Apache Tamaya genauer betrachten. Schnell wird sich zeigen, dass jeder eine Vorstellung davon hat, was Konfiguration ist und leisten soll. Unglücklicherweise werden sich kaum zwei Ansichten als deckungsgleich zeigen, was auch mit der Vielzahl der Anwendungsfälle zusammenhängt. Im ersten Kapitel werden wir uns zuerst sehr einfachen Einsatzszenarien im Java-SE-Umfeld widmen und dann im weiteren Verlauf immer neue Anforderungen aus anderen Einsatzbereichen, wie Java EE, Microservices und Cloud-basierten Anwendungen, hinzufügen. Ziel ist es, die Komplexität verständlich zu veranschaulichen, aber auch Gemeinsamkeiten aufzuzeigen. Diese erlauben es, Konfigurationsaspekte in einem Framework zu modellieren, so wie es aktuell mit Apache Tamaya gemacht wird.

    Konfiguration mit Java SE

    Lassen Sie uns zunächst die Konfigurationsmechanismen näher betrachten, die bereits mit Java geliefert werden. Das prominenteste Beispiel sind sicherlich .properties-Dateien, die sowohl in Textform als auch in xml-Form unterstützt werden. Dazu bietet die Klasse java.util.Properties Methoden, um einen entsprechenden InputStream zu lesen. Anschließend können die konfigurierten Werte mit getProperty(key) ausgelesen werden:

    InputStream is = ...;

    Properties properties = new Properties();

    properties.read(is); // properties.readXml(is);

    Derselbe Mechanismus wird nun auch an anderen Stellen im JDK wiederverwendet, z. B. im Zusammenhang mit ResourceBundle oder dem java.util.ServiceLoader. Letzterer erlaubt es, Services zentral zu registrieren. Diese werden dabei in Dateien, die dem qualifizierten Typ des Zugriffs entsprechen, unter META-INF/services im Klassenpfad abgelegt. Der ServiceLoader berücksichtigt hierbei alle Dateien, die aktuell im Klassenpfad sichtbar sind. Der Zugriff auf die Services erfolgt sodann typsicher mit

    ServiceLoader ServiceLoader.load(Class type);

    Weitere Mechanismen sind Environment- und System-Properties. Während Erstere aus den Umgebungsvariablen der Laufzeitumgebung konstruiert werden, können Letztere als Parameter der Java-Runtime übergeben werden, z. B. mit -DmyProperty=foorBar. Mit System.getenv() und System.getProperties() stehen entsprechende Zugriffs-APIs zur Verfügung, mit denen die Werte direkt ausgelesen werden können.

    Es würde den Rahmen dieses Kapitels sprengen, jeden Konfigurationsmechanismus zu beschreiben, der im JDK bereits mitgeliefert wird. Dennoch liefern die Beispiele erste Anhaltspunkte, wie Konfiguration modelliert werden könnte:

    Konfigurationsdateien sind textbasiert.

    Konfiguration kann in sehr unterschiedlichen Formaten verfügbar sein (properties, xml, json etc.).

    Konfiguration kann aus unterschiedlichen Quellen stammen (Dateisystem, Klassenpfad, URLs etc.).

    Konfiguration kann auf mehrere Ressourcen aufgeteilt sein, wobei zur Laufzeit die effektive Auswahl getroffen wird.

    Konfiguration kann dazu verwendet werden, höherwertige Dienste zur Verfügung zu stellen (z. B. ServiceLoader, ResourceBundle).

    Mit Konfiguration können einfache Werte in Abhängigkeit ganz unterschiedlicher Laufzeiteigenschaften dynamisch gesetzt werden, oder es werden ganze Systemteile und Komponenten für die Zielumgebung aktiviert oder deaktiviert.

    Bereits mit

    Enjoying the preview?
    Page 1 of 1