Category Archives: java

Gesetz von Demeter, Unit Tests und der zweite Programmierer

In meinem letzten Post habe ich beschrieben, das Delegation für den Benutzer einer Klasse angenehm ist und das wir dies auch im realen Leben schätzen. Heute möchte ich kurz beschreiben wie sich das Einhalten des Gesetzes von Demeter auf das Schreiben von Unit-Tests und das Benutzen meiner Implementierungen auswirkt. Dazu habe ich das Modell um [...]

Gesetz von Demeter im Alltag

In den letzten zwei Monaten hatte ich im Umfeld der Software-Entwicklung sehr viel dieser “AHA”-Effekte. Da das Gehirn neue Erkenntnisse mit dem Ausschütten von Glückshormonen belohnt, war es eine sehr gute Zeit für mich. Als heute  morgen alle noch bei Kaffee in unserem Pausenraum sassen, habe ich ein speziellen Teil unseres Domain Modells an die [...]

Spring Greenpages mit Teneo

Beim SpringSource® dm Server™ ist ein Beispiel dabei, welches Greenpages heisst. Vor ein paar Wochen durfte ich auf Arbeit mal ausprobieren, ob Teneo mit dem dm-Server läuft. Also habe ich mir das Beispiel von SpringSource geschnappt und die Sache angeschaut. Es hat funktioniert! Leider habe ich erst heute Zeit gefunden, den Source auf bitbucket zu [...]

Repository von SpringSource

Bei meinem letzten Eintrag habe ich noch ein S3-Repository von SpringSource für das Auflösen der Abhängigkeiten zum SpringFramework 3.0.0.M4 benutzt. Ich habe noch einen Ort gefunden in dem die Jar’s liegen: SpringSource Enterprise Bundle Repository Für OSGi-Liebhaber ist es sicherlich nett, dass die Jar’s dort alle OSGi-ready sind.

Netbeans, Ivy und Spring 3.0.0M4

Ich programmiere gerade eine kleine Web-Applikation und möchte dazu die neuen REST-Features vom Spring-Framework benutzen. Bis gestern habe ich mir dazu in Netbeans ein Webprojekt gebaut und dann ganz artig alle notwendigen Bibos von Hand dem Projekt hinzugefügt. Gestern wurde nun der Milestone 4 von Spring 3.0.0 veröffentlicht und ich wollte mir nicht noch einmal [...]

Swing und Netbeans RCP in Döbeln

Tagebucheintrag: Letzte Woche war ich für einen Tag bei einem Kunden in Döbeln (Sachsen). Thema des Workshops war ob einen nackten Swing-Client oder eine RCP-Applikation mit Netbeans bauen.  Schlussendlich haben mehr Argumente dafür gesprochen einen Swing-Client zu bauen.

in, out, err bei externen Prozessen in Java

Ich komme immer wieder durcheinander, wie die Streams eines externen Prozesses der aus Java gestartet wird (z.B. mit java.lang.ProcessBuilder) auf die Streams in Java abgebildet werden. Hier also mein Spickzettel:

Dokumentation von Java Source Code

Heute hatte ich eine Diskussion über die Art und Weise wie man in Java dokumentiert.  Was sind gute Kommentare? Was muss dokumentiert werden? Was kann man weglassen? Ich finde zu diesem Thema die Meinungen von Robert C. Martin gut, die er in seinem Buch Clean Code: A Handbook of Agile Software Craftmanship. Prentice Hall PTR. [...]

Militaristen bei Spring Source?

“Battling complexity?”, “Choose your weapon:” “Weapons for the War on …” – Diese Aussprüche habe ich gerade auf der Seite von Spring Source gefunden. Ich dachte bisher es ginge um Java (Spring Framework, und seit Kurzem auch Groovy und Grails). Jetzt habe ich aber das Gefühl in den Krieg ziehen zu müssen. Was soll der [...]

statisch vs. new performance

Heute hatten wir eine Diskussion darüber, ob auf einen Wert via einem statischen Klassenmember oder über einen Getter zugegriffen werden soll oder ob es sogar egal ist wenn man jedes Mal eine neue Instanz erzeugt. Jetzt hat es mich gejuckt, mal einfach ein kleines Beispiel zu machen. Mir ist klar, dass entscheidend ist, wie teuer [...]

Class von “Type Parameter” – Java Generics (gepimpt)

Meine Lösung von gestern funktioniert nicht, wenn die Klassenhierarchy tiefer als Eins ist. Die Methode getGenericSuperclass() liefert eben nur die Superklasse der aktuellen Klasse. Es ist also noch notwendig die Hierarchie nach Dada zu suchen um die Typinformation zu bekommen: ?View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 13 [...]

Class von “Type Parameter” – Java Generics

Wie finde ich zur Laufzeit heraus von welchem Typ ein “Type Parameter” ist? Hier die Lösung: ?View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 public class Dada<T> {   private Class<T> typeOfT;   @SuppressWarnings("unchecked") public Dada() { this.typeOfT = (Class<T>) ((ParameterizedType)getClass() .getGenericSuperclass()) .getActualTypeArguments()[0]; } … Die FAQ zu Java [...]

Profiler und Garbage Collector

Lange konnte ich mir nicht erklären, warum der Speicherverbrauch hochgeht, wenn man in einem Profiler (z.B. der in Netbeans) viele Male den Garbage Collector ankickt. Das sieht dann ungefähr so aus:

Abhängigkeiten in ANT-Script visualisieren

Die kleinen Tools sind es die viel Spass machen. Heute bin ich wieder mal vom Hundertsten zum Tausendsten gekommen. Am Abend nun hatte ich das ivy build.xml (Ant-Build-Script) vor mir und überlegt wie ich am schnellsten die Abhängigkeiten der einzelnen Targets rausbekomme.

Hibernate EventListeners in Spring konfigurieren

Wer in Spring Hibernate Event Listener eintragen will macht dies folgendermassen (vergleiche auch Spring Dokumentation Kapitel 12.2.2): <beans> <bean id=”loadListener” class=”org.nautsch.MyLoadEventListener” /> <bean id=”myDataSource” class=”org.apache.commons.dbcp.BasicDataSource” destroy-method=”close”> <property name=”driverClassName” value=”org.hsqldb.jdbcDriver”/> <property name=”url” value=”jdbc:hsqldb:hsql://localhost:9001″/> <property name=”username” value=”sa”/> <property name=”password” value=”"/> </bean> <bean id=”mySessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”> <property name=”dataSource” ref=”myDataSource”/> <property name=”mappingResources”> <list> <value>product.hbm.xml</value> </list> </property> <property name=”hibernateProperties”> <value> hibernate.dialect=org.hibernate.dialect.HSQLDialect [...]

Java, Fonts, PDF und JasperReports

AUA. Heute hatte ich einen Bug. Wie in einem Post geschrieben erstelle ich mit JasperReport ein paar einfache Briefe in PDF. Das Erstellen läuft auf einem Websphere Application Server. Es fehlten aber auf einmal Zeichen in einem kleinen Textfeld.

Ein einfaches PDF mit Java erzeugen (iText vs. JasperReports vs. Birt)

Derzeit arbeite ich u.a. daran ein PDF-Dokument mit Java zu erzeugen. Es ist ein einfacher Brief mit einer Anschrift, Ort, Datum, Betreff und dem Briefinhalt. Ein paar Sachen sollen dynamisch eingefügt werden. Es ist also eine recht einfache Sache. Da im Projekt schon iText im Einsatz ist, habe ich damit angefangen. Mit der Hilfe des [...]

Groovy, Grails und Netbeans

Das sind ja tolle News. In Netbeans 6.0 soll Grails- und Groovy-Unterstützung standardmässig eingebaut sein. Die Featureliste schaut toll aus. Wer sich einen Entwickler-Build von Netbeans installiert kommt schon jetzt in den Genuss der ersten Versionen des Plugins.

1127 Zeilen Code für eine Methode

Vor einigen Tagen habe ich mich mit einem Upgrade von Castor in einem unserer Projekte auseinandergesetzt. Ein paar Leute in unserer Firma hatten schon Erfahrungen mit einem Upgrade von Castor und habe nur gemeint, dass sie viele Probleme gehabt hätten und mich gefragt ob ich mir das wirklich antun will. Nachdem ich alles umgestellt hatte, [...]

Java 6 und Mac OS X Leopard

Hier ist der String: 13949712720901ForOSX Und noch eine Filmempfehlung: “Pirates of Silicon Valley“.