2012-10-23 13 views
10

In einer JSF-Anwendung kann der Parameter javax.faces.FACELETS_REFRESH_PERIOD verwendet werden, um das automatische Neuladen von XHTML-Dateien zu aktivieren/deaktivieren.Was ist der Standardwert für FACELETS_REFRESH_PERIOD?

Ich untersuche gerade die richtige Konfiguration für Produktionsbereitstellungen und habe zufällig herausgefunden, dass wir derzeit mit FACELETS_REFRESH_PERIOD = 1 sogar in der Produktion laufen, was natürlich keine gute Idee ist.

Dies führte zu der Frage: Was ist der Standardwert für diesen Parameter?

Im Idealfall möchte ich FACELETS_REFRESH_PERIOD einfach aus unserer Produktionskonfiguration weglassen und hoffte, dass es einen "sicheren" Standardwert von -1 verwenden würde. Dies scheint jedoch nicht der Fall zu sein, denn ohne den Parameter scheint die Aktualisierung aktiviert zu sein (mit Mojarra und MyFaces).

Ich überprüfte die JSF-Spezifikation, und während es den Parameter beschreibt, gibt es keinen Standard. Ist dies eine absichtliche Unterlassung in der Spezifikation?

Antwort

12

Der Standardwert ist implementierungsabhängig.

Da Sie verwenden Mojarra, können Sie die standardmäßig in der com.sun.faces.config.WebConfiguration Klasse finden:

768   FaceletsDefaultRefreshPeriod(
769    "javax.faces.FACELETS_REFRESH_PERIOD", 
770    "2" 
771  ) 

(Zeilennummern sind von Mojarra 2.0.0)

Der Standardwert ist somit 2 . Ich kann das in keiner Mojarra-Dokumentation finden. Es könnte sich lohnen, ein issue report an Mojarra-Jungs zu posten, um es besser zu dokumentieren.

MyFaces hat nach its documentation auch einen Standardwert von 2.


Update: Von Mojarra 2.2.11, wird der Standardwert auf -1 gesetzt, wenn Projektphase Production ist. Siehe auch issue 3788.

+0

Ja, das scheint wirklich eine (unglückliche) Auslassung in der Spezifikation zu sein. Interessanterweise gibt es eine offene Feature-Anforderung, um den Aktualisierungszeitraum im Produktionsmodus automatisch auf -1 zu setzen: http://java.net/jira/browse/JAVASERVERFACES-1434, http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC -936 Das sieht nach der besten Lösung aus (sobald es durchläuft). – sleske

+1

@sleske sieht aus wie es lange verloren gegangen ist. Siehe http://jdevelopment.nl/jsf-23/#936 :) –