Play Dependencies für JBoss ActiveMQ mit Zookeeper

Es gibt bereits ein gutes Tutorial, wie man eine MQ via Zookeeper anspricht, hier aber noch mal explizit für Play (1 und 2).

Schritt 1: Libraries hinzufügen

Play 1

Die Excludes waren für mein Setup nötig, das müssen sie aber nicht generell sein:

Damit das funktioniert, müssen die folgenden Repositories in den Ivy-Setting definiert werden:

Eine Anmerkung dazu: Das “Early Access” Repo ist meiner Einschätzung nach eigentlich nicht nötig; alle letztlich verwendeten Dependencies kommen aus dem “Releases” Repo. Aber: Offenbar gibt es irgendwelche transitiven Dependencies, die dort zu finden sind. Sie werden “später” durch andere transitive Dependecies “überschrieben”, aber sie müssen trotzdem aufgelöst werden können! Andernfalls funktioniert zwar auch alles, aber es gibt unschöne Warnings. Und ich habe einige Zeit darauf verwendet, das “Early Access” Repo durch force und exclude wegzukonfigurieren – ein Fass ohne Boden 🙂

Play 2

Schritt 2: Konfiguration

Schritt 3: Im Code

HTH!

Apache Ant: Ja/nein-Dialog

Apache kennt von haus aus nur Input Dialoge (korrigiert mich), und damit kann man natürlich “j”/”n”-Eingaben bauen (siehe Examples).  Schöner ist aber ein richtiger Ja/Nein-Dialog, wie Javascripts confirm. Außerdem gibt es if/else nur mit Ant contrib, das nicht zwingend überall installiert ist. Bitte nennt mir eine schönere Lösung als die folgende, aber damit geht’s – Confirm-Dialoge und if/else-Verzweigung abhängig von der User-Eingabe:

Die Targets “setURLs” und “setURLsAndProxy” werden nur abhängig von ${useProxy} ausgeführt, bzw nicht ausgeführt (if/unless).

Apache Ant: antcall für fileset

Dateien lassen sich in Ant (auch rekursiv) mit fileset finden. Allerdings kann man mit Bordmitteln nicht pro gefundenem File einen antcall absetzen. Das Internet schlägt Ant-Contrib vor, da gibt es “for” und “foreach”, aber das zum Laufen zu bekommen bin ich gerade zu blöd. Warum liefern die ihr ant-contrib-<version>.jar nicht mit aus??

Egal. Was mit Bordmitteln geht, ist Javascript (Danke, Björn!). Dann kann man Dateien mit JS auslesen, und an antcall übergeben. Zusammen sieht das so aus: