Что такое значение по умолчанию для FACELETS_REFRESH_PERIOD?

В приложении JSF параметр javax.faces.FACELETS_REFRESH_PERIOD может использоваться для включения/отключения автоматической перезагрузки файлов XHTML.

В настоящее время я изучаю правильную конфигурацию для производственных развертываний и случайно обнаружил, что в настоящее время мы работаем с FACELETS_REFRESH_PERIOD = 1 даже в производстве, что, очевидно, не очень хорошая идея.

Это приводит к вопросу: каково значение по умолчанию для этого параметра?

В идеале я хотел бы просто пропустить FACELETS_REFRESH_PERIOD из нашей конфигурации для простоты и надеяться, что он будет использовать "безопасное" значение по умолчанию -1. Однако, похоже, это не так, потому что без параметра обновление может быть активировано (как с Mojarra, так и с MyFaces).

Я проверил спецификацию JSF, и пока он описывает параметр, он не дает значения по умолчанию. Это умышленное упущение в спецификации?

Ответ 1

Значение по умолчанию зависит от реализации.

Учитывая, что вы используете Mojarra, вы можете найти значение по умолчанию в классе com.sun.faces.config.WebConfiguration:

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

(номера строк от Mojarra 2.0.0)

По умолчанию используется 2. Я не могу найти это в документации Mojarra. Возможно, стоит опубликовать отчет о проблеме свою документацию также значение по умолчанию 2.


Обновление: Из Mojarra 2.2.11 значение по умолчанию равно -1, если этап проекта Production. См. Также issue 3788.