EnterpriseTales: Schnell, schneller, JUEL

standaloneJUEL

Wie bereits weiter oben beschrieben, kann JUEL auch in Umgebungen genutzt werden, die nicht von Haus aus die U-EL unterstützen. Somit lassen sich eigene Anwendungen relativ einfach um das Feature Expression Language erweitern. Um das zu erreichen, muss in einem ersten Schritt die ExpressionFactory per Hand beziehungsweise per Code erzeugt werden:

javax.el.ExpressionFactory factory = new de.odysseus.el.ExpressionFactoryImpl();

Die Konfiguration der Factory erfolgt, wie bereits oben beschrieben, durch eine el.properties-Datei. Alternativ kann auch eine spezielle Variante des Konstruktors verwendet werden, der man die gewünschten Properties als Argument übergibt:

java.util.Properties properties = new java.util.Properties(); 
properties.put("javax.el.cacheSize","2000"); 
properties.put("javax.el.methodInvocations","true");
javax.el.ExpressionFactory factory = 
     new de.odysseus.el.ExpressionFactoryImpl(properties);

Wer sich für die Details von der Verwendung der U-EL innerhalb eigener Anwendungen via JUEL interessiert, findet dazu ausreichend Informationen in dem zugehörigen Guide [5] und in den im Download enthaltenen Beispielen.

Fazit

Bei Webanwendungen, die intensiven Gebrauch von der Unified Expression Language machen, kann es zu unerwartet schlechtem Performanzverhalten kommen. Grund dafür ist in der Regel die Verwendung eines suboptimalen U-EL Parsers. Mit dem Open-Source-Projekt JUEL steht ein hoch performanter, handgeschriebener Parser zur Verfügung, der einen deutlichen Performanzgewinn verspricht. Ein zusätzlicher, bei Bedarf austauschbarer Cache-Mechanismus tut sein weiteres. In Summe ist es ein gelungenes Projekt, das ganz nebenbei auch die Verwendung der U-EL in NON-JSP/JSF-Anwendungen erlaubt.

Lars Röwekamp ist Geschäftsführer der open knowledge GmbH und berät seit mehr als zehn Jahren Kunden in internationalen Projekten rund um das Thema Enterprise Computing (Twitter: @mobileLarson).

Matthias Weßendorf arbeitet für die Firma Kaazing. Dort beschäftigt er sich mit WebSocket, HTML5 und weiteren Themen rund um das Next Generation Web. Er bloggt regelmäßig auf http://matthiaswessendorf.wordpress.com (Twitter: @mwessendorf).

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.