Focus

Java

Talk
Talk

JVM-Sprachen / GraalVM / Truffle: Das eierlegende Truffleschwein

IT Tage 2020 / 13:00 - 13:45

Talk
Talk

Frohes Neues – Die Neuerungen von Java 14 & 15

JVM CON 2020 / 10:30 - 11:30

Talk
Talk

Spring Boot entzaubert

DWX – Developer Week 2020 / 14:15 - 15:15

Talk
Talk

Neues von Java und dem JDK

DWX – Developer Week 2020 / 10:30 - 11:30

Article

Unbekannte Besonderheiten von Java

So gut wie jede Programmiersprache, die ich kenne, besitzt Dinge, die so erstaunlich sind, dass ich oft denke „Was? Das geht?“. In dieser Kolumne wollen wir uns acht solche Besonderheiten von Java anschauen und verstehen, wieso diese funktionieren und wozu sie gut sein können.

Article

Images fĂĽr Java-Anwendungen bauen

Das Runde muss ins Eckige

Link

“No matter how capable or brave you are, you are dependent on opportunities”: Interview with Hanna Prinz

Link

Java feiert 25. Geburtstag: Interview mit Michael Vitz

Link

Java feiert 25. Geburtstag: Interview mit Eberhard Wolff

Link

Service Mesh und Microservices: „Wartbare Software zu schreiben, ist und bleibt offenbar ein schwieriges Problem“. Interview mit Hanna Prinz

Article

JSX-Komponenten mit Java nutzen

Die Bedeutung von Oberflächen beziehungsweise der Benutzbarkeit von Software im Allgemeinen hat in den letzten Jahren, zurecht, wieder vermehrt an Bedeutung gewonnen. Bei der Entwicklung von Weboberflächen in Microservice-Architekturen besteht hierbei die Herausforderung, teamübergreifend eine durchgehend passende Nutzererfahrung, insbesondere durch ein konsistentes Look & Feel, zu erzeugen. Diese Kolumne stellt einen möglichen Weg vor, um genau dies zu erreichen.

Article

Dynamische Proxys mit dem JDK umsetzen

Der dynamische Stellvertreter

Link

Java 14 Highlights. Interview mit Michael Vitz

Article

Das eierlegende Truffleschwein

Viele, die im Java-Umfeld unterwegs sind, werden von ihr gehört haben: der sagenumwobenen GraalVM. Diese magische neue Virtual Machine für Java soll vor allem für blanke Performance sorgen, indem sie den Java-Bytecode in nativen Code kompiliert. Dadurch fällt insbesondere der Startup-Overhead weg, da weite Teile der Initialisierung bereits vom Compiler erledigt werden. So oder so ähnlich ist es vielerorts zu lesen, z.B. in dem Einführungsartikel von Christopher Schmidt und Sascha Selzer. Doch das ist bei weitem nicht das einzige Feature, welches Oracle der GraalVM gegeben hat. Hinzu kommt, dass die GraalVM zu nicht weniger das Potential hat als eine neue Ära der polyglotten Programmierung auf der JVM einzuläuten. Die Rede ist von der Truffle API, einem generischen Framework zur Implementierung von Interpretern.

Blog Post

Warum Quarkus.io _nicht_ geiler ist als Spring

Blog Post

An Introduction to TypeScript for Backend Development (and Java Developers)

An ongoing architecture trend towards smaller services and faster, agile feature development gives developers some freedom to try out new languages and frameworks. TypeScript and Node seem to have a bad reputation amongst some backend developers although the language can be a perfect fit for many challenges in modern software development.

Link

Die Java Highlights 2019

Article

Cloud native Java-Anwendungen mit Quarkus

Alles Quark?

Blog Post

Integrating Logback with JLine

Logback is a popular logging library for Java. JLine can be used to create nice shell-like applications. Combining both is not as hard as it looks.

Article

Die GraalVM: Javas Sprung in die Gegenwart?

Die Java Virtual Machine (JVM) gibt es jetzt seit über 24 Jahren. Sie wurde geschaffen, um eine objektorientierte und robuste Programmiersprache plattformunabhängig ablaufen lassen zu können. Mit den Jahrzehnten wuchs ihre Verbreitung. Unterschiedliche Programmiersprachen entstanden und das Java Software Development Kit (SDK) bekam immer neue Funktionen. Das alles hat die JVM aber auch groß und träge gemacht.

Article

Hadoop - Taming the Elephant (With a Whale)

Eine EinfĂĽhrung in Hadoop

Article

Parametrizität in Java

So gut wie alle modernen Programmiersprachen erlauben es, Routinen über Werte und über Typen zu parametrisieren. In Java wird letzteres „Generics“ genannt, in C++ hingegen „Templates“. Obwohl die Konzepte die gleichen sind, unterscheidet sich die Implementation doch stark. In diesem Artikel möchte ich diese Art der Parametrisierung in Java unter die Lupe nehmen und erklären, warum „Type Erasure“ doch eine ganz gute Idee ist.

Case Study

MEDICPROOF ProofForms 8

ProofForms ist die Software von MEDICPROOF, dem medizinischen Dienst der privaten Krankenversicherungen, mit der Gutachter ihre Beauftragungen verwalten und Pflegegutachten erstellen können.
Case Study

MEDICPROOF ProofForms 8

ProofForms is software from MEDICPROOF, the medical service for private health insurers, which expert reviewers can use to administer their assignments and create their expert reviews of care.
Blog Post

Zeitreise mit LocalDate und DateTimeFormatter

Manchmal hängt das erfolgreiche Ausführen eines Testes tatsächlich davon ab, an welchem Tag er gestartet wird.

Article

Die erste Java-Version mit Long-Term-Support seit Java 8

Mit Java 11 ist im September 2018 das erste Release, nach Java 8, mit Long-Term-Support erschienen. Neben den neuen Features und Änderungen geht es in diesem Artikel somit auch um das neue Support-Modell von Java. Und auch ein Blick in die nähere Zukunft von Java soll nicht fehlen.

Article

Java-Bibliotheken fĂĽr den Einsatz in Tests

TestunterstĂĽtzung

Article

Generierung von Regressionstests fĂĽr Legacy-Code

Source note: Dieser Artikel ist ursprünglich in Ausgabe 05/2018 der Zeitschrift Java aktuell erschienen. Die Veröffentlichung auf innoq.com erfolgt mit freundlicher Genehmigung von https://www.ijug.eu/. Publisher: iJUG e.V Publication: Java aktuell Edition: 05/2018

Podcast

Spring Boot 2

Softwareentwicklung im Spring Ă–kosystem

Podcast

Java by Comparison

Vorher/Nachher-Vergleiche zu Clean Code in Java

Article

Einsatz von Containern zum Testen

Container setzen sich beim Betrieb von Anwendungen immer mehr durch. Doch auch abseits davon helfen diese bei der Entwicklung und dem Testen von Anwendungen. Dieser Artikel zeigt, wie mithilfe der Java Bibliothek Testcontainers Container innerhalb von JUnit Tests verwendet werden können.

Article

Blockchain hausgemacht

Bei INNOQ veranstalten wir jedes Jahr einen so genannten Hands-On-Event. Dieser ist Teil unserer regulären Mitarbeiter-Events und findet typischerweise im Frühjahr statt. Wir treffen uns alle für zwei Tage an einem Ort und versuchen mit der Programmiersprache unserer Wahl in Gruppen eine definierte Aufgabe zu lösen. Optimal also, um neue Sprachen und neue Kolleginnen und Kollegen in Gruppenarbeit kennenzulernen.

Blog Post

Oracles GraalVM fĂĽr „Native Java“?

Blog Post

Domain Exceptions?

In jedem Softwaresystem kommt es zu Ausnahmesituationen. In der Regel handelt es sich um technische Ausnahmen, die in Java als Exceptions auftreten und behandelt werden. Gibt es aber auch fachliche Ausnahmen, also quasi „Domain Exceptions“? Und ist es sinnvoll, diese in Java als Exceptions zu modellieren? Einige Beispiele aus einem Kundenprojekt zeigen, dass dies häufig nicht der Fall ist.

Article

Java 10 – Evolution statt Revolution

Gerade erst ist Java 9 erschienen, da steht auch schon das nächste Release, Java 10, an. Dieser Artikel betrachtet die Neuerungen von Java 10 und wagt einen kurzen Blick in die Zukunft.

Podcast

Java 10

Die neuen Features im Ăśberblick

Article

Health-Checks in Java-Anwendungen

Health-Checks sind für den Betrieb von Anwendungen heute, insbesondere wenn sie als Container in einem Cluster deployt werden, unerlässlich. Dieser Artikel zeigt, wieso Health-Checks so wichtig sind, welche Details beachtet werden sollten und wie Health-Checks in Java mit drei gängigen Bibliotheken umgesetzt werden können.

Article

Command Line Interfaces in Java

Die meisten neuen Anwendungen stellen eine Web- oder grafische Benutzungsoberfläche für die Interaktion mit dem Benutzer bereit. Doch gerade für Anwendungen, die Teil eines Batch-Jobs sind, automatisiert aufgerufen werden oder für sogenannte Powernutzer gemacht sind, bietet es sich an, eine Oberfläche für die Kommandozeile anzubieten. Dieser Artikel zeigt die Bestandteile einer solchen Anwendung und wie man diese in Java benutzt.

Link

Java 9 Release: „FĂĽr mich sind die Erweiterungen der bestehenden APIs die wichtigsten Features“

Blog Post

Implementierung einer einfachen Zustandsmaschine (state machine) in Java

Eine simple Zustandsmaschine (state machine) in Java

Article

Horden von Zombies

Kennen Sie das Computer-Spiel „Plants vs. Zombies“? [1] Das Szenario ist einfach: Zombies stürmen auf unser Haus zu. Als Spieler haben wir eigentlich nur eine Chance, der Übermacht zu begegnen: Wir müssen die Verteidigungsmechanismen vorbereiten, die wir im Eifer des Gefechts brauchen werden. Paprikaschoten, Erbsen und Walnüsse werden uns helfen, die Angriffswut der Zombies zu stoppen. In dieser Ausgabe nutze ich die Kulisse des Spiels, um ein paar Eigenschaften von Reactive Extensions vorzustellen.

Article

Features in Java 9

Unter dem Radar

Article

Deployment und Monitoring von Microservices

Beim Deployment von Microservices verschwimmen die Grenzen zwischen Mikro- und Makroarchitektur. Während das Team die Mikroarchitektur für jeden Service individuell entscheiden kann, muss man sich bei Makroarchitektur-Themen mit anderen Teams zusammensetzen, um die beste Lösung für Themen zu finden, die mehrere Services betreffen. In diesem Artikel wollen wir uns ansehen, welche Entscheidungen ein Team für sich treffen kann und welche mit anderen Teams abgestimmt werden müssen. Zu diesem Zweck möchte ich beispielhaft den Lernprozess beschreiben, den ich in Teams erleben durfte, die “einfach mal” mit Microservices angefangen haben.

Article

Zwei Jahre nach dem Tod der Java Application Server

Der ursprüngliche Artikel [1] hat mehrere Gründe aufgeführt, warum Application Server keine zeitgemäße Plattform mehr darstellen. Kurz zusammengefasst:

Blog Post

Web Scraping mit PhantomJS-CEF

Blog Post

Web Scraping

This blog post provides examples how to implement web scraping using HtmlUnit, Selenium, ui4j or jaunt and compares them.

News

Voxxed Days Berlin 2016

Article

Hands-On Integration mit openHAB

Teil 7, Artikelserie „Smart Home“

Article

Sicherheit und Datenschutz

Schon vor mehr als einem Jahr fragte sogar die Bild-Zeitung “Wie sicher ist das smarte Eigenheim”? Gestellt wurde diese Frage im Kontext der Übernahme von Nest - dem amerikanischen Hersteller smarter Raumthermostate - durch Google. Gemeint war hier allerdings weniger die Sicherheit im Sinne des Zugriffsschutzes, sondern vielmehr die der Privatssphäre. Seitdem hat sich die Situation eher verschlimmert denn verbessert. Der vorliegende Artikel erklärt warum und zeigt Lösungsmöglichkeiten auf.

Article

Steuerung und Automatisierung

“Ein Smart Home ist ein per Smartphone oder Tablet bedienbares Heim” - dies ist eine gängige Definition, die allerdings viel zu kurz greift. Auch wenn die Steuerung das augenfälligste Merkmal ist, so ist die Automatisierung doch ein viel wesentlicherer Bestandteil.

Article

Standards, Open Source und Forschung

Teil 4, Artikelserie „Smart Home“

Article

Geräteabstraktion und ihre Schwierigkeiten

Im vorigen Teil unser Serie haben wir gesehen, wie vielfältig der Smart-Home-Markt ist und dass es nicht die “eine” beste Lösung gibt. Vielmehr haben alle Systeme ihre Stärken und Schwächen. Es gilt also, die jeweiligen Stärken in ein Gesamtsystem zu kombinieren. Hierbei stellt man schnell fest, dass inzwischen fast jeder Hersteller, bzw. jede Allianz, zu einer eigenen Lösung gefunden hat, wie Geräte per Software ansprechbar sind. Dabei sind auf den ersten Blick die Möglichkeiten nicht allzu vielfältig: Sensoren liefern einerseits Messdaten - also einfache (Fließkomma-)Zahlen - und Aktoren empfangen diskrete Kommandos wie “an”,“aus” oder auch Prozentwerte. Wäre es für Smart-Home-Anwendungen nicht schön, wenn dies für jedes Gerät auf ein und die gleiche Weise geschehen könnte? Wir suchen also eine Abstraktionsschicht, die uns unabhängig von der konkreten Hardware macht.

Article

MarktĂĽberblick ĂĽber Systeme und Protokolle

“Bevor ich mich falsch entscheide, lasse ich es lieber gleich …” - ein häufig gehörtes Argument gegen das Smart Home. Richtig ist, dass der Markt schon jetzt unübersichtlich ist und sich das in Zukunft nicht verbessern wird. Wer allerdings die richtigen Fragen kennt, kann die Vielfalt einschränken und damit schließlich zu seiner Entscheidung kommen. In diesem Artikel stellen wir die wichtigsten Systeme vor und geben Entscheidungshilfen.

Article

Heimautomatisierung und das Internet der Dinge

Teil 1, Artikelserie „Smart Home“

Link

Umfrage zum zwanzigsten Geburtstag von Java: „Oder bist du ĂĽberhaupt nur eine Programmiersprache?“

News

Informatica Feminale 2015 in Bremen und Furtwangen

Article

Batch-Computing in Java

Lieber mit Batch-Framework

News

Microservices, Internet of Things und RxJava beim Java Forum Stuttgart

Blog Post

Per request debugging with Log4j 2 filters

Customers quite regularly call on me to support them when an application is not behaving as expected. On a development machine there are a lot of ways and utilities to analyse the situation. But troubleshooting the erroneous application behaviour in production environments quite often limits your tool belt to a minimum.

Article

Grenzenlose Freiheit?

Polyglotte Programmierung mit Clojure

Article

Wissen, was läuft

Mit gutem Logging kann man eine Menge über laufende Anwendungen oder gar Anwendungsverbunde erfahren. Eine entscheidende Einschränkung geht mit Logging einher: Logs sind nur ein Strom von eingetretenen Ereignissen. Um herauszufinden, wie gut eine Anwendung läuft, ist jedoch deren Zustand interessanter.

Article

Welten verbinden

Auch wenn inzwischen viele Voraussetzungen dafür geschaffen sind, dass sich der Smart Home Markt zum Massenmarkt entwickeln kann, sind noch längst nicht alle Probleme gelöst. Im Gegenteil, aufgrund der großen Fragmentierung haben die Nutzer häufig mehr Fragen als Antworten. Dieser Artikel soll dazu dienen, einige dieser Fragen zu klären und dabei eine Lösung an einem durchgängigen Beispiel vorzustellen.

Article

Durchbruch

Offene Plattformen verhelfen Smart Home zum Erfolg

Article

Micro-Services in Java realisieren – Teil 2: Web-Apps in Docker-Umgebungen

In dem ersten Teil dieser zweiteiligen Reihe haben wir uns mit der Realisierung von Web-Apps mit dem leichtgewichtigen Framework DropWizard beschäftigt. In diesem Teil beschäftigen wir uns mit der offenen Plattform Docker. Damit lassen sich Umgebungen definieren und voneinander isolieren. Wie sich Docker von virtuellen Maschinen unterscheidet und was das für unsere Anwendungen bringt, stellt dieser Artikel vor.

Article

Hystrix – damit Ihnen rechtzeitig die Sicherung durchbrennt

Sicherungen wurden ursprünglich eingeführt, um die Eskalation einer Situation zu verhindern. Wenn Ihnen ab und zu die Sicherung durchbrennt, ist das deshalb durchaus zu begrüßen, jedenfalls wenn es sich dabei um einen Circuit-Breaker im Sinne von Hystrix handelt. In diesem Artikel möchten wir Ihnen Hystrix vorstellen, eine Bibliothek, die ihnen dabei hilft, die Stabilität ihrer verteilten Anwendung zu verbessern und kaskadierende Fehlerszenarien zu verhindern.

Article

Micro-Services in Java realisieren – Teil 1: Leichtgewichtige Web-Apps mit DropWizard

Micro-Services wider Monolithen

Article

Hystrix – Wider den Totalausfall

Michael T. Nygard hat in seinem Buch „Release It!” sehr anschaulich die Folgen von sich fortpflanzenden Fehlern beschrieben. Seine klare Empfehlung lautete, Isolationsmuster wie zum Beispiel Leistungsschutzschalter – engl. Circuit Breaker – in die Software zu integrieren, um Totalausfälle zu vermeiden. Mit Hystrix hat Netflix ein Framework bereitgestellt, das den Einbau von solchen Schaltern vereinfacht. Dieser Beitrag stellt das Framework vor.

Podcast

Wenn Systeme aus dem Ruder laufen

Mit Hystrix fĂĽr stabile, verteilte Anwendungen sorgen

Article

Endlich viel erben?

Default-Methoden in Java-Interfaces

Podcast

Modern Batch

Zeitgemäße Architekturen zur Massendatenverarbeitung

Podcast

openHAB: Home-Automation mit Java

OSGi fĂĽr das Internet der Dinge

Article

Java – Funktional ohne Zauberei

Totally Lazy

Article

Eine Lanze fĂĽr XML brechen

In der Ausgabe 05/2002 wurde erstmals JAXB im Java-SPEKTRUM [1] vorgestellt. In 2004 war XML eines der Hauptthemen. Heute – zehn Jahre später – begegnen uns immer noch Projekte, in denen die Objekt- Serialisierung hakt. Ob aufgrund der Größe der serialisierten Daten, des Hauptspeicherverbrauchs während des Bindens oder aufgrund der Rechenzeit für Transformationen – es gibt genügend Gründe, sich das Thema noch mal anzuschauen. Hier insbesondere aufgrund der verfügbaren Werkzeugkette außerhalb der Java-Welt.

Article

Java-Programme mit Clojure wĂĽrzen

Wenn jemand vor etwa acht Jahren in einem Java-Projekt vorgeschlagen hat, gewisse Teile in einem Lisp-Dialekt in der JVM zu realisieren, fiel dabei zumeist das circa 98 KB groĂźe JScheme. Heute hingegen bricht man in dem Fall durchaus die Lanze fĂĽr Clojure, dem Lisp auf der JVM. In diesem Beitrag wollen wir anhand von Incanter exemplarisch zeigen, inwieweit sich die Kombination von Clojure und Java lohnt.

Article

Webanwendungen mit dem Play!-Framework

Wie man in Java Webanwendungen bauen sollte

Link

Clojure: Funktional, parallel, genial

Link

RESTful Web Services mit Java

Link

Die Java Persistence API