Mittwoch, 21. November 2012

JAR Dependencies auflösen

Ab und zu stehe ich vor der Versuchung einpaar schöne Bibliotheken in mein Projekt einzubinden.
Den Abhändigkeitsschwanz aufzulösen ist dabei eine richtige Herausforderung. Wenn das ein Maven Projekt wäre - dann hat man es gut. Wenn aber nicht?!

Heute war wieder so ein Versuchung. In einem überschaubaren Projekt wollte ich RESTEasy von JBoss für rest-ws verwenden. Wenn man allerdings über die Liste der mitgeschleppten Bibliotheken stolpert, 66 JARs samt 16MB, dann überlegt man drei mal.

Gut wenn man weißt das für den rest-ws Einsatz lediglich ein Paar von den JARs notwendig sind. Aber, wie kriegt man raus welche von den 66 tatsächlich erforderlich sind. Na gut, etwas Ahnung, dass z.B. JAX-RS das gesuchte Modul ist, müsste man schon haben.

Und die restliche JARs von denen das Modul abhängig ist, kriegt man mit einem kleinen Gradle Script herauskopiert:




und so wird der Script ausgeführt:
gradle -q copyJars



und was haben wir als Ergebnis? Es werden lediglich 13 JARs samt 2MB benötigt.

~
Finito 

Freitag, 16. November 2012

Auf HSQLDB über Tomcat zugreifen

Ziel

Ich wollte mir kleines Tomcat Projektchen mit HSQLDB zum Testen schnell einrichten. Da es letztendlich über zwei Stunden gedauert hat, und keine gute Anleitung im Netz zu finden war - schreibe ich Eine.

Umsetzung

Alles sehr simple. Mein Projekt trägt den stolzen Namen: Sausage

Schritt 1:   context.xml und web.xml von dem Projekt anpassen:

~/Sausage/docroot/META-INF/context.xml
- -
~/Sausage/docroot/WEB-INF/web.xml
- -

Schritt 2:
Die hsqldb.jar ins ~/Sausage/docroot/WEB-INF/lib/ reinschmeißen. Und Sausage deployen.

Schritt 3:
Und hier der Java-Aufruf für den Datenzugriff:
- -

~
Finito 

Mittwoch, 13. Juni 2012

Liferay 6.1 : Logging

Nach dem ich viel-zu-viel Zeit investiert habe um das Geheimnis zu luften - wo bei Liferay das Logging konfiguriert wird - hier die Auflösung. Eigentlich ist das ganz einfach, wenn man es kennt. Im Verzeichnis tomcat-7.x.x/lib/ext/META-INF müssen hierfür zwei Dateien abgelegt werden.
portal-log4j-ext.xml zum Beispiel so:
Die Kategorie sowie Log-Level kann hier konfiguriert werden.
Zusätzlich fragt Liferay nach DTD, dass im gleichen Verzeichnis abgelegt werden soll. Die Datei log4j.dtd ist im portal-impl.jar unter META-INF/ zu finden.

Die Dateien log4j.jar und log4j-extras.jar sollen aus dem tomcat-7.x.x/webapps/ROOT/WEB-INF/lib ins tomcat-7.x.x/lib/ext verschoben werden, damit alle Logger-Klassen mit gleichem (globalen) Classloader geladen werden.
Weiterhin, damit es funktioniert, muss man dem Liferay beibringen die log4j-Files beim Deployen von Portlets für sich zu behalten, also nicht in die Applikationen zu kopieren. Leider ist das nicht die default Einstellung.
Hierfür soll der altbekannte portal-ext.properties angepasst werden:

auto.deploy.copy.commons.logging=false
auto.deploy.copy.log4j=false
Erledigt.

Und das beste daran ist, jetzt kann ich den LogLevel Live konfigurieren, und zwar über das Control-Panel -> Server -> Administration -> LogLevel
Note: Anpassungen, die über Control-Panel getätigt sind, werden nicht im Datenbank abgelegt, also nach dem Neustart des Servers hat man wieder den LogLevel aus portal-log4j-ext.xml

Dienstag, 20. März 2012

Fette Liferay Portale


Liferay gewinnt stets an dem Bekanntheitsgrad, anbei ein paar große Portale, die auf Basis von Liferay aufgesetzt sind.  

 
Portal der US Marine

Studentische Portal der TU Braunschweig

Soziales Netzwerk für Schriftsteller und Szenaristen


 
 Palästinische Jugendportal

Nachrichten Agentur TVBEurope


Job Portal von Total Energy

Sesame Street