EN · DE · RU · FR · ES

#2770: LessResourceReference.java

projectforge-wicket/src/main/java/de/micromata/less/LessResourceReference.java Ссылка на ресурс Wicket (LESS/CSS) · projectforge-wicket/src/main/java/de/micromata/less/LessResourceReference.java 72 строки · 35 кода · 27 комментариев · 10 пустых
Пользовательская реализация ResourceReference для Wicket, которая связывает скомпилированный CSS-вывод компилятора LESS с системой монтирования ресурсов Wicket. Вместо того чтобы обслуживать CSS из classpath (как стандартный PackageResource), этот класс оборачивает FileResourceStream, указывающий на местоположение в файловой системе, куда компилятор LESS записывает свой вывод — что обеспечивает динамическую компиляцию CSS во время разработки, одновременно обслуживая скомпилированный результат через стандартные URL-адреса ресурсов Wicket с версионированием для сброса кэша.

Архитектура

Зачем нужна пользовательская ResourceReference?

Стандартный PackageResourceReference Wicket обслуживает файлы только из classpath. Процесс компиляции LESS записывает .css файлы в каталог файловой системы (в baseDir/styles/), который не находится в classpath. LessResourceReference оборачивает путь к скомпилированному файлу и делегирует выполнение частному подклассу LessPackageResource, который переопределяет getResourceStream(), чтобы возвращать FileResourceStream вместо поиска в classpath. Это чисто компонуется с API монтирования ресурсов Wicket — скомпилированный CSS монтируется как .../styles/projectforge-version-{timestamp}.css.

Дизайн класса

Частный внутренний класс LessPackageResource расширяет PackageResource, но полностью обходит его поиск в classpath. Конструктор передаёт фиктивные значения (null для локали, стиля, вариации), поскольку эти параметры не имеют значения для ресурса на основе файла.

История Git

КоммитЧто изменилось
868d6abb7 по ceb63e8a1Шесть ежегодных обновлений заголовков авторских прав (2001-2021 → 2001-2026). Без изменений в логике или структуре Java-класса — реализация этого файла остаётся стабильной с момента его первоначального создания. Диапазон авторских прав увеличивается каждый год в рамках общепроектного обновления заголовков.