22 Oktober 2017

Danke Bahn!

Hallo Bahn!

ich schreibe Dir auf meinem Blog, da dies den gleichen Effekt haben wird wie ein Telefonat mit Deiner Hotline oder einen Brief an irgendeine Deiner Adressen. Aber ich finde, es muss mal gesagt werden, daher wähle ich diesen Weg.

Ich fahre grundsätzlich gerne mit der Bahn. Und meistens funktioniert es ja auch. Über die selten eingehaltenen Fahrpläne mecker ich nicht. Ein paar Minuten hin oder her stören mich nicht. Ich habe mich darauf eingestellt, bei Umsteigeverbindungen mindestens 20 Minuten zu reservieren. Bei Bahnhöfen wie Kassel Willhelmshöhe, bei denen ich meist von Gleis 1 auf Gleis 10 umsteigen muss mit den dortigen langen Wegen dazwischen mache ich halt 30 Minuten. Das gibt Luft für die üblichen Ungenauigkeiten der „Fahrplanutopie“, wie ein Freund den Fahrplan der DB tituliert.

Weiterlesen

2 Oktober 2017

Openshift and GroupSync from LDAP

OpenShift offers a variety of possible integrations into security providers. The integration is divided into authentication and authorization. Authentication is handled by one of the configurable IdentityProviders of OpenShift. While authorization is handled by importing groups into OpenShift. For importing groups the most used method is reading from an LDAP (or an Active Directory via its LDAP interface). OpenShift already has a synchronization tool for this type of synchronization. And as long as that tool is sufficient, there are more reasons to stay with that tool than to replace it. But there are some situations where you need to replace it. And here the base software I written and published to github project klenkes74/openshift-ldapsync.

Weiterlesen

28 November 2016

Buildsystem via Vagrant-Box

In manchen Java-Projekten hat man das Problem, dass Entwickler unter Windows, Linux und MacOS arbeiten. Damit stellt schon das Build-Tooling ein Problem dar. Obwohl moderne Build-Systeme meistens in der JVM laufen und damit eigentlich betriebssystemunabhängig sein sollten, stößt man oft an das Problem, dass Pfadangaben leider nicht so unabhängig sind.

Um trotzdem lokal bauen zu können, wäre ein System schön, das wie ein zentraler Build-Server fungiert. Aber halt lokal. Und hier kommt Vagrant ins Spiel …

Weiterlesen

29 September 2016

H2-Datenbankserver für Integrationstests mit Maven starten und stoppen

Der Datenbankserver H2 ist ein beliebter Server während der Entwicklungsphase einer Software. Die Fähigkeit zu In-Memory-Datenbanken ist für viele Tests geradezu ideal. Wer jedoch die Datenbankstrukturen analysieren will, kommt um eine Datenbank mit Persistierung nicht herum. H2 kann natürlich das auch. Allerdings gestaltet sich das Starten/Stoppen für die Integrationstests etwas komplex. Natürlich gibt es entsprechende Plugins, aber auf einem CI-Server kommen so leicht Portkonflikte zustanden, wenn mehrere Builds gleichzeitig laufen. Ich beschreibe hier ein Setting, das den Maven-Build-Helper nutzt, um dies zu verhindern.

Weiterlesen

29 September 2016

Datenbankversionierung mit Liquibase und Maven

SQL-Datenbanken gehören trotz der großen Aufmerksamkeit für NOSQL zum Brot-und-Butter-Handwerkzeug eines Softwareentwicklers. Und zumindest im Unternehmensumfeld wird des wohl noch lange so bleiben, denn dort setzen sich neue Konzepte nur langsam durch. Doch schon während der Softwareentwicklung stößt man im Team auf das Problem, dass Änderungen an den Datenstrukturen verwaltet werden müssen. Die Kollegen brauchen bei Softwareänderungen auch geänderte Testdatenbanken, man will auch nachhalten, welcher Commit welche Datenbankänderung nach sich zog.

Hier kommen dann Datenbankversionierungstools wie Flyway oder eben Liquibase ins Spiel. Flyway habe ich uns vor langer Zeit nur kurz angeschaut, aber eine persönliche Präferenz des für das damalige Projekt verantwortlichen Softwarearchitekten für XML-basierte Tools hat mich dann zu Liquibase geführt. Wie es in ein Mavenprojekt integriert werden kann, damit Integrationstests immer auf eine aktuelle Datenbank zugreifen können, will ich im folgenden beschreiben.

Weiterlesen

21 August 2016

Aufruf!

Nichts ist eines Kulturvolkes unwürdiger, als sich ohne Widerstand von einer verantwortungslosen und dunklen Trieben ergebenen Herrscherclique „regieren“ zu lassen. Ist es nicht so, daß sich jeder ehrliche Deutsche heute seiner Regierung schämt, und wer von uns ahnt das Ausmaß der Schmach, die über uns und unsere Kinder kommen wird, wenn einst der Schleier von unseren Augen gefallen ist und die grauenvollsten und jegliches Maß unendlich überschreitenden Verbrechen ans Tageslicht treten?
Wenn das deutsche Volk schon so in seinem tiefsten Wesen korrumpiert und zerfallen ist, daß es, ohne eine Hand zu regen, im leichtsinnigen Vertrauen auf eine fragwürdige Gesetzmäßigkeit der Geschichte das Höchste, das ein Mensch besitzt und das ihn über jede andere Kreatur erhöht, nämlich den freien Willen, preisgibt, die Freiheit des Menschen preisgibt, selbst mit einzugreifen in das Rad der Geschichte und es seiner vernünftigen Entscheidung unterzuordnen – wenn die Deutschen, so jeder Individualität bar, schon so sehr zur geistlosen und feigen Masse geworden sind, dann, ja dann verdienen sie den Untergang.

Weiterlesen

15 Februar 2015

Reading-Liste für Java — oder: worüber ich eigentlich noch bloggen will …

Michael Sharhag hat einen schönen zusammenfassenden Artikel über die Nutzung der Java 8 java.time API geschrieben. Den will ich euch nicht vorenthalten.

Qualifier sind bei Dependency Injection sehr wichtig. Daher ist auch der von Pivotal veröffentlichte Blogbeitrag sehr interessant.

Seit Java 7 gibt es das ServiceLoader-Interface. Eine sehr interessante Sache. Kann man eigentlich öfter verwenden, als man denkt …