2012-10-23 9 views
10

In un'applicazione JSF, è possibile utilizzare il parametro javax.faces.FACELETS_REFRESH_PERIOD per abilitare/disabilitare il ricaricamento automatico dei file XHTML.Qual è l'impostazione predefinita per FACELETS_REFRESH_PERIOD?

Attualmente sto ricercando la configurazione corretta per le distribuzioni di produzione e ho scoperto casualmente che attualmente corriamo con FACELETS_REFRESH_PERIOD = 1 anche in produzione, il che ovviamente non è una buona idea.

Questo porta alla domanda: Qual è il valore predefinito per questo parametro?

Idealmente, mi piacerebbe semplicemente omettere FACELETS_REFRESH_PERIOD dalla nostra configurazione di produzione per semplicità, e spero che utilizzi un valore predefinito "sicuro" di -1. Tuttavia, questo non sembra essere il caso, perché senza il parametro, l'aggiornamento sembra essere abilitato (con Mojarra e MyFaces).

Ho controllato le specifiche JSF e mentre descrive il parametro, non fornisce un valore predefinito. Si tratta di un'omissione deliberata nelle specifiche?

risposta

12

L'impostazione predefinita dipende dall'implementazione.

Dato che si sta utilizzando Mojarra, è possibile trovare il valore di default nella classe com.sun.faces.config.WebConfiguration:

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

(numeri di riga sono da Mojarra 2.0.0)

Il valore di default è quindi 2 . Non riesco a trovarlo in nessuna documentazione di Mojarra. Potrebbe valere la pena di postare un issue report per i ragazzi di Mojarra per documentarlo meglio.

MyFaces ha in base a its documentation anche un valore predefinito di 2.


Aggiornamento: Da Mojarra 2.2.11, il valore di default è impostato su -1 se lo stadio del progetto è Production. Vedi anche issue 3788.

+0

Sì, questa sembra davvero una (sfortunata) omissione nelle specifiche. È interessante notare che esiste una richiesta di funzionalità aperta per impostare automaticamente il periodo di aggiornamento su -1 nella modalità di produzione: http://java.net/jira/browse/JAVASERVERFACES-1434, http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC -936 Sembra la soluzione migliore (una volta passata). – sleske

+1

@sleske sembra averlo perso da tempo. Vedi http://jdevelopment.nl/jsf-23/#936 :) –

Problemi correlati