Dienstag, 27. November 2012

Jazz - der Traum

damit das auch mal wieder gesagt ist: so zu arbeiten wäre der Traum.
Aber eben - die Realität ist: unverlinkbare Word-Dokumente, Excel - etc…

Jazz Platform



Mittwoch, 21. November 2012

Erwartete Exception in JUnit

Wieder ein Klassiker, den ich jedesmal vergesse, wenn ich ihn brauche - drum hier im Blog. Ich erwarte in JUnit einen Exception, und möchte auch die Message der Exception testen. Hier ist die Lösung: Möchte man die Message nicht anschauen, erwartete bloss, dass es knallt, genügt dies:

Donnerstag, 15. November 2012

Reflections

Um Klassen zur Laufzeit zu laden, habe ich grad folgendes kleines, sehr mächtiges Framework entdeckt:

http://code.google.com/p/reflections/


Damit lässt sich sehr einfach eine einfache Plug-In Architektur erstellen, um - in diesem Fall - zur Laufzeit Policies zu laden, die eine Policy-Klasse erweitert.

Bemerkung: wie zu erwarten war, funktioniert das natürlich - wie immer in solchen Fällen - unter JBoss nicht, wegen Klassenlader-Problemen. Wir suchen die Lösung noch...


Samstag, 10. November 2012

Warum Java?!? Ich mach doch nichts. Der Facebook-Updater.

Ich habe mein "Mountain Lion" frisch installiert, noch ohne Java (neuerdings hat ein frischer Mac noch kein Java...) - und beim jeden einloggen kommt die Meldung:
Was ist das?!? Ich habe nichts mit Java gestartet. Läuft da irgendein Zeugs, das ich nicht will?!?

Ein Blick in die Console verrät mir: 
Nov 10 20:48:34 oscar.local Download Java Components[3256]: Java Install cancelled


Und, eine Prozess-ID tiefer, ein Klick früher, der Übeltäter: 
Nov 10 20:48:26 oscar com.apple.launchd.peruser.501[141] (com.facebook.videochat.rschumm.updater[3255]): Exited with code: 1


Facebook? Wtf... 
Es stellt sich heraus, dass facebook-Video-Chat, eine Abklatsch-Version von Skype, stinkfrech einen LaunchAgent installiert, der immer wieder (und auch beim Einloggen) den Befehl
java -cp /Users/rschumm/Library/Application Support/Facebook/video/1.2.0.158/FacebookUpdate.jar
laufenlässt. Gopf :-) 

Getriggert wird das durch
/Users/rschumm/Library/LaunchAgents/com.facebook.videochat.rschumm.plist



Wenn ich die Datei lösche, ist der Spuk vorbei. Und ich habe was über LaunchAgents gelernt. 
Weitere Infos: 

Wenn das alle so machen würden wie Facebook.... dann könnte man noch lange warten mit Einloggen. 

Mittwoch, 7. November 2012

TimeMachine: neue HD

Mac OS X ist schon cool…
Ich habe soeben eine neue Harddisk in mein gutes altes MacBook Pro unter «Mac OS X Mountain Lion» eingebaut. Mit dem Migrations-Assi alles von der alten HD importiert. Dauert stundenlang, aber klappt. (Man könnte das auch von TimeMachine machen.)
Nun kommt aber die grosse Frage: neue Harddisk, neue UUID der Harddisk - peilt das TimeMachine oder macht es ein volle Backup und verliert die History?

Die Antwort im system.log:


Nov  7 18:56:21 oscar.local com.apple.backupd[419]: Backing up to: /Volumes/Time Machine-Backups/Backups.backupdb
Nov  7 18:56:24 oscar.local com.apple.backupd[419]: Inherited root volume Macintosh HD, UUID: BFEA6DB7-xxxx-xxxx-xxxx-xxxxxxxxxxxxx
Nov  7 18:56:25 oscar.local com.apple.backupd[419]: Event store UUIDs don't match for volume: Macintosh HD
Nov  7 18:56:34 oscar.local com.apple.backupd[419]: Deep event scan at path:/ reason:must scan subdirs|new event db|
Nov  7 18:56:34 oscar.local com.apple.backupd[419]: First backup after disk inheritance for / - complete scan required
Nov  7 18:56:34 oscar.local SystemUIServer[180]: Warning: accessing obsolete X509Anchors.


cool… First backup after disk inheritance - die History geht also nicht verloren.

mvn release: update Versions

Um mit dem Maven Release Plug-In Versionsnummer anzupassen, ohne den ganzen anderen Karsumpel zu machen:

mvn release:update-versions -DautoVersionSubmodules=true



Details:
http://maven.apache.org/plugins/maven-release-plugin/examples/update-versions.html


Freitag, 2. November 2012

Java aus xsd: JAXB

Etwas kleines, nicht neues, einfaches, aber extrem cooles:

Man hat ein Schema, z.B. das von XACML3,
http://docs.oasis-open.org/xacml/3.0/xacml-core-v3-schema-wd-17.xsd
und möchte davon mit Java eine Instanz abfüllen.

Nichts einfacher als das mit JAXB:

Man stelle das Schema in /src/main/xsd und lasse einen mvn install laufen, mit folgendem Plugin konfiguriert:



Die generierten Klassen landen in target und werden von eclipse automatisch in den build-path genommen. Fertig. 



Die Klassen können dann ganz einfach benützt werden: hier wird z.B. ein XACML-String von JAXB geparst und in Java umgewandelt:


Proxy...

Die Arbeits-Bremse in jedem Unternehmensnetzwerk: Proxy. Jedesmal muss ich nachschauen, darum hier:



System.setProperty("http.proxyHost", "myProxyServer.com");
System.setProperty("http.proxyPort", "80");
bzw: -Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800