I don’t know why, but setting up the build system for a new software project and maintaining it seems to be something people are always afraid of. I’ve often heard people say “Eclipse does the job. It’s just additional work.” This usually leads to confusion and a lot of bulk and weird solutions several days … Read More →
Tag Archives: Java
Using Dependency Tracking in Jenkins with CMake-based C++ Projects
If you are building multiple related software projects with a continuous integration server one important aspect is to be notified when changes in an upstream job break the build or tests for a downstream job. This involves knowing which exact build numbers of the upstream and the downstream job are involved. The Jenkins continuous integration … Read More →
Tücken des Observer-Patterns in Java
Alle paar Monate stolper ich in irgendwelchem Code über das gleiche Problem bei der Implementierung des Observer-Patterns in Java. Deshalb hier noch mal ein kurzer Reminder, was man beachten sollte. Häufig sieht man Implementierungen wie diese:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
public class ObserverTest { private static interface Observer { void process(); } private static Set observers = new HashSet(); public static void addObserver(Observer observer) { observers.add(observer); } public static void removeObserver(Observer observer) { observers.remove(observer); } private static void notifyObservers() { for (Observer o : observers) { o.process(); } } // es fehlt noch eine main-Methode } |
Das funktioniert so auch in vielen Fällen problemlos, in folgendem Fall aber nicht:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public static void main(String[] args) { addObserver(new Observer() { @Override public void process() { removeObserver(this); } }); notifyObservers(); } |
Führt man das Programm … Read More →
Sichtbarkeiten beachten mit Hibernate Search / Lucene
Für ein Projekt musste ich einen Suchmechanismus implementieren. Die Wahl von Hibernate Search war dabei auf Grund vieler Vorteile für das Projekt klar. Allerdings gab es eine Besonderheit in diesem Projekt, die ich bei der Suche beachten musste und für die ich keine existierende Lösung gefunden habe: Bestimmte Einträge der zu indizierenden Entitäten sind nur … Read More →
Oft genutzte Test-Fixtures zentral initialisieren mit JUnit 4
Häufig kommt es beim (Unit) Testing vor, dass viele der Test Cases zumindest teilweise eine gemeinsame Fixture brauchen. So z. B. wenn einige der getesteten Klassen gegen eine Testdatenbank laufen. Hierbei muss sichergestellt werden, dass die Datenbank richtig initialisiert und wieder heruntergefahren wird und sich vor jedem Test im gleichen Zustand befindet. JUnit 4 bietet … Read More →
Eclipse-Fangfragen
Eclipse auf amd64 ist ja schon eine Herausforderung. Egal was man tut, es stürzt ständig ab. Heute war es mal so gnädig und hat statt eines Absturzes eine äußerst sinnvolle Frage gestellt: Zumindest auf meinem Rechner reproduzierbar beim Kopieren einer HTML-Datei im Package-Explorer in die Zwischenablage.

