Development Stages sind eines der mit JSF 2.0 eingeführten neuen Features. Das Konzept wurde von Ruby on Rails übernommen und ermöglicht es Anwendungsentwicklern der Laufzeitumgebung mitzuteilen an welcher Stelle im Software Entwicklungszyklus sich die Anwendung befindet.
Die JSF-Laufzeitumgebung verhält sich je nach Stage unterschiedlich:
In der Development-Stage werden Resourcen nicht gecached, somit können z.B. Scripte ohne erneutes deployment angepasst werden. Fehlermeldungen sind sprechender und werden gut sichtbar im gerenderten Markup dargestellt. Dadurch werden Entwickler und Tester auf Probleme aufmerksam gemacht, ohne Logfiles inspizieren zu müssen. Nicht behandelte FacesMessages werden gesondert ausgegeben. Gerade dieses Verhalten ist besonders nützlich, da “vergessene” FacesMessages meist auf Programmierfehler, Seiteneffekte oder noch nicht abgeschlossene Implementierungsaufgaben zurückzuführen sind.
In der Production Stage werden die oben beschriebenen Debug- und Fehlermeldungen auf den gerenderten Seiten unterdrückt und die Laufzeit hinsichtlich Performance optimiert. So wird das Standard-Javascript z.B. komprimiert ausgeliefert und das Resource-Caching aktiviert.
Neben Production und Development sind noch zwei weitere Stages im Standard definiert: SystemTest und UnitTest. Diese führen zu keiner Veränderung des Laufzeitverhaltens, können aber von Entwicklern genutzt werden, um selbst auf die Stages zu reagieren.
Project Satges werden als Context-Parameter in der web.xml definiert, zulässige Belegungen sind
- Development
- Production
- UnitTest
- SystemTest
Beispiel:
<context-param> <param-name>javax.faces.PROJECT_STAGE</param-name> <param-value>Development</param-value> </context-param>
Einsortiert unter:Build, config and deploy, Java Web Frameworks Tagged: configuration, JSF, Web Development
