<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Java on JAVAPRO Germany</title><link>https://javapro.svenruppert.com/tags/java/</link><description>Recent content in Java on JAVAPRO Germany</description><generator>Hugo</generator><language>de-DE</language><lastBuildDate>Wed, 22 Apr 2026 07:06:24 +0000</lastBuildDate><atom:link href="https://javapro.svenruppert.com/tags/java/index.xml" rel="self" type="application/rss+xml"/><item><title>URLShortener - Simple Bulk Creation</title><link>https://javapro.svenruppert.com/urlshortener-simple-bulk-creation/</link><pubDate>Wed, 22 Apr 2026 07:06:24 +0000</pubDate><guid>https://javapro.svenruppert.com/urlshortener-simple-bulk-creation/</guid><description>&lt;p&gt;Die Erzeugung von Kurzlinks wirkt auf den ersten Blick wie ein ausgesprochen einfacher Anwendungsfall. Eine Zieladresse wird eingegeben; das System erzeugt einen Shortcode, der unmittelbar verwendet werden kann. Solange sich dieser Ablauf auf einzelne Links beschränkt, bleibt die Benutzerführung überschaubar. Mit dem Übergang zur Massenanlage verändert sich die Situation jedoch grundlegend. Aus einer einzelnen Eingabe wird ein Arbeitsprozess, in dem mehrere URLs gleichzeitig erfasst, geprüft, bewertet und schließlich erzeugt werden müssen. Genau an diesem Punkt reicht es nicht mehr aus, eine bestehende Erfassungsmaske lediglich um weitere Eingabemöglichkeiten zu ergänzen. Je größer die Menge der zu verarbeitenden URLs wird, desto stärker rückt die Führung durch den Prozess in den Mittelpunkt.&lt;/p&gt;</description></item><item><title>Spec Driven Development: Warum die Zukunft der AI-gestützten Softwareentwicklung mit der Spezifikation beginnt</title><link>https://javapro.svenruppert.com/spec-driven-development-warum-die-zukunft-der-ai-gestuetzten-softwareentwicklung-mit-der-spezifikation-beginnt/</link><pubDate>Mon, 20 Apr 2026 07:04:17 +0000</pubDate><guid>https://javapro.svenruppert.com/spec-driven-development-warum-die-zukunft-der-ai-gestuetzten-softwareentwicklung-mit-der-spezifikation-beginnt/</guid><description>&lt;p&gt;Ein Entwickler baut ein neues Feature in 20 Minuten per Chat mit einem AI-Agenten. Das Ergebnis sieht gut aus, die Tests laufen durch. Drei Tage später verbringt das Team eine volle Arbeitswoche damit, die Sicherheitslücken zu fixen, die Architektur an den bestehenden Code anzupassen und die hardkodierten Credentials aus dem Repository zu entfernen. Was als Produktivitätsgewinn begann, endete als technische Schuld.&lt;/p&gt;
&lt;p&gt;Diese Geschichte wiederholt sich tausendfach in der Branche. Immer mehr Startups setzen auf überwiegend AI-generierten Code - Y Combinator berichtete, dass ein Viertel der akzeptierten Startups Codebases mit 95 Prozent AI-generiertem Code einreichten. Doch was anfangs begeistert, führt schnell zu Ernüchterung: generischer Code, schlechte Architektur, Sicherheitslücken. Spec Driven Development (SDD) verspricht einen Ausweg - indem es die Spezifikation zur &amp;ldquo;Single Source of Truth&amp;rdquo; macht, bevor eine einzige Zeile Code entsteht.&lt;/p&gt;</description></item><item><title>Vaadin Signals - Since 25.1 - Teil 2</title><link>https://javapro.svenruppert.com/vaadin-signals-since-25-1-teil-2/</link><pubDate>Wed, 15 Apr 2026 07:16:02 +0000</pubDate><guid>https://javapro.svenruppert.com/vaadin-signals-since-25-1-teil-2/</guid><description>&lt;h2 id="nebenläufigkeit--thread-sicherheit"&gt;Nebenläufigkeit &amp;amp; Thread-Sicherheit&lt;/h2&gt;
&lt;p&gt;Die Sicherheit von Threads ist das Erste, was erfahrene Java-Entwickler hinterfragen, wenn sie auf eine neue Abstraktion stoßen. Signals gehen diese Frage mit zwei grundlegend unterschiedlichen Ansätzen an, je nachdem, ob der Bundesstaat sitzungslokal oder sitzungsweit ist.&lt;/p&gt;
&lt;p&gt;Lokale Signale haben eine eigene Sperre, die das Lesen und Schreiben zwischen dem UI-Thread einer Sitzung und den von dieser Sitzung ausgelösten Hintergrundaufgaben koordiniert. Daher ist jeder, der in derselben Sitzung ein ValueSignal aus einem CompletableFuture-Callback schreibt, sicher.&lt;/p&gt;</description></item><item><title>Vaadin Signals - Since 25.1 - Teil 1</title><link>https://javapro.svenruppert.com/vaadin-signals-since-25-1-teil-1/</link><pubDate>Tue, 14 Apr 2026 07:13:07 +0000</pubDate><guid>https://javapro.svenruppert.com/vaadin-signals-since-25-1-teil-1/</guid><description>&lt;h2 id="motivation-was-war-bisher-das-problem"&gt;Motivation: Was war bisher das Problem?&lt;/h2&gt;
&lt;p&gt;Jeder, der schon längere Zeit mit Vaadin Flow arbeitet, kennt zwei Arten von Schmerz – und beide werden angesprochen.&lt;/p&gt;
&lt;p&gt;Das Erste ist offensichtlich: Eine Hintergrundoperation schreibt Daten, mehrere Browser-Tabs müssen synchronisiert werden, und plötzlich bist du tief in UI.access(), @Push und der Frage, warum Tab B nicht reagiert, obwohl Tab A gerade etwas geschrieben hat.&lt;/p&gt;
&lt;p&gt;Die zweite ist subtiler, aber grundlegender: Selbst in rein lokalem, Einzelbenutzer-UI-Code – einem Formular, einem Einkaufswagen, einer detaillierten Ansicht – ist der Zustand über Komponentenvariablen verteilt, manuell synchronisiert und zwingend verwaltet. Wenn sich ein Wert ändert, ruft man component.setValue() auf, was ein Label aktualisiert und den Status des Buttons festlegt. Der Entwickler koordiniert, was geändert werden muss – nicht das Framework.&lt;/p&gt;</description></item><item><title>Joyful web development with Hypermedia-Driven Applications and HTMX</title><link>https://javapro.svenruppert.com/joyful-web-development-with-hypermedia-driven-applications-and-htmx/</link><pubDate>Mon, 13 Apr 2026 07:02:24 +0000</pubDate><guid>https://javapro.svenruppert.com/joyful-web-development-with-hypermedia-driven-applications-and-htmx/</guid><description>&lt;p&gt;Single-Page Applications, State Management, Hydration, Client-Side Routing – moderne Webanwendungen strotzen vor Tools, Frameworks und Komplexität. Dabei war die ursprüngliche Idee des Webs eigentlich relativ einfach. In diesem Artikel beleuchten wir die Ursprünge von Hypermedia und wie Hypermedia-Driven Applications uns heute helfen können, wieder Spaß an der Webentwicklung zu finden – ohne die Komplexität typischer Single-Page-Anwendungen.&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2026/02/Copilot_20260210_213207.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="das-komplexitätsproblem"&gt;Das Komplexitätsproblem&lt;/h2&gt;
&lt;p&gt;Eine typische Webanwendung besteht heutzutage meist aus einer Server-Komponente, die eine JSON-API bereitstellt.&lt;br&gt;
Diese APIs werden dann von einer Single-Page-Anwendung als Frontend konsumiert.&lt;br&gt;
Während die Auswahl auf Serverseite noch relativ überschaubar ist, sind die &lt;a href="https://hemaks.org/posts/javascript-fatigue-20-are-modern-frameworks-killing-web-development/"&gt;Möglichkeiten im Frontend nahezu unerschöpflich und werden jeden Tag mehr&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Url-Shortener - Redirect-Statistiken - Teil 2</title><link>https://javapro.svenruppert.com/url-shortener-redirect-statistiken-teil-2/</link><pubDate>Thu, 09 Apr 2026 07:05:03 +0000</pubDate><guid>https://javapro.svenruppert.com/url-shortener-redirect-statistiken-teil-2/</guid><description>&lt;h2 id="die-vaadin-ui-komponenten-im-detail"&gt;Die Vaadin-UI-Komponenten im Detail&lt;/h2&gt;
&lt;p&gt;In diesem Teil geht es nun weiter mit der Implementierung von den Redirect-Statistiken in dem Open Source Tool URL-Shortener. Den ersten Teil findest Du hier: &lt;strong&gt;&lt;a href="https://3g3.eu/Hfzsf3"&gt;https://3g3.eu/Hfzsf3&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die Quelltexte findest Du auf GitHub unter&lt;/strong&gt; &lt;a href="https://3g3.eu/url"&gt;&lt;strong&gt;https://3g3.eu/url&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2026/04/image-4-1024x382.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 id="die-komponentenarchitektur"&gt;Die Komponentenarchitektur&lt;/h3&gt;
&lt;p&gt;Die Vaadin-UI für die Statistik-Funktionalität besteht aus mehreren eng verzahnten, aber bewusst entkoppelten Komponenten. Im Zentrum stehen zwei Views: die StatisticsView als Übersichtsseite und die StatisticsDetailView für die Analyse einzelner ShortCodes. Beide nutzen die wiederverwendbare StatisticsToolbar für Datumsauswahl und Granularitätssteuerung. Diese Trennung folgt dem Prinzip der Komposition über Vererbung – ein Muster, das sich in Vaadin-Anwendungen bewährt hat.&lt;/p&gt;</description></item><item><title>Großes Kino für Java-Entwickler &amp; Architekten</title><link>https://javapro.svenruppert.com/grosses-kino-fuer-java-entwickler-architekten/</link><pubDate>Wed, 08 Apr 2026 12:00:36 +0000</pubDate><guid>https://javapro.svenruppert.com/grosses-kino-fuer-java-entwickler-architekten/</guid><description>&lt;p&gt;&lt;strong&gt;JCON EUROPE 2026 | 20. bis 23. April 2026 | Cinedom in Köln&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Wer heute über moderne Softwareentwicklung spricht, spricht zwangsläufig über Java. Kaum eine Technologie prägt die Enterprise-Welt so nachhaltig – und kaum eine Community ist gleichzeitig so lebendig, vielfältig und innovationsgetrieben. Genau hier setzt die JCON an: als Treffpunkt, als Plattform und als Erlebnisraum für Entwicklerinnen und Entwickler aus der ganzen Welt. Mit Teilnehmern aus über 70 Ländern hat sich die JCON längst zu einem internationalen Treffpunkt entwickelt. Dabei bleiben &lt;strong&gt;Offenheit, Wissensaustausch und Community-Gedanke&lt;/strong&gt; zentrale Elemente.&lt;/p&gt;</description></item><item><title>Url-Shortener - Redirect-Statistiken - Teil 1</title><link>https://javapro.svenruppert.com/url-shortener-redirect-statistiken-teil-1/</link><pubDate>Tue, 07 Apr 2026 12:59:48 +0000</pubDate><guid>https://javapro.svenruppert.com/url-shortener-redirect-statistiken-teil-1/</guid><description>&lt;h3 id="redirect-statistiken-in-vaadin-flow-vom-event-bis-zur-visualisierung"&gt;Redirect-Statistiken in Vaadin Flow: Vom Event bis zur Visualisierung&lt;/h3&gt;
&lt;p&gt;Ein URL-Shortener erfüllt auf den ersten Blick eine triviale Aufgabe: Er nimmt eine lange URL entgegen und liefert eine kurze zurück. Der eigentliche Wert entsteht jedoch erst durch das, was nach dem Erstellen passiert – nämlich die Nutzung. Wie oft wird ein Link aufgerufen? Zu welchen Tageszeiten? Über welchen Zeitraum verteilt? Diese Fragen sind nicht nur aus Neugier interessant, sondern bilden die Grundlage für fundierte Entscheidungen. Wer einen Link in einer Kampagne einsetzt, möchte wissen, ob die Kampagne funktioniert. Wer einen Link intern teilt, möchte verstehen, ob die Zielgruppe ihn überhaupt nutzt.&lt;/p&gt;</description></item><item><title>DevOps-Patterns und Java 26 für On-Premises LLM-Plattformen in sicherheitskritischen Umgebungen</title><link>https://javapro.svenruppert.com/devops-patterns-und-java-26-fuer-on-premises-llm-plattformen-in-sicherheitskritischen-umgebungen/</link><pubDate>Mon, 06 Apr 2026 07:00:00 +0000</pubDate><guid>https://javapro.svenruppert.com/devops-patterns-und-java-26-fuer-on-premises-llm-plattformen-in-sicherheitskritischen-umgebungen/</guid><description>&lt;p&gt;Während die erste Welle der KI-Adoption in vielen Organisationen auf Cloud-APIs setzte, ist dieser Ansatz in sicherheitskritischen und regulierten Umgebungen häufig nicht nutzbar. Vertraulichkeitsanforderungen, Datenschutzvorgaben und der Bedarf an technisch durchsetzbaren Betriebsgrenzen stehen dem entgegen. In On-Premises-Setups erweitert sich die Architektur um zusätzliche Laufzeitkomponenten, etwa LLM-Serving, Retrieval und Wissensartefakte wie Indizes und Prompts. Der Fokus verschiebt sich damit von der reinen Modellnutzung zur Plattformfrage: Wie lassen sich Datenzugriffe und Berechtigungen entlang der Pipeline kontrollieren? Wie bleiben Änderungen an Modellen, Prompts und Indizes nachvollziehbar? Und wie lassen sich Fehlerfälle reproduzierbar eingrenzen und zurückrollen?&lt;/p&gt;</description></item><item><title>Immer auf dem Laufenden – mit jeder neuen kostenlosen PDF Ausgabe!</title><link>https://javapro.svenruppert.com/immer-auf-dem-laufenden-mit-jeder-neuen-kostenlosen-pdf-ausgabe-26-3/</link><pubDate>Thu, 26 Mar 2026 12:05:18 +0000</pubDate><guid>https://javapro.svenruppert.com/immer-auf-dem-laufenden-mit-jeder-neuen-kostenlosen-pdf-ausgabe-26-3/</guid><description>&lt;p&gt;&lt;br&gt;
&lt;strong&gt;Du willst nichts mehr verpassen?&lt;/strong&gt;&lt;br&gt;
Mit  unseren kostenlosen &lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;News&lt;/strong&gt;&lt;/a&gt; wirst Du automatisch benachrichtigt und erhältst alle zukünftigen PDF-Ausgaben sofort nach der Veröffentlichung per E-Mail — ganz ohne zusätzlichen Aufwand. Profitiere von &lt;strong&gt;exklusiven JAVAPRO-Inhalten&lt;/strong&gt;, &lt;strong&gt;Special Editions&lt;/strong&gt; und bleibe immer auf dem neuesten Stand.&lt;/p&gt;
&lt;p&gt;✔️ 100 % kostenlos&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;Jetzt alle zukünftigen PDF-Ausgaben abonnieren&lt;/strong&gt;&lt;/a&gt;** und als Erster über alles informiert sein**!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;„From Coder To System Designer “ –&lt;/strong&gt; &lt;a href="https://javapro.svenruppert.com/uploads/2026/03/JAVAPRO_03-2026.pdf"&gt;&lt;strong&gt;PDF hier downloaden!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2026/03/Subscribe-Newsletter-JAVAPRO-Magazine-PDF-26-3-1024x576.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Ein Vaadin-Starterprojekt mit klarem Fokus</title><link>https://javapro.svenruppert.com/ein-vaadin-starterprojekt-mit-klarem-fokus/</link><pubDate>Wed, 18 Mar 2026 07:04:21 +0000</pubDate><guid>https://javapro.svenruppert.com/ein-vaadin-starterprojekt-mit-klarem-fokus/</guid><description>&lt;p&gt;Viele Beispielprojekte überfrachten den Einstieg, weil sie zu viele Themen gleichzeitig aufzeigen. Routing, Datenzugriff, Security, Formulare, Theme-Anpassungen und weitere Integrationen werden dann in einer einzigen Demo dargestellt. Für Leser wird es dadurch schwieriger, den eigentlichen Aufbau des Projekts zu erkennen.&lt;/p&gt;
&lt;p&gt;Dieses Projekt verfolgt einen anderen Ansatz. Im Mittelpunkt steht ein kompaktes Gerüst aus AppShell, MainLayout, mehreren Views, einem kleinen Service, einem eigenen Theme und vorbereiteter Internationalisierung. Ziel ist es, die grundlegenden Bausteine einer Vaadin-Flow-Anwendung so sichtbar zu machen, dass ihr Zusammenspiel nachvollziehbar bleibt.&lt;/p&gt;</description></item><item><title>Internationalisierung (i18n) in einer Vaadin-Anwendung</title><link>https://javapro.svenruppert.com/internationalisierung-i18n-in-einer-vaadin-anwendung/</link><pubDate>Wed, 11 Mar 2026 07:06:19 +0000</pubDate><guid>https://javapro.svenruppert.com/internationalisierung-i18n-in-einer-vaadin-anwendung/</guid><description>&lt;p&gt;Moderne Webanwendungen werden selten nur von Benutzern derselben Sprache verwendet. Selbst interne Werkzeuge erreichen häufig internationale Teams oder werden in verschiedenen Ländern eingesetzt. Eine mehrsprachige Benutzeroberfläche ist daher keine Luxusfunktion, sondern ein wichtiger Bestandteil der Benutzerfreundlichkeit.&lt;/p&gt;
&lt;p&gt;Auch das Open‑Source‑Projekt URL‑Shortener profitiert von einer klaren Internationalisierungsstrategie. Die Anwendung richtet sich an Entwickler, Administratoren und andere Benutzer, die Links verwalten, analysieren oder verteilen möchten. Damit die Oberfläche unabhängig von der Herkunft der Benutzer verständlich bleibt, unterstützt die Anwendung mehrere Sprachen.&lt;/p&gt;</description></item><item><title>Saubere Styles in Vaadin: CSS statt getStyle().set()</title><link>https://javapro.svenruppert.com/saubere-styles-in-vaadin-css-statt-getstyle-set/</link><pubDate>Wed, 04 Mar 2026 13:25:41 +0000</pubDate><guid>https://javapro.svenruppert.com/saubere-styles-in-vaadin-css-statt-getstyle-set/</guid><description>&lt;p&gt;Vaadin Flow ermöglicht es, komplette Webanwendungen ausschließlich in Java zu entwickeln. Komponenten, Layouts, Navigation und sogar komplexe UI-Strukturen lassen sich serverseitig modellieren, ohne direkt mit HTML oder JavaScript arbeiten zu müssen. Dieser Ansatz ist einer der Hauptgründe, warum Vaadin besonders in Java-zentrierten Projekten beliebt ist.&lt;/p&gt;
&lt;p&gt;Mit zunehmender Größe eines Projekts entsteht jedoch ein typisches Problem: Styling wird häufig direkt im Java-Code vorgenommen. Vaadin erlaubt dies bequem über die Methode getStyle().set(&amp;hellip;). Dadurch lassen sich Abstände, Farben oder Layout-Eigenschaften schnell anpassen. In kleinen Prototypen wirkt dieses Vorgehen zunächst harmlos und sogar praktisch.&lt;/p&gt;</description></item><item><title>Immer Up to Date: Erhalte Jederzeit die Neue Kostenlose PDF-Ausgabe!</title><link>https://javapro.svenruppert.com/immer-up-to-date-erhalte-jederzeit-die-neue-kostenlose-pdf-ausgabe-2-26/</link><pubDate>Mon, 23 Feb 2026 13:20:19 +0000</pubDate><guid>https://javapro.svenruppert.com/immer-up-to-date-erhalte-jederzeit-die-neue-kostenlose-pdf-ausgabe-2-26/</guid><description>&lt;p&gt;&lt;strong&gt;Möchtest Du sicherstellen, dass Du immer die neueste JAVAPRO erhältst?&lt;/strong&gt;&lt;br&gt;
Mit unseren kostenlosen &lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;News&lt;/strong&gt;&lt;/a&gt; wirst Du automatisch benachrichtigt und erhältst alle zukünftigen PDF-Ausgaben sofort nach der Veröffentlichung per E-Mail — ganz ohne zusätzlichen Aufwand.&lt;/p&gt;
&lt;p&gt;Bleibe stets auf dem neuesten Stand und profitiere von &lt;strong&gt;exklusiven Inhalten&lt;/strong&gt; &amp;amp; &lt;strong&gt;Special Editions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;Jetzt alle zukünftigen PDF-Ausgaben kostenlos abonnieren&lt;/strong&gt;&lt;/a&gt;** und als Erster informiert sein**!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.svenruppert.com/uploads/2026/02/JAVAPRO_02-2026.pdf"&gt;Kostenlose PDF hier downloaden&lt;/a&gt;: Edition 02/2026 | Engineering Intelligence - Building Systems in the AI Age&lt;/p&gt;</description></item><item><title>Ein unerwartet problemloses Upgrade</title><link>https://javapro.svenruppert.com/ein-unerwartet-problemloses-upgrade/</link><pubDate>Wed, 18 Feb 2026 07:05:47 +0000</pubDate><guid>https://javapro.svenruppert.com/ein-unerwartet-problemloses-upgrade/</guid><description>&lt;p&gt;Der Ausgangspunkt für diesen Artikel war kein strategischer Architektur‑Workshop und kein langfristig geplanter Migrationspfad, sondern ein vergleichsweise unspektakulärer Schritt: die Aktualisierung der Versionsnummern im bestehenden Projekt. Im Rahmen der Weiterentwicklung meines URL‑Shortener‑Projekts stand ohnehin ein reguläres Dependency‑Update an. Vaadin 25 ( &lt;a href="https://3g3.eu/vdn25"&gt;&lt;strong&gt;https://3g3.eu/vdn25&lt;/strong&gt;&lt;/a&gt; ) war zu diesem Zeitpunkt bereits verfügbar – also lag es nahe, den Schritt einfach zu gehen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die Quelltexte zu dem Projekt befinden sich&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;auf GitHub unter&lt;/strong&gt; &lt;a href="https://3g3.eu/url"&gt;&lt;strong&gt;https://3g3.eu/url&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2026/02/image-11-1024x632.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Die Erwartungshaltung war dabei realistisch, vielleicht sogar leicht skeptisch. Ein neues Major‑Release, neue Mindestanforderungen, ein modernisierter Stack – all das sind üblicherweise gute Gründe, zumindest mit kleineren Anpassungen oder ersten Reibungen zu rechnen. Entsprechend gering war die Hoffnung, dass ein einfaches Hochziehen der Versionsnummern tatsächlich ausreichen könnte.&lt;/p&gt;</description></item><item><title>Von Spaghetti zu Hexagonen: Ein praktischer Leitfaden zur sauberen Java-Architektur</title><link>https://javapro.svenruppert.com/von-spaghetti-zu-hexagonen-ein-praktischer-leitfaden-zur-sauberen-java-architektur/</link><pubDate>Mon, 16 Feb 2026 07:02:42 +0000</pubDate><guid>https://javapro.svenruppert.com/von-spaghetti-zu-hexagonen-ein-praktischer-leitfaden-zur-sauberen-java-architektur/</guid><description>&lt;h2 id="eine-kulinarische-warnung-und-die-dunkle-seite-des-codes"&gt;Eine kulinarische Warnung und die dunkle Seite des Codes&lt;/h2&gt;
&lt;p&gt;Willkommen, Mitarchitekt und geschätzter Entwickler, in unserem hexagonalen Stadtstaat – einem Reich, in dem Pragmatismus suprema regiert und Flexibilität unsere größte Stärke ist. Dieser Leitfaden ist keine Elfenbeinturm-Doktrin voller theoretischer Perfektion, sondern vielmehr ein vielseitiges Werkzeugarsenal, das in der Schmiede realer Herausforderungen und unzähliger Produktionsschlachten geschmiedet wurde.&lt;/p&gt;
&lt;p&gt;Bevor wir die Zitadelle der sauberen Architektur errichten können, müssen wir zunächst die Realität unserer Branche anerkennen. Wir müssen die „Dunkle Seite des Codes“ navigieren. Die Softwarewelt ist voll von kulinarischen Katastrophen, die einen Koch zum Weinen bringen würden. Wir alle kennen &lt;strong&gt;Spaghetti-Code&lt;/strong&gt;^(&lt;a href="#d3a72cc8-f76c-4572-9780-a6334ece7de7"&gt;1&lt;/a&gt;), ein verworrenes Durcheinander, in dem der Programmfluss sich wie Pasta windet und dreht, sodass die Wartung zu einem Albtraum wird, bei dem Referenzen und Abhängigkeiten überall hin springen. Doch das Menü der Katastrophen ist umfangreich.&lt;/p&gt;</description></item><item><title>URL-Shortener - Import und Vaadin</title><link>https://javapro.svenruppert.com/url-shortener-import-und-vaadin/</link><pubDate>Wed, 11 Feb 2026 07:12:18 +0000</pubDate><guid>https://javapro.svenruppert.com/url-shortener-import-und-vaadin/</guid><description>&lt;h2 id="einordnung-warum-ein-import-überhaupt-eine-ui-braucht"&gt;Einordnung: Warum ein Import überhaupt eine UI braucht&lt;/h2&gt;
&lt;p&gt;Importfunktionen werden in Anwendungen häufig als rein technisches Detail betrachtet. Daten werden eingelesen, verarbeitet und stehen anschließend zur Verfügung – idealerweise ohne weitere Interaktion. In der Praxis ist ein Import jedoch selten ein unsichtbarer Vorgang. Er markiert einen Übergang zwischen bestehenden Systemzuständen, zwischen alten und neuen Daten, zwischen Vertrauen und Kontrolle. Genau an dieser Stelle entsteht die Notwendigkeit einer Benutzeroberfläche.&lt;/p&gt;
&lt;p&gt;Im URL-Shortener ist der Import nicht als Hintergrundprozess konzipiert, sondern als expliziter, sichtbarer Vorgang. Die UI übernimmt dabei nicht die Rolle eines fachlichen Entscheiders, sondern die eines transparenten Vermittlers. Sie schafft einen klar abgegrenzten Raum, in dem ein Import stattfinden kann, ohne bestehende Daten unmittelbar zu verändern. Allein diese Entkopplung rechtfertigt bereits die Existenz einer eigenen Import-Oberfläche.&lt;/p&gt;</description></item><item><title>JCON Meets Enterprise AI – From Basics to Production</title><link>https://javapro.svenruppert.com/jcon-meets-enterprise-ai-from-basics-to-production/</link><pubDate>Mon, 09 Feb 2026 07:07:32 +0000</pubDate><guid>https://javapro.svenruppert.com/jcon-meets-enterprise-ai-from-basics-to-production/</guid><description>&lt;p&gt;Vom &lt;strong&gt;20.–23. April 2026&lt;/strong&gt; trifft sich die europäische Java-Community erneut im &lt;strong&gt;Cinedom-Multiplexkino&lt;/strong&gt; in Köln zur &lt;strong&gt;JCON EUROPE 2026&lt;/strong&gt;. Entwickler, Architekten und Java-Enthusiasten sammeln dort vier Tage lang Inspirationen, tauschen Wissen aus und teilen praxisnahe Erfahrungen – alles auf der großen Leinwand.&lt;/p&gt;
&lt;p&gt;Unter dem Motto &lt;strong&gt;„Big screen. Big community. Big AI.“&lt;/strong&gt; bietet die JCON EUROPE 2026 ein &lt;strong&gt;reines Präsenz-Programm&lt;/strong&gt; mit täglichen &lt;a href="https://schedule.jcon.one/2026/"&gt;Sessions&lt;/a&gt; von &lt;strong&gt;9:00 bis 18:00 Uhr (CEST)&lt;/strong&gt; und verbindet technische Tiefe mit einem starken Community-Fokus.&lt;/p&gt;</description></item><item><title>URL-Shortener - JSON-Export in Vaadin Flow</title><link>https://javapro.svenruppert.com/url-shortener-json-export-in-vaadin-flow/</link><pubDate>Thu, 05 Feb 2026 16:10:28 +0000</pubDate><guid>https://javapro.svenruppert.com/url-shortener-json-export-in-vaadin-flow/</guid><description>&lt;p&gt;Exportfunktionen werden häufig als rein technische Nebenaufgabe betrachtet: ein Button, ein Download, fertig. In einer Vaadin-basierten Anwendung zeigt sich jedoch sehr schnell, dass der Export weit mehr ist als das Schreiben von Daten in eine Datei. Er ist eine direkte Verlängerung des UI-Zustands, ein infrastruktureller Vertrag zwischen Frontend und Backend – und ein entscheidender Faktor für Wartbarkeit und Vorhersagbarkeit.&lt;/p&gt;
&lt;p&gt;Dieser Artikel zeigt, wie im URL-Shortener-Projekt ein JSON-basierter Export bewusst als UI-getriebener Workflow gestaltet wurde. Der Fokus liegt dabei nicht auf Dateiformaten oder komplexen Backend-Abstraktionen, sondern auf der sauberen Einbettung des Exports in eine Vaadin-Flow-Oberfläche: Filterkopplung, Download-Mechanik, Paging-Grenzen und klare Verantwortlichkeiten zwischen UI, Client und Server.&lt;/p&gt;</description></item><item><title>Immer auf dem Laufenden – mit jeder neuen kostenlosen PDF Ausgabe!</title><link>https://javapro.svenruppert.com/immer-auf-dem-laufenden-mit-jeder-neuen-kostenlosen-pdf-ausgabe-26-1/</link><pubDate>Tue, 03 Feb 2026 14:24:47 +0000</pubDate><guid>https://javapro.svenruppert.com/immer-auf-dem-laufenden-mit-jeder-neuen-kostenlosen-pdf-ausgabe-26-1/</guid><description>&lt;p&gt;&lt;strong&gt;Du willst nichts mehr verpassen?&lt;/strong&gt;&lt;br&gt;
Mit unseren kostenlosen &lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;News&lt;/strong&gt;&lt;/a&gt; wirst Du automatisch benachrichtigt und erhältst alle zukünftigen PDF-Ausgaben sofort nach der Veröffentlichung per E-Mail — ganz ohne zusätzlichen Aufwand. Profitiere von &lt;strong&gt;exklusiven JAVAPRO-Inhalten&lt;/strong&gt;, &lt;strong&gt;Special Editions&lt;/strong&gt; und bleibe immer auf dem neuesten Stand.&lt;/p&gt;
&lt;p&gt;✔️ 100 % kostenlos&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;Jetzt alle zukünftigen PDF-Ausgaben abonnieren&lt;/strong&gt;&lt;/a&gt;** und als Erster über alles informiert sein**!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;„Agentic AI Meets Java “ –&lt;/strong&gt; &lt;a href="https://javapro.svenruppert.com/uploads/2026/02/JAVAPRO_01-2026.pdf"&gt;&lt;strong&gt;PDF hier downloaden!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2026/02/Subscribe-Newsletter-JAVAPRO-Magazine-PDF-26-1-1024x536.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;</description></item><item><title>1BRC - Die ersten 80% Performance</title><link>https://javapro.svenruppert.com/1brc-die-ersten-80-performance/</link><pubDate>Mon, 26 Jan 2026 07:03:43 +0000</pubDate><guid>https://javapro.svenruppert.com/1brc-die-ersten-80-performance/</guid><description>&lt;p&gt;Die &lt;a href="https://www.morling.dev/blog/one-billion-row-challenge/"&gt;One Billion Row Challenge (1BRC)&lt;/a&gt; startete als Projekt über den Jahreswechsel 2023/2024 und widmete sich einer vermeintlich einfachen Fragestellung: Wie schnell können Temperaturmesswerte aus einer Textdatei mittels Java verarbeitet werden, um Minimum-, Durchschnitts- und Maximumwerte pro Wetterstation zu berechnen? Die Herausforderung ergibt sich dabei aus dem Umfang des Datensatzes, der mit einer Milliarde Zeilen eine Gesamtgröße von etwa 13,8 GB umfasst.&lt;/p&gt;
&lt;p&gt;Thomas Wuerthinger, Quan Anh Mai und Alfonso Peterssen erzielten mit 1,5 Sekunden auf 8 Cores das Spitzenresultat. Diese Performance war in diesem Ausmaß unerwartet. Bei einer detaillierten Analyse des Quellcodes wird jedoch ersichtlich, dass die Implementierung weit über die übliche Java-Entwicklung hinausgeht. Es handelt sich um eine hochkomplexe, auf diesen spezifischen Use-Case zugeschnittene Lösung, deren Optimierungen größtenteils nicht ohne Weiteres auf andere Szenarien übertragbar sind.&lt;/p&gt;</description></item><item><title>JCON EUROPE 2026: Early Bird endet in zwei Wochen — vollständiger Sessionplan online</title><link>https://javapro.svenruppert.com/jcon-europe-2026-early-bird-endet-in-zwei-wochen-vollstaendiger-sessionplan-online/</link><pubDate>Wed, 21 Jan 2026 12:00:06 +0000</pubDate><guid>https://javapro.svenruppert.com/jcon-europe-2026-early-bird-endet-in-zwei-wochen-vollstaendiger-sessionplan-online/</guid><description>&lt;p&gt;Da die &lt;strong&gt;JCON EUROPE 2026&lt;/strong&gt; näher rückt, steht das Ende der &lt;strong&gt;Early-Bird-Ticketphase&lt;/strong&gt; kurz bevor – Teilnehmenden bleiben nur noch etwa &lt;strong&gt;zwei Wochen&lt;/strong&gt;, um sich vergünstigte Tickets zu sichern. Das Early-Bird-Angebot läuft bis &lt;strong&gt;31. Januar 2026 (23:59 Uhr, UTC+1)&lt;/strong&gt; und umfasst &lt;strong&gt;&lt;a href="https://2026.europe.jcon.one/tickets"&gt;20 % Rabatt&lt;/a&gt;&lt;/strong&gt; auf alle Conference-Pässe. Die &lt;strong&gt;JCON EUROPE 2026&lt;/strong&gt; findet vom &lt;strong&gt;20. bis 23. April 2026&lt;/strong&gt; im &lt;strong&gt;Cinedom Köln&lt;/strong&gt; statt.&lt;/p&gt;
&lt;p&gt;Zur Planung ist der &lt;strong&gt;Sessionplan bereits online verfügbar&lt;/strong&gt;:&lt;br&gt;
&lt;a href="https://schedule.jcon.one/2026/?utm_source=chatgpt.com"&gt;https://schedule.jcon.one/2026/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="vier-tage-java-architektur-und-community"&gt;Vier Tage Java, Architektur und Community&lt;/h2&gt;
&lt;p&gt;Los geht es mit &lt;strong&gt;Workshops am Montag, 20. April&lt;/strong&gt;, ab &lt;strong&gt;13:00 Uhr&lt;/strong&gt;. Danach folgen &lt;strong&gt;drei volle Konferenztage&lt;/strong&gt; mit praxisnahen Java Deep Dives, Architektur-Insights, Hands-on-Demos, Mentoring-Angeboten sowie viel Networking im „Hallway Track“. Zusätzlich hat JCON eine &lt;strong&gt;VIP-Party zur Wochenmitte&lt;/strong&gt; angekündigt.&lt;/p&gt;</description></item><item><title>LLM-Context und Tools</title><link>https://javapro.svenruppert.com/llm-context-und-tools/</link><pubDate>Mon, 12 Jan 2026 09:03:34 +0000</pubDate><guid>https://javapro.svenruppert.com/llm-context-und-tools/</guid><description>&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2026/01/ollama_tools-1024x585.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Im letzten Artikel (&lt;a href="https://javapro.io/de/llm-context"&gt;https://javapro.io/de/llm-context&lt;/a&gt;) haben wir untersucht, wie LLMs mithilfe des Contexts ganze Chat-Verläufe verarbeiten können. Doch die Möglichkeiten des Contexts gehen weit darüber hinaus. In diesem Artikel schauen wir uns an, wie wir der LLM über den Context Funktionen bereitstellen können, um qualitativ hochwertigere Antworten zu erhalten. Dieses Konzept ist bekannt als &lt;strong&gt;LLM-Context und Tools&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vorbemerkungen&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Die Code-Beispiele basieren auf dem Wissen aus dem Artikel &lt;a href="https://javapro.io/de/llm-context"&gt;https://javapro.io/de/llm-context&lt;/a&gt;. Daher wäre es sinnvoll, zuerst diesen zu lesen.&lt;/li&gt;
&lt;li&gt;Alle Beispiele stehen in GitHub-Repos zur Verfügung.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="beispiel-kurzreise-nach-paris"&gt;Beispiel Kurzreise nach Paris&lt;/h2&gt;
&lt;p&gt;Wir möchten eine Kurzreise nach Paris machen und fragen uns, was wir da alles mitnehmen sollten. Im AI-Zeitalter starten wir Ollama mit dem Llama3.2-Modell und machen folgende Anfrage: &lt;strong&gt;What kind of clothes do I need for a short trip to Paris?&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Wenn Entwickler auf Designer treffen: Erkenntnisse aus Vibe Coding und der Kunst des kreativen Ausdrucks</title><link>https://javapro.svenruppert.com/wenn-entwickler-auf-designer-treffen-erkenntnisse-aus-vibe-coding-und-der-kunst-des-kreativen-ausdrucks/</link><pubDate>Mon, 05 Jan 2026 07:00:36 +0000</pubDate><guid>https://javapro.svenruppert.com/wenn-entwickler-auf-designer-treffen-erkenntnisse-aus-vibe-coding-und-der-kunst-des-kreativen-ausdrucks/</guid><description>&lt;p&gt;Hast du dich jemals gefragt, was passiert, wenn man Klimadaten, künstliche Intelligenz und eine Gruppe kreativer Menschen zusammenbringt? Ich habe es kürzlich bei einem &lt;strong&gt;„Future Fridays”&lt;/strong&gt;-Workshop herausgefunden, einer Zusammenarbeit zwischen infogr8 und der Data Visualization Society. Das Ziel war es, mit KI-gestütztem Creative Coding zu experimentieren, um Klimadaten zu visualisieren.&lt;/p&gt;
&lt;p&gt;Es war eine faszinierende Erfahrung, bei der Datenkreative und Designer – zusammen mit einigen Entwicklerinnen – zusammenkamen. Wir wollten Visualisierungen erstellen, die nicht nur Zahlen anzeigen, sondern tatsächlich Emotionen wecken und zum Handeln anregen. In diesem Artikel zeige ich dir, was ich darüber gelernt habe, wie man Daten zum Leben erweckt, und warum du als Entwickler dich für KI-gestütztes Codieren interessieren solltest.&lt;/p&gt;</description></item><item><title>Immer Up to Date: Erhalte Jederzeit die Neue Kostenlose PDF-Ausgabe!</title><link>https://javapro.svenruppert.com/immer-up-to-date-erhalte-jederzeit-die-neue-kostenlose-pdf-ausgabe-6/</link><pubDate>Mon, 29 Dec 2025 08:00:08 +0000</pubDate><guid>https://javapro.svenruppert.com/immer-up-to-date-erhalte-jederzeit-die-neue-kostenlose-pdf-ausgabe-6/</guid><description>&lt;p&gt;&lt;strong&gt;Möchtest Du sicherstellen, dass Du immer die neueste JAVAPRO erhältst?&lt;/strong&gt;&lt;br&gt;
Mit unseren kostenlosen &lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;News&lt;/strong&gt;&lt;/a&gt; wirst Du automatisch benachrichtigt und erhältst alle zukünftigen PDF-Ausgaben sofort nach der Veröffentlichung per E-Mail — ganz ohne zusätzlichen Aufwand.&lt;/p&gt;
&lt;p&gt;Bleibe stets auf dem neuesten Stand und profitiere von &lt;strong&gt;exklusiven Inhalten&lt;/strong&gt; &amp;amp; &lt;strong&gt;Special Editions&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;Jetzt alle zukünftigen PDF-Ausgaben kostenlos abonnieren&lt;/strong&gt;&lt;/a&gt;** und als Erster informiert sein**!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://javapro.svenruppert.com/uploads/2025/12/JAVAPRO_06-2025.pdf"&gt;Kostenlose PDF hier downloaden&lt;/a&gt;: Edition 06/2025 | Modern Software Systems on the JVM&lt;/p&gt;</description></item><item><title>Automatisierung der JVM Thread-Dump-Analyse mit KI: Praktische Observability für Java auf Amazon ECS und EKS</title><link>https://javapro.svenruppert.com/automatisierung-der-jvm-thread-dump-analyse-mit-ki-praktische-observability-fuer-java-auf-amazon-ecs-und-eks/</link><pubDate>Mon, 29 Dec 2025 07:01:16 +0000</pubDate><guid>https://javapro.svenruppert.com/automatisierung-der-jvm-thread-dump-analyse-mit-ki-praktische-observability-fuer-java-auf-amazon-ecs-und-eks/</guid><description>&lt;p&gt;Angenommen, wir haben folgendes Szenario: Ein Java-Service, der gestern noch einwandfrei funktionierte, konsumiert plötzlich 90% der CPU-Leistung und reagiert kaum noch auf Benutzeranfragen. Anwender erleben Timeouts, und das Operations-Team steht unter Druck, den Vorfall umgehend zu analysieren. In solchen Situationen – ob die Anwendung “blockiert” wirkt oder CPU-Sättigung aufgetreten ist – ist eines der leistungsfähigsten Diagnosewerkzeuge der Thread-Dump. Ein Thread-Dump erfasst den Zustand aller JVM-Threads zu einem bestimmten Zeitpunkt und zeigt Ausführungszustände, Stack-Traces und Lock-Contention – das Rohmaterial, das benötigt wird, um zu verstehen, was die Laufzeitumgebung tatsächlich tut.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Komponenten extrahieren - Teil 2</title><link>https://javapro.svenruppert.com/adventskalender-2025-komponenten-extrahieren-teil-2/</link><pubDate>Mon, 22 Dec 2025 07:06:42 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-komponenten-extrahieren-teil-2/</guid><description>&lt;h3 id="was-bisher-geschah"&gt;Was bisher geschah&lt;/h3&gt;
&lt;p&gt;Im ersten Teil lag der Fokus bewusst auf der strukturellen Neuausrichtung der Benutzeroberfläche. Die zuvor gewachsene, zunehmend monolithische &lt;code&gt;OverviewView&lt;/code&gt; wurde analysiert und gezielt entlastet, indem zentrale Funktionsbereiche in eigenständige UI-Komponenten ausgelagert wurden. Mit der Einführung der &lt;code&gt;BulkActionsBar&lt;/code&gt; und der &lt;code&gt;SearchBar&lt;/code&gt; entstanden klar abgegrenzte Bausteine, die jeweils eine definierte Verantwortung übernehmen und die View von operativer Detailarbeit befreien.&lt;/p&gt;
&lt;p&gt;Dieses Refactoring war kein kosmetischer Schritt, sondern eine bewusste Investition in die langfristige Wartbarkeit der Anwendung. Durch die Trennung von Darstellung, Interaktion und Logik wurde eine modulare Basis geschaffen, die nicht nur besser testbar ist, sondern auch zukünftige Erweiterungen deutlich vereinfacht. Die &lt;code&gt;OverviewView&lt;/code&gt; wandelte sich dabei von einem funktionsüberladenen Zentrum hin zu einer orchestrierenden Instanz, die Komponenten zusammenführt, statt deren interne Abläufe zu steuern.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Komponenten extrahieren - Teil 1</title><link>https://javapro.svenruppert.com/adventskalender-2025-komponenten-extrahieren-teil-1/</link><pubDate>Sun, 21 Dec 2025 07:05:52 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-komponenten-extrahieren-teil-1/</guid><description>&lt;p&gt;Der heutige Tag unseres Adventskalenders markiert einen entscheidenden Schritt in der Weiterentwicklung der Benutzeroberfläche des URL-Shorteners. Nachdem in den vergangenen Tagen vor allem funktionale Erweiterungen im Vordergrund standen – von Filter- und Suchfunktionen bis hin zu Bulk-Operationen – widmet sich dieser Tag einem strukturellen Feinschliff: dem Refactoring zentraler UI-Komponenten. Dieses Refactoring dient nicht nur der Aufräumarbeit im Code, sondern schafft auch eine klare, modulare Basis für zukünftige Erweiterungen sowie eine deutlich verbesserte Developer Experience.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Aktiv-/Inaktiv-Modell - Teil 2</title><link>https://javapro.svenruppert.com/adventskalender-2025-aktiv-inaktiv-modell-teil-2/</link><pubDate>Sat, 20 Dec 2025 07:05:25 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-aktiv-inaktiv-modell-teil-2/</guid><description>&lt;p&gt;Im ersten Teil dieses Beitrags wurde das neue Aktiv-/Inaktiv-Modell für Shortlinks eingeführt und auf architektonischer Ebene verankert. Ausgehend von der fachlichen Motivation wurde gezeigt, warum ein reines Ablaufdatum für moderne Anwendungsfälle nicht ausreicht und weshalb ein expliziter Aktivitätsstatus erforderlich ist.&lt;/p&gt;
&lt;p&gt;Darauf aufbauend wurden die technischen Grundlagen gelegt: Das Core-Domain-Modell wurde um das &lt;code&gt;active&lt;/code&gt;-Flag erweitert, die DTOs entsprechend angepasst und die Serialisierung so gestaltet, dass Abwärtskompatibilität gewährleistet bleibt. Ergänzend wurden die administrativen REST-Endpunkte erweitert, um den Aktivitätsstatus gezielt setzen, abfragen und filtern zu können. Auch das Redirect-Verhalten wurde präzisiert, sodass deaktivierte und abgelaufene Shortlinks über klar definierte HTTP-Status-Codes unterscheidbar sind.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Aktiv-/Inaktiv-Modell - Teil 1</title><link>https://javapro.svenruppert.com/adventskalender-2025-aktiv-inaktiv-modell-teil-1/</link><pubDate>Fri, 19 Dec 2025 07:05:35 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-aktiv-inaktiv-modell-teil-1/</guid><description>&lt;h2 id="warum-ein-aktiv-inaktiv-modell-für-shortlinks"&gt;Warum ein Aktiv-/Inaktiv-Modell für Shortlinks?&lt;/h2&gt;
&lt;p&gt;Für viele Benutzer – insbesondere solche, die im Bereich der Softwareentwicklung arbeiten – sind Shortlinks weit mehr als nur einfache URL-Verkürzungen. Sie fungieren als flexible Weiterleitungsmechanismen für Kampagnen, Feature-Steuerungen, Testszenarien sowie interne Tools. Entsprechend hoch sind die Anforderungen an Transparenz, Steuerbarkeit und ein sauberes Lifecycle-Management.&lt;/p&gt;
&lt;p&gt;Der URL-Shortener erhält dafür ein Aktiv-/Inaktiv-Modell, das diese Ansprüche direkt unterstützt. Ein Benutzer kann nun für jeden Shortlink festlegen, ob dieser aktiv sein soll, temporär deaktiviert wird oder aufgrund eines geplanten Ablaufs keine Nutzer mehr erreichen darf. Gleichzeitig wird deutlich zwischen einem deaktivierten und einem abgelaufenen Shortlink unterschieden – sowohl in der UI als auch im http-Verhalten.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Minimaler Login Prozess - Teil 2</title><link>https://javapro.svenruppert.com/adventskalender-2025-minimaler-login-prozess-teil-2/</link><pubDate>Thu, 18 Dec 2025 07:06:05 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-minimaler-login-prozess-teil-2/</guid><description>&lt;h2 id="was-bisher-geschah"&gt;Was bisher geschah..&lt;/h2&gt;
&lt;p&gt;Im ersten Teil von „Basic Login Solution“ wurde die Grundlage für einen bewusst einfachen, aber strukturell sauberen Admin-Login gelegt. Ausgangspunkt war die Erkenntnis, dass selbst ein technisch schlanker URL-Shortener eine klare Trennung zwischen öffentlichen Funktionen und administrativen Eingriffen benötigt. Ziel war dabei keine vollständige Benutzerverwaltung, sondern eine minimale Zugriffsschranke, die sich nahtlos in die bestehende Core-Java- und Vaadin-Architektur einfügt.&lt;/p&gt;
&lt;p&gt;Zentraler Baustein dieser Lösung ist eine schlanke, dateibasierte Konfiguration über &lt;em&gt;auth.properties&lt;/em&gt;. Mit nur zwei Parametern – einem Aktivierungsschalter und einem Passwort – lässt sich der Login vollständig steuern. Der zugehörige &lt;em&gt;LoginConfigInitializer&lt;/em&gt; stellt sicher, dass diese Konfiguration bereits beim Start des Servlet-Containers eingelesen wird und der Anwendung konsistent zur Verfügung steht. Damit ist klar definiert, ob und wie der Schutzmechanismus greift, noch bevor irgendeine UI gerendert wird.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Minimaler Login Prozess - Teil 1</title><link>https://javapro.svenruppert.com/adventskalender-2025-minimaler-login-prozess-teil-1/</link><pubDate>Wed, 17 Dec 2025 07:05:17 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-minimaler-login-prozess-teil-1/</guid><description>&lt;p&gt;Das Administrations-Interface eines URL-Shorteners stellt einen sensiblen Bereich dar, in dem Kurzlinks geändert, entfernt oder mit Ablaufdaten versehen werden können. Obwohl das System in vielen Fällen auf einem internen Server oder im privaten Umfeld betrieben wird, bleibt der Schutz dieser Verwaltungsoberfläche ein grundlegender Sicherheitsfaktor. Ein versehentlicher Zugriff durch Unbefugte kann nicht nur zu falschen Weiterleitungen oder Datenverlust führen, sondern auch das Vertrauen in das Gesamtsystem beeinträchtigen.&lt;/p&gt;
&lt;p&gt;Mit der Einführung eines konfigurierbaren Login-Mechanismus wird erstmals eine klare Zugriffskontrolle geschaffen, die den Zugriff auf die Management-Funktionen bewusst vom restlichen System trennt. Der Login dient als leichtgewichtige Sicherheitsmaßnahme, die ohne externe Abhängigkeiten, ohne Frameworks und ohne aufwendige Benutzerverwaltung auskommt. Genau diese Einfachheit – ein einzelnes Passwort, eine einfache Konfigurationsdatei und ein zentrierter Login-Screen – macht die Lösung für kleine Deployments oder persönliche Projekte besonders attraktiv.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Massenoperationen im Grid - Teil 2</title><link>https://javapro.svenruppert.com/adventskalender-2025-massenoperationen-im-grid-teil-2/</link><pubDate>Tue, 16 Dec 2025 07:05:16 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-massenoperationen-im-grid-teil-2/</guid><description>&lt;h2 id="was-bisher-geschah"&gt;Was bisher geschah…&lt;/h2&gt;
&lt;p&gt;Im vorherigen Teil wurde die Overview-Ansicht des URL-Shorteners grundlegend erweitert. Ausgangspunkt war die Erkenntnis, dass die bisherige UI stark auf Einzeloperationen ausgelegt war und damit schnell an ihre Grenzen stieß, sobald größere Mengen an Shortlinks verwaltet werden mussten. Um diesen Flaschenhals aufzulösen, wurde das Grid konsequent auf Mehrfachauswahl umgestellt, wodurch die technische Grundlage für echte Massenoperationen geschaffen wurde.&lt;/p&gt;
&lt;p&gt;Auf dieser Basis entstand eine kontextabhängige Bulk-Action-Leiste, die nur dann sichtbar wird, wenn tatsächlich eine Auswahl vorliegt. Sie fungiert als zentrales Steuerinstrument für alle Aktionen, die sich auf mehrere Einträge gleichzeitig beziehen, und bindet diese nahtlos in den bestehenden Arbeitsfluss aus Suche, Filterung und Grid-Interaktion ein. Entscheidend dabei war nicht die bloße Addition neuer Buttons, sondern die saubere Kopplung von UI-Zustand, Auswahl und Aktionserlaubnis.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Massenoperationen im Grid - Teil 1</title><link>https://javapro.svenruppert.com/adventskalender-2025-massenoperationen-im-grid-teil-1/</link><pubDate>Mon, 15 Dec 2025 07:05:20 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-massenoperationen-im-grid-teil-1/</guid><description>&lt;p&gt;Die nächste Etappe des Adventskalenders widmet sich einer Weiterentwicklung, die unmittelbar spürbar wird, sobald man mehr Shortlinks nutzt. Die bisherigen Interaktionsmuster der Overview-Ansicht waren auf Einzeloperationen ausgerichtet und erlaubten nur sehr begrenzte Effizienzgewinne, wenn viele Objekte gleichzeitig bearbeitet werden sollten. Heute wird dieses Paradigma bewusst aufgebrochen und durch ein Zusammenspiel neuer UI-Konzepte ersetzt, das erstmals echte Mehrfachoperationen, kontextsensitives Arbeiten und eine deutlich stringenter gestaltete Benutzerführung ermöglicht.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Die Quelltexte zu diesem Artikel befinden sich auf GitHub unter der folgenden URL:&lt;/strong&gt; &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-08"&gt;&lt;strong&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-08&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Von UI-Interaktionen zu einer deterministischen Refresh-Architektur</title><link>https://javapro.svenruppert.com/adventskalender-2025-von-ui-interaktionen-zu-einer-deterministischen-refresh-architektur/</link><pubDate>Sun, 14 Dec 2025 07:05:41 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-von-ui-interaktionen-zu-einer-deterministischen-refresh-architektur/</guid><description>&lt;p&gt;Nachdem im ersten Teil die konzeptionellen Grundlagen und das neue Zusammenspiel von globaler Suche, Such-Scopes und Advanced-Filters erläutert wurden, richtet sich der Fokus im zweiten Teil auf die technische Mechanik, die diese Interaktionen überhaupt stabil ermöglicht. Denn erst die überarbeitete Refresh-Architektur – allen voran das Zusammenspiel von &lt;code&gt;safeRefresh()&lt;/code&gt; und &lt;code&gt;RefreshGuard&lt;/code&gt; – sorgt dafür, dass die OverviewView trotz zahlreicher potenzieller Auslöser ruhig, deterministisch und vorhersehbar bleibt.&lt;/p&gt;
&lt;p&gt;Während der vorherige Teil also beschreibt, &lt;strong&gt;was&lt;/strong&gt; sich in der Benutzeroberfläche verändert hat und &lt;strong&gt;warum&lt;/strong&gt; diese Strukturierung notwendig war, zeigt Teil 2 nun im Detail, &lt;strong&gt;wie&lt;/strong&gt; die interne Zustandsmaschine arbeitet, wie konkurrierende UI-Ereignisse koordiniert werden und weshalb die View dadurch erst die gewünschte Robustheit erreicht.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Komplexe Suche</title><link>https://javapro.svenruppert.com/adventskalender-2025-komplexe-suche/</link><pubDate>Sat, 13 Dec 2025 07:05:13 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-komplexe-suche/</guid><description>&lt;p&gt;Die kontinuierliche Weiterentwicklung des URL-Shorteners konzentriert sich seit Beginn auf zwei Kernziele: eine robuste technische Basis ohne externe Frameworks und eine moderne, produktive Benutzeroberfläche, die sowohl intuitiv als auch für Power-User effizient bedienbar ist. Im Rahmen der aktuellen Entwicklungsstufe wurde ein wesentliches UI-Modul überarbeitet – die OverviewView, also die Ansicht, in der Benutzer sämtliche gespeicherten Verkürzungen durchsuchen, filtern und verwalten.&lt;/p&gt;
&lt;p&gt;In der vorherigen Version zeigte sich immer deutlicher, dass verschiedene Komponenten in der Suche und der Filterung voneinander entkoppelt waren. Die einfache Suche bot nur begrenzte Funktionalität, während die erweiterten Filter zwar vorhanden waren, jedoch nicht in einen echten Bedienfluss integriert waren. Darüber hinaus war das Zusammenspiel zwischen Benutzerinteraktionen wie dem Reset, der Änderung der Filter, dem Paging oder dem Öffnen der Detailansicht nicht ausreichend stabilisiert, was teilweise zu mehrfachen Refresh-Vorgängen oder widersprüchlichen UI-Zuständen führte.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Einführung multipler Aliasse - Teil 2</title><link>https://javapro.svenruppert.com/adventskalender-2025-einfuehrung-multipler-aliasse-teil-2/</link><pubDate>Fri, 12 Dec 2025 07:05:11 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-einfuehrung-multipler-aliasse-teil-2/</guid><description>&lt;h2 id="was-bisher-geschehen-ist"&gt;Was bisher geschehen ist&amp;hellip;&lt;/h2&gt;
&lt;p&gt;Mit dem heutigen Update eröffnet sich im URL-Shortener ein weiterer, sehr praxisnaher Entwicklungsschritt. Nachdem die letzten Tage vor allem der UI-Verfeinerung und der besseren Strukturierung von Detaildialogen und der Formularlogik gewidmet waren, rückt nun ein Aspekt in den Mittelpunkt, der im Alltag vieler Benutzer eine erhebliche Rolle spielt: die flexible Verwaltung mehrerer Aliasse pro Ziel-URL.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Den Quelltext zu diesem Entwicklungsstand findest Du auf Github unter &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-06"&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-06&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hier noch die relevanten Screenshots der Vaadin-Anwendung.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 - Einführung multipler Aliasse - Teil 1</title><link>https://javapro.svenruppert.com/adventskalender-2025-einfuehrung-multipler-aliasse-teil-1/</link><pubDate>Thu, 11 Dec 2025 07:05:25 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-einfuehrung-multipler-aliasse-teil-1/</guid><description>&lt;h2 id="einleitung-mehr-komfort-für-benutzer"&gt;Einleitung: Mehr Komfort für Benutzer&lt;/h2&gt;
&lt;p&gt;Mit dem heutigen Entwicklungsschritt des URL-Shortener-Projekts wurde ein entscheidender Meilenstein erreicht, der die Benutzererfahrung grundlegend verbessert. Bis zu diesem Punkt war die Arbeit mit Kurz-URLs zwar funktional, aber in vielerlei Hinsicht noch linear: Jede Ziel-URL war genau einem Alias zugeordnet. Das bedeutete, dass Benutzer für unterschiedliche Kontexte oder Kampagnen jeweils eine neue Kurz-URL erstellen mussten, selbst wenn das Ziel identisch war. Dieser Ansatz war zwar einfach, aber nicht flexibel genug, um den realen Anwendungsanforderungen gerecht zu werden.&lt;/p&gt;</description></item><item><title>Adventskalender 2025 – Vom Raster zum Detail: Die Benutzererfahrung im Short-URL-Manager verstehen</title><link>https://javapro.svenruppert.com/adventskalender-2025-vom-raster-zum-detail-die-benutzererfahrung-im-short-url-manager-verstehen/</link><pubDate>Wed, 10 Dec 2025 07:16:25 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-vom-raster-zum-detail-die-benutzererfahrung-im-short-url-manager-verstehen/</guid><description>&lt;h2 id="die-derzeitige-ui-aus-sicht-des-benutzers"&gt;Die derzeitige UI aus Sicht des Benutzers&lt;/h2&gt;
&lt;p&gt;Beim ersten Aufruf landet der Benutzer in der Overview. Die Seite ist aus einem Vaadin-Grid aufgebaut, dessen Kopfbereich eine Suchleiste, Paging-Elemente sowie einen kleinen Einstellungs-Button mit Zahnrad enthält. Der wichtigste Fluss beginnt damit, dass die Tabelle sofort verständliche Spalten anzeigt: den Shortcode als klar typografisch abgesetzter Monospace-Wert mit Kopier-Aktion, die Original-URL als anklickbarer Link, einen Erstellungszeitpunkt im lokalen Format sowie ein Ablauf-Badge, das semantische Zustände wie „Expired“, „Today“ oder „in n days“ visuell über Themenfarben kommuniziert.&lt;/p&gt;</description></item><item><title>Immer auf dem Laufenden – mit jeder neuen kostenlosen PDF Ausgabe!</title><link>https://javapro.svenruppert.com/immer-auf-dem-laufenden-mit-jeder-neuen-kostenlosen-pdf-ausgabe-3/</link><pubDate>Tue, 09 Dec 2025 10:56:25 +0000</pubDate><guid>https://javapro.svenruppert.com/immer-auf-dem-laufenden-mit-jeder-neuen-kostenlosen-pdf-ausgabe-3/</guid><description>&lt;p&gt;&lt;strong&gt;Hat Dir Teil 1 unserer Sonderausgabe „Java 25“ gefallen?&lt;/strong&gt;&lt;br&gt;
Jetzt ist &lt;strong&gt;Teil 2&lt;/strong&gt; erschienen – mit noch mehr spannenden Einblicken, Stimmen aus der Community, Highlights aus 30 Jahren Java und dem Java 25 Release.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Du willst nichts mehr verpassen?&lt;/strong&gt;&lt;br&gt;
Mit unseren kostenlosen &lt;a href="https://javapro.io/#pdf-newsletter"&gt;&lt;strong&gt;News&lt;/strong&gt;&lt;/a&gt; wirst Du automatisch benachrichtigt und erhältst alle zukünftigen PDF-Ausgaben sofort nach der Veröffentlichung per E-Mail — ganz ohne zusätzlichen Aufwand. Profitiere von &lt;strong&gt;exklusiven JAVAPRO Inhalten&lt;/strong&gt;, &lt;strong&gt;Special Editions&lt;/strong&gt; und bleibe immer auf dem neuesten Stand.&lt;/p&gt;</description></item><item><title>Adventskalender - 2025 - Vom Beobachter zum Gestalter: Benutzerkontrolle in der Übersicht - Teil 2</title><link>https://javapro.svenruppert.com/adventskalender-2025-vom-beobachter-zum-gestalter-benutzerkontrolle-in-der-uebersicht-teil-2/</link><pubDate>Tue, 09 Dec 2025 07:06:00 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-vom-beobachter-zum-gestalter-benutzerkontrolle-in-der-uebersicht-teil-2/</guid><description>&lt;p&gt;Die serverseitige Erweiterung für die dynamische Spaltensichtbarkeit folgt derselben gestalterischen Logik wie die UI: Einfachheit, klare Zuständigkeit und ein präziser Datenfluss. Während die OverviewView und der ColumnVisibilityDialog die Oberfläche für die Interaktion bilden, übernehmen mehrere spezialisierte REST-Handler die Verarbeitung und Persistenz der Benutzereinstellungen. Ihre Aufgabe besteht darin, eingehende JSON-Anfragen zu verarbeiten, zu validieren, in Domänenoperationen zu übersetzen und den aktuellen Zustand zurückzugeben oder zu speichern.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der&lt;br&gt;
Quelltext für diese Version befindet sich auf GitHub unter&lt;/strong&gt; &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-04"&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-04&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Adventskalender - 2025 - Vom Beobachter zum Gestalter: Benutzerkontrolle in der Übersicht - Teil 1</title><link>https://javapro.svenruppert.com/adventskalender-2025-vom-beobachter-zum-gestalter-benutzerkontrolle-in-der-uebersicht-teil-1/</link><pubDate>Mon, 08 Dec 2025 17:33:19 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-vom-beobachter-zum-gestalter-benutzerkontrolle-in-der-uebersicht-teil-1/</guid><description>&lt;p&gt;Mit dem vierten Tag des Adventskalenders verändert sich die Perspektive auf die Anwendung grundlegend. Während die Benutzer in den bisherigen Ausbaustufen vor allem auf vorbereitete Strukturen reagierten, tritt nun ein Element der aktiven Gestaltung hinzu. Die „Overview“ war bislang ein zentraler Spiegel des Systemzustands: Sie zeigte alle gespeicherten Kurzlinks, erlaubte deren Filterung und lieferte mit dem Detaildialog einen vertieften Einblick in einzelne Objekte. Doch die Struktur und Sichtbarkeit der Spalten waren bis zu diesem Punkt unveränderlich. Der Benutzer sah stets die Auswahl, die der Entwickler als sinnvoll definiert hatte. Mit der Einführung der dynamischen Spaltensichtbarkeit wird dieser Zustand aufgehoben.&lt;/p&gt;</description></item><item><title>Adventskalender - 2025 - Detail Dialog - Teil 2</title><link>https://javapro.svenruppert.com/adventskalender-2025-detail-dialog-teil-2/</link><pubDate>Sun, 07 Dec 2025 07:06:14 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-detail-dialog-teil-2/</guid><description>&lt;h2 id="client-vertrag-aus-ui-perspektive"&gt;Client-Vertrag aus UI-Perspektive&lt;/h2&gt;
&lt;p&gt;Die Benutzeroberfläche bildet in diesem Projekt nicht nur eine grafische Schicht über dem Backend, sondern ist auch &lt;strong&gt;Teil des Gesamtvertrags&lt;/strong&gt; zwischen Benutzer, Client und Server. In diesem Teil steht der Datenfluss aus Sicht der UI im Mittelpunkt: wie Eingaben in strukturierte Anfragen übersetzt werden, wie der Client diese weiterleitet und welche Rückmeldungen die Benutzeroberfläche anschließend verarbeitet.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der Quelltext für diese Version befindet sich auf GitHub unter&lt;/strong&gt; &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-03"&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-03&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Hier ist der Screenshot der Version, die wir nun implementieren.&lt;/p&gt;</description></item><item><title>Adventskalender - 2025 - Detail Dialog - Teil 1</title><link>https://javapro.svenruppert.com/adventskalender-2025-detail-dialog-teil-1/</link><pubDate>Sat, 06 Dec 2025 07:05:24 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-detail-dialog-teil-1/</guid><description>&lt;h2 id="einordnung-und-zielsetzung-aus-ui-sicht"&gt;Einordnung und Zielsetzung aus UI-Sicht&lt;/h2&gt;
&lt;p&gt;Mit dem heutigen Tag des Adventskalenders wird der Fokus gezielt auf die Interaktionsebene gelegt, die in den vorangegangenen Teilen vorbereitet wurde. Während zu Beginn die grundlegende Struktur der Benutzeroberfläche und das Layout definiert wurden und nachfolgenddie interaktive Tabellenansicht mit Sortierung, Filterung und dynamischen Aktionen etabliert wurde, geht es nun darum, den Übergang von der Übersicht zur Detailbetrachtung konsequent zu gestalten. Der Benutzer soll nicht mehr nur eine tabellarische Sammlung von Datenpunkten sehen, sondern eine auf das jeweilige Objekt zugeschnittene Ansicht erhalten, die kontextbezogene Aktionen ermöglicht.&lt;/p&gt;</description></item><item><title>Adventskalender – 2025 –Persistence – Teil 02</title><link>https://javapro.svenruppert.com/adventskalender-2025-persistence-teil-02/</link><pubDate>Fri, 05 Dec 2025 07:05:13 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-persistence-teil-02/</guid><description>&lt;p&gt;Heute werden wir den StoreIndicator final in die UI integrieren.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der Quelltext für diese Version befindet sich auf GitHub unter &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-02"&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-02&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hier ist der Screenshot der Version, die wir nun implementieren.&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2025/12/image-8.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 id="vaadin-integration-live-status-des-stores"&gt;&lt;strong&gt;Vaadin-Integration: Live-Status des Stores&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Nachdem die Kommunikation zwischen Client und Server über den AdminClient etabliert wurde, rückt nun die Integration in die Vaadin-Oberfläche in den Mittelpunkt. Das Ziel ist, den aktuellen Systemzustand für den Benutzer sichtbar zu machen, ohne dass eine manuelle Aktualisierung erforderlich ist. Der Mechanismus basiert auf zyklischer Abfrage, Ereignissteuerung und einem reaktiven UI-Konzept, die vollständig in Vaadin implementiert wurden.&lt;/p&gt;</description></item><item><title>Adventskalender – 2025 –Persistence – Teil 01</title><link>https://javapro.svenruppert.com/adventskalender-2025-persistence-teil-01/</link><pubDate>Thu, 04 Dec 2025 07:05:08 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-persistence-teil-01/</guid><description>&lt;p&gt;&lt;strong&gt;Sichtbare Veränderung: Wenn die UI den Speicherzustand zeigt&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Mit dem Ende des letzten Adventskalender-Tages war unser URL-Shortener vollständig funktional: Die Admin-Oberfläche konnte Daten filtern, sortieren und seitenweise darstellen – performant, sauber typisiert und vollständig in Core Java implementiert.&lt;br&gt;
Doch hinter dieser Oberfläche lauerte noch ein unsichtbares Problem: &lt;strong&gt;Alle Daten existierten nur im Arbeitsspeicher.&lt;/strong&gt; Sobald der Server neu gestartet wurde, war der gesamte Datenbestand verloren gegangen.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Der Quelltext für diese Version befindet sich auf GitHub unter&lt;/strong&gt; &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-02"&gt;&lt;strong&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-02&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Adventskalender - 2025 - Filter &amp; Search – Teil 02</title><link>https://javapro.svenruppert.com/adventskalender-2025-filter-search-teil-02/</link><pubDate>Wed, 03 Dec 2025 07:07:57 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-filter-search-teil-02/</guid><description>&lt;p&gt;Im vorherigen Teil haben wir uns die Implementierung auf der Serverseite angesehen. In diesem Teil geht es nun um die Abbildung auf der Benutzerseite.&lt;/p&gt;
&lt;p&gt;Den Quelltext zu dem Ausgangszustand ist auf GitHub unter &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-00"&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-00&lt;/a&gt; zu finden. Der nachfolgende Screenshot zeigt diesen Entwicklunsgstand.&lt;/p&gt;
&lt;p&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro.svenruppert.com/uploads/sites/1/2025/12/image-2-1024x208.png" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Der Fokus dieses Adventskalender-Tages liegt auf der Einführung einer gezielten &lt;strong&gt;Filter-, Such- und Paging-Funktionalität&lt;/strong&gt; auf der UI Seite. Ziel ist es, die bestehende „Overview“-Ansicht so zu erweitern, dass Benutzer gezielt nach bestimmten Kurzcodes oder URL-Fragmenten suchen, Zeiträume einschränken und die Ergebnisse seitenweise abrufen können. Alle technischen Grundlagen dazu sind in dem vorherigen Teil gelegt worden.&lt;/p&gt;</description></item><item><title>Adventskalender - 2025 - Filter &amp; Search – Teil 01</title><link>https://javapro.svenruppert.com/adventskalender-2025-filter-search-teil-01/</link><pubDate>Tue, 02 Dec 2025 07:05:12 +0000</pubDate><guid>https://javapro.svenruppert.com/adventskalender-2025-filter-search-teil-01/</guid><description>&lt;p&gt;Mit der in &lt;a href="https://javapro.io/de/web-ui-fuer-den-url-shortener/"&gt;&lt;strong&gt;[Teil III]&lt;/strong&gt;&lt;/a&gt; beschriebenen Vaadin-Oberfläche steht unserem URL-Shortener erstmals eine voll funktionsfähige Administrationskonsole zur Verfügung. Sie ermöglicht, bestehende Kurzlinks tabellarisch einzusehen und manuell zu verwalten. Doch bereits nach wenigen Dutzenden Einträgen zeigt sich eine klare Grenze: Die vollständige Anzeige aller gespeicherten Mappings ist weder performant noch benutzerfreundlich. Ein effizienter Shortener muss skalieren können – nicht nur beim Erzeugen, sondern auch beim Durchsuchen seiner Daten.&lt;/p&gt;
&lt;p&gt;Der Quelltext zu diesem Stand ist auf GitHub unter &lt;a href="https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-00"&gt;https://github.com/svenruppert/url-shortener/tree/feature/advent-2025-day-00&lt;/a&gt; zu finden. Der nachfolgende Screenshot zeigt den Stand, mit dem wir beginnen.&lt;/p&gt;</description></item><item><title>URL‑Shortener Adventskalender 2025</title><link>https://javapro.svenruppert.com/urlshortener-adventskalender-2025/</link><pubDate>Mon, 01 Dec 2025 09:03:59 +0000</pubDate><guid>https://javapro.svenruppert.com/urlshortener-adventskalender-2025/</guid><description>&lt;p&gt;Der Dezember 2025 steht ganz im Zeichen eines Projekts, das in den vergangenen Monaten stetig gewachsen ist: **der Java-basierte URL-Shortener, ein vollständig mit Core Java, Jetty und Vaadin Flow umgesetztes Open-Source-**Projekt. Der Adventskalender begleitet Benutzer jeden Tag durch ein neues Feature, einen technischen Deep Dive oder eine Verbesserung der Architektur – von der grundlegenden Datenstruktur über REST-Handler bis hin zu UI-Komponenten und Security-Aspekten.&lt;/p&gt;
&lt;h2 id="motivation-warum-ein-eigener-url-shortener"&gt;&lt;strong&gt;Motivation: Warum ein eigener URL-Shortener?&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Das gesamte Projekt wird vollständig auf GitHub offen entwickelt. Dort finden Benutzer nicht nur den aktuellen Stand des Codes, sondern auch sämtliche historischen Entwicklungsschritte, Patches, Branches und PRs, die im Rahmen des Adventskalenders thematisiert werden. Der Quellcode ist unter folgender Adresse einsehbar: &lt;a href="https://github.com/svenruppert/url-shortener"&gt;https://github.com/svenruppert/url-shortener&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Java trifft Zukunft: Wie Quarkus Architektur, Performance und Cloud-Native nahtlos verbindet</title><link>https://javapro.svenruppert.com/java-trifft-zukunft-wie-quarkus-architektur-performance-und-cloud-native-nahtlos-verbindet/</link><pubDate>Mon, 24 Nov 2025 07:00:53 +0000</pubDate><guid>https://javapro.svenruppert.com/java-trifft-zukunft-wie-quarkus-architektur-performance-und-cloud-native-nahtlos-verbindet/</guid><description>&lt;p&gt;Angesichts der zunehmenden Allgegenwärtigkeit digitaler Technologien, die fortlaufend und immer natürlicher in unsere Umgebung eingebettet werden, stellt sich die essenzielle Frage, welche Rolle Java in dieser zukünftigen Entwicklung von IT-Systemen spielen wird. Mark Weiser, Pionier des ubiquitären Computings, formulierte diesen technologischen Paradigmenwechsel folgendermaßen: &amp;ldquo;Die beste Technologie ist die, die wir gar nicht bemerken, weil sie auf natürliche Weise unseren Alltag bereichert.&amp;rdquo; (sinngemäß nach [LMU19]).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ubiquitäres Computing&lt;/strong&gt; zeigt bereits heute, wie Technologie allgegenwärtig wird und als unsichtbarer Begleiter nahtlos in unsere Umgebung integriert ist. Ein zentraler Faktor dabei ist der nahezu universelle Zugang zu Netzwerken (wie z.B. WLAN), der international immer mehr zur Standardinfrastruktur gehört. Dieser Zugang ermöglicht die Echtzeitvernetzung smarter Geräte, von Smart Homes bis hin zu Wearables, und bildet die Basis für Technologien, die intuitiv im Hintergrund arbeiten und barrierefrei ohne störende Eingriffe miteinander kommunizieren. Zudem fördert das ubiquitäre Computing eine immer engere &lt;strong&gt;Symbiose zwischen Mensch und Maschine&lt;/strong&gt;, in der neue Technologien heranwachsen, die klassische Interfaces zur digitalen Welt wie Smartphones oder Tablets zunehmend ablösen. Geräte wie beispielsweise Mixed-Reality-Brillen (z.B. die &lt;em&gt;Meta Quest&lt;/em&gt; oder &lt;em&gt;Apple Vision Pro)&lt;/em&gt; eröffnen eine neue Form der Interaktion, bei der digitale Informationen direkt und kontextbewusst ins Sichtfeld projiziert werden. Ziel ist nicht mehr nur allgemeine Interaktion, sondern eine präzise Anpassung digitaler Inhalte an die individuellen Bedürfnisse des Nutzers. Diese Entwicklung mündet in das Konzept der &lt;strong&gt;Hyperpersonalisierung&lt;/strong&gt;: Systeme reagieren in Echtzeit auf Standort, Vorlieben und Ziele und liefern so maßgeschneiderte Informationen, Unterhaltung oder Unterstützung im Alltag. Damit zeichnet sich eine Zukunft ab, in der digitale Erlebnisse nahtlos in das persönliche Leben integriert sind.&lt;/p&gt;</description></item></channel></rss>