EN · DE · RU · FR · ES

#2770: LessResourceReference.java

projectforge-wicket/src/main/java/de/micromata/less/LessResourceReference.java Referencia de recurso Wicket (LESS/CSS) · projectforge-wicket/src/main/java/de/micromata/less/LessResourceReference.java 72 líneas · 35 código · 27 comentarios · 10 en blanco
Una implementación personalizada de ResourceReference de Wicket que conecta la salida CSS compilada del compilador LESS al sistema de montaje de recursos de Wicket. En lugar de servir CSS desde el classpath (como un PackageResource estándar), esta clase envuelve un FileResourceStream que apunta a la ubicación en el sistema de archivos donde el compilador LESS escribe su salida — permitiendo la compilación dinámica de CSS en tiempo de desarrollo mientras se sirve el resultado compilado a través de los endpoints URL estándar de recursos de Wicket con versionado de invalidación de caché.

Arquitectura

¿Por qué una ResourceReference personalizada?

El PackageResourceReference estándar de Wicket solo sirve archivos desde el classpath. El flujo de trabajo de compilación LESS escribe archivos .css en un directorio del sistema de archivos (bajo baseDir/styles/) que no está en el classpath. LessResourceReference envuelve la ruta del archivo compilado y delega a una subclase privada LessPackageResource que sobrescribe getResourceStream() para devolver un FileResourceStream en lugar de buscar en el classpath. Esto se integra limpiamente con la API de montaje de recursos de Wicket — el CSS compilado se monta como .../styles/projectforge-version-{timestamp}.css.

Diseño de la clase

La clase interna privada LessPackageResource extiende PackageResource pero evita por completo su búsqueda en el classpath. El constructor pasa valores ficticios (null para locale, estilo y variación) ya que esos parámetros son irrelevantes para un recurso basado en archivos.

Historial de Git

CommitQué cambió
868d6abb7 hasta ceb63e8a1Seis actualizaciones anuales del encabezado de copyright (2001-2021 → 2001-2026). Sin cambios en la lógica o estructura de la clase Java — la implementación de este archivo se ha mantenido estable desde su creación inicial. El rango de copyright avanza cada año como parte de una actualización general del encabezado en todo el proyecto.