Jeder der sich gerade die Augen reibt: ja er hat “Richfaces” geschrieben. Auch wenn Richfaces das Ende seines Lebens schon lange erreicht hat existieren hier und da noch einige Projekte die sich auf die Funktionalität eben dieser Bibliothek verlassen…
…trotzdem sollten wir natürlich damit unseren Aktualisierungswunsch aller anderen Komponenten/Bibliotheken nicht zu den Akten legen. Insbesondere ein Update der Core-JSF Bibliothek ist aus Security Sicht stark anzuraten, werden doch immer mal wieder wichtige Sicherheitslücken geschlossen. Das ist in einem Application Server (selbst ohne diesen komplett zu aktualisieren) in aller Regel kein Problem, “javax.faces.jar” austauschen und fertig. Nun ist (sagen wir “war”?) Richfaces dafür bekannt nicht gerade tolerant mit Versionswechseln jeglicher Art um zu gehen. Ein Blick in die Anwendung lässt auch hier kein gutes Gefühl aufkommen: “irgendwie langsamer”. Und das aus gutem Grund. Wirft man einen Blick in die generierten HTML-Ausgaben finden wir die Antwort:
Richfaces lädt, je nach Seite, gleich dutzendfach seine benötigten Ressourcen und bremst die Anwendung spürbar aus. Dabei wird die packed.js von Richfaces eigentlich dazu verwendet um benötige Ressourcen zu bundeln und performant in nur einem Request abzufragen.
Eine einfache und pragmatische Lösung: die Ressourcen-Optimierung deaktivieren. Dazu reicht ein entsprechender Eintrag in der web.xml:
<context-param>
<param-name>org.richfaces.resourceOptimization.enabled</param-name>
<param-value>true</param-value>
</context-param>
Zwar generieren wir damit immer noch mehr Requests als es eigentlich sein müssten, da die benötigten Ressourcen nun einzeln abgefragt werden. Dafür passiert das nun aber auch nur noch einmal.
Ende gut. Alles gut. Vielleicht insbesondere bei Richfaces ein passender Schlusssatz 😉 .