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 

Mittwoch, 16. März 2011

Suchen mi Firefox noch schneller als mit Chrome

Habe selbst diese Funktion sehr lange bei Firefox vermisst. Und zwar - die Suche direkt in einem "spezifizierten" Websystem, zum Beispiel Wikipedia oder Ebay oder Amazon oder Synonymen Datenbank oder Filmen Datenbank etc.

Und mit Firefox geht das, und zwar sehr bequem! Einfach in der Navigation-Leiste (wo die URL eingegeben wird) Schlüsselword + Suchbegriff eingeben, z.B.
wiki elefant

Statt 'wiki' als Schlüsselwort könnten wir auch 'w' verwenden. Die Konfiguration von
Schlüsselworten ist in diesem Artikel gut beschrieben:
http://support.mozilla.com/en-US/kb/Smart%20keywords

Donnerstag, 10. März 2011

Zwei oder mehr Firefox Instanzen starten



Problem: wir wollen in einem Multiuser Websystem die Interaktion zwischen zwei bzw. mehren Benutzern emulieren, testen, vorführen. Meistens wird für solche Anforderung zwei verschiedener Browser verwendet, z.B. Firefox und IE, oder Chrome, oder Opera. Das liegt an der Natur des Browsers, und zwar weil die User-Session browser-weit abgelegt wird. Das heißt wenn der User A sich in einem Firefox-Tab bzw. Firefox-Window bei einer Websystem eingeloggt hat, dann ist er ebenfalls in anderen Tabs und Windows von Firefox als dieser User A eingeloggt.


Es besteht jedoch auch die Möglichkeit solche Simulation allein mit Firefox durchzuführen. Hierfür bietet Firefox eine Unterstützung für Profile.

Firefox-Profile anlegen:
Firefox ProfileManager starten:
"C:\...\firefox.exe" -P

und zwei (bzw. mehrere) Profile anlegen. Wir nennen den ersten Profile "Surfer" und den zweiten "Developer".Tipp: Beim anlegen von Profilen kann ein eigenes Ordner angegeben werden, hierdurch bietet sich die Möglichkeit das Profile in ein Ordner zu verlegen, das ab und zu gesichert wird. Um beim Umstieg auf ein anderes PC bzw. bei Festplatte-Crash die Profile-Daten (Einstellungen, Bookmarks, Formular Autovervollständigung, Passwörter, Historie, Addons, Themes etc.) wiederherzustellen.
Firefox Instanzen starten:Instanz 1:
"C:\...\firefox.exe" -P "Surfer" -no-remote


Instanz 2:
"C:\...\firefox.exe" -P "Developer" -no-remote


und die beiden Ausführungsbefehle können anschließend als Verknüpfung auf dem Desktop abgelegt werden, damit man schnell die beiden Instanzen starten kann.

Tipp: Um die beiden Instanzen unterscheiden zu können habe ich bei dem Developer-Firefox ein anderes Theme gesetzt.


Tipp: Der Developer-Firefox hat zusätzlich ein Paar für die Web-Entwicklung interessante Addons installiert bekommen: Firebug, Web-Developer, ColloZilla. Im normalen Surfer-Firefox sind diese Addons nicht installiert, da sie die Surf-Geschwindigkeit beeinträchtigen.


Donnerstag, 4. November 2010

Groovy ist cool! 5 Zeiler

Eine Datenbank auswerten und in die andere ablegen - nur in 5 Zeilen: