EN · DE · RU · FR · ES

#2770: LessResourceReference.java

projectforge-wicket/src/main/java/de/micromata/less/LessResourceReference.java Référence de ressource Wicket (LESS/CSS) · projectforge-wicket/src/main/java/de/micromata/less/LessResourceReference.java 72 lignes · 35 code · 27 commentaires · 10 vides
Une implémentation personnalisée de ResourceReference pour Wicket qui fait le pont entre la sortie CSS compilée du compilateur LESS et le système de montage des ressources de Wicket. Au lieu de servir le CSS depuis le classpath (comme un PackageResource standard), cette classe encapsule un FileResourceStream pointant vers l'emplacement du système de fichiers où le compilateur LESS écrit sa sortie — permettant une compilation CSS dynamique au moment du développement tout en servant le résultat compilé via les points de terminaison d'URL de ressources standard de Wicket avec un versionnement anti-cache.

Architecture

Pourquoi une ResourceReference personnalisée ?

Le PackageResourceReference standard de Wicket ne sert que les fichiers depuis le classpath. Le flux de travail de compilation LESS écrit les fichiers .css dans un répertoire du système de fichiers (sous baseDir/styles/) qui n'est pas dans le classpath. LessResourceReference encapsule le chemin du fichier compilé et délègue à une sous-classe privée LessPackageResource qui surcharge getResourceStream() pour retourner un FileResourceStream au lieu de chercher dans le classpath. Cela s'intègre proprement avec l'API de montage des ressources de Wicket — le CSS compilé est monté sous la forme .../styles/projectforge-version-{timestamp}.css.

Conception de la classe

La classe interne privée LessPackageResource étend PackageResource mais contourne entièrement sa recherche dans le classpath. Le constructeur passe des valeurs factices (null pour la locale, le style, la variation) puisque ces paramètres sont sans importance pour une ressource basée sur un fichier.

Historique Git

CommitCe qui a changé
868d6abb7 à ceb63e8a1Six mises à jour annuelles des en-têtes de copyright (2001-2021 → 2001-2026). Aucune modification de la logique ou de la structure de la classe Java — l'implémentation de ce fichier est stable depuis sa création initiale. La plage de copyright avance chaque année dans le cadre d'une mise à jour systématique des en-têtes à l'échelle du projet.