Хранилище Freemarker Customize TemplateCache хочет прочитать информацию из TemplateKey

У меня есть собственное хранилище шаблонов freemarker, настроенное поверх freemarker, оно работает нормально.

Недавно я хочу внести некоторые изменения в управление кешем, мне нужно прочитать свойства из ключа кеша, который имеет тип «TemplateKey». К сожалению, «TemplateKey» является «закрытым конечным статическим классом». У меня нет доступа к этому классу, и я не могу преобразовать объект Key обратно в объект TemplateKey.

Я вижу, что самый простой способ - изменить исходный код в TemplateCache.java, чтобы обновить TemplateKey, чтобы он был представлен как общедоступный класс.

Вопрос к дизайнеру Freemarker: есть ли какая-то особая причина, по которой этот TemplateKey не должен быть открыт? Можно ли выставить его в следующей сборке?

Спасибо.

Рокки


person Rocky Fan    schedule 07.04.2014    source источник


Ответы (2)


На первый взгляд, я бы оставил ключевой класс закрытым, потому что раскрытие его приведет к ограничению обратной совместимости, которое может помешать дальнейшей разработке. Но какой именно ваш вариант использования требует информации от ключа?

person ddekany    schedule 10.04.2014

Мы отключили localelookup, в этом случае один файл FTL работает для всех локалей. Но ключ включает в себя локаль, поэтому шаблон образца был закэширован для каждой локали, он дублируется в памяти. Одно из решений: удалить локаль в ключе при управлении им в кеше, поэтому мне нужно прочитать свойства ключа. Но его по-прежнему необходимо сочетать с другими изменениями, такими как создание возможности клонирования шаблона. Пожалуйста, обратитесь к этому POS для получения подробной информации: -a">Кэш шаблонов Freemarker находится в одном и том же содержимом, когда локали различаются, беспокоит ли это трата памяти?

Спасибо.

person Rocky Fan    schedule 17.04.2014