Apache Tamaya: Einstieg in die Konfiguration in Java
Von Anatole Tresch und Thorben Janssen
()
Über dieses E-Book
Ähnlich wie Apache Tamaya
Titel in dieser Serie (100)
Einstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Executive Briefing Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Technologiegrundlagen Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenZend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5JavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenHTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Anforderungsmanagement: Work Items und Prozessvorlagen Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenC++: Kurzportträt einer zeitlosen Sprache Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Management Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenWebentwicklung mit dem Play Framework Bewertung: 0 von 5 Sternen0 BewertungenBPM: Strategien und Anwendungsfälle Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
CDI - Dependency Injection in Java EE 7: Dependency Injection in Java EE 7 Bewertung: 0 von 5 Sternen0 BewertungenJava EE 6: Enterprise-Anwendungsentwicklung leicht gemacht Bewertung: 0 von 5 Sternen0 BewertungenSoftwarestabilität in der Industrie Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 BewertungenJava EE Testing mit Arquillian Bewertung: 0 von 5 Sternen0 BewertungenSpring Boot und Spring Cloud Bewertung: 5 von 5 Sternen5/5TFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenDependency Injection in Java: Testing mit CDI-Unit und DI-Frameworks Bewertung: 0 von 5 Sternen0 BewertungenPaaS - Die wichtigsten Java Clouds auf einen Blick: Die wichtigsten Java Clouds auf einen Blick Bewertung: 0 von 5 Sternen0 BewertungenWebentwicklung mit dem Play Framework Bewertung: 0 von 5 Sternen0 BewertungenMicroservices: Der Hype im Realitätscheck Bewertung: 0 von 5 Sternen0 BewertungenBig Data: Datenverarbeitung basierend auf MOM und SQL Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenjQuery Mobile: Unit Testing Bewertung: 0 von 5 Sternen0 BewertungenWorkshop Java EE 7: Ein praktischer Einstieg in die Java Enterprise Edition mit dem Web Profile Bewertung: 0 von 5 Sternen0 BewertungenProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Bewertung: 0 von 5 Sternen0 BewertungenJava FX - Status Quo: Status Quo Bewertung: 0 von 5 Sternen0 BewertungenDSL mit Xtext/Xtend. Luecken(x)text Bewertung: 0 von 5 Sternen0 BewertungenStructr: Quelloffenes Daten-CMS auf Neo4j-Basis Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenAutomatisiertes Testen: Testautomatisierung mit Geb und ScalaTest Bewertung: 0 von 5 Sternen0 BewertungenApache OFBiz: Schnellstarterbuch Bewertung: 0 von 5 Sternen0 BewertungenClusterbau: Hochverfügbarkeit mit Linux Bewertung: 0 von 5 Sternen0 BewertungeniOS Essentials: Frameworks, Tools und Twitter API Bewertung: 0 von 5 Sternen0 BewertungenAngularJS: Testing und Best Practices Bewertung: 5 von 5 Sternen5/5Microsoft Azure: Cloud Entwicklung für lokale Applikationen Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenTroubleshooting und Monitoring von Exchange und Office 365 Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
Die ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenPython-Grundlagen Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5New Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenSQL – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenMicrocontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenPython programmieren lernen: Der spielerische Einstieg mit Minecraft Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Raspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenPython kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Traumjob IT 2021: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 5 von 5 Sternen5/5Algorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenVue.js für alle: Wissenswertes für Einsteiger und Experten Bewertung: 0 von 5 Sternen0 BewertungenDas Franzis Starterpaket Arduino Uno: Das Handbuch für den Schnelleinstieg Bewertung: 0 von 5 Sternen0 BewertungenBash kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 BewertungenPerspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 0 von 5 Sternen0 BewertungenLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für Apache Tamaya
0 Bewertungen0 Rezensionen
Buchvorschau
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 Designentscheidungen 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
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