2014-07-12 2 views
0

Je suis en train de mettre à jour Apache Roller, une application Web basée sur Java, de YUI2 à YUI3. Nous n'utilisons pas le CDN non-SSL de Yahoo ici car Roller fonctionne parfois sur SSL et nous souhaitons éviter les avertissements contextuels du navigateur à l'utilisateur concernant les sites non-SSL accédés. Cela signifie que nous aurions besoin d'intégrer les bibliothèques YUI3 à notre projet, comme nous l'avons fait plus tôt avec YUI2 beaucoup plus petit. Le problème est que YUI3 a une tonne de dossiers (environ 375 au total), un pour chaque composant ou dépendance de composant. J'ai utilisé le YUI Configurator pour identifier et importer "seulement" les 75 dont nous avons besoin, mais encore, c'est très désordonné dans notre project file system, en ajoutant 75 dossiers avec le plus juste un fichier nécessaire.Un moyen efficace d'intégrer YUI3 dans une application web Java?

Existe-t-il un moyen plus efficace d'intégrer YUI3? Ce serait bien si je pouvais mettre les 75 fichiers "-min.js" tous dans un dossier au lieu d'un dossier chacun, mais je ne suis pas sûr que le système de découverte de dépendances de YUI3 fonctionnerait si je le faisais. Quelque chose comme JQueryUI Custom Builder où je choisis les composants que je veux et dois ajouter seulement un seul fichier, ou juste quelques fichiers au contrôle de la source serait idéal. Nous utilisons déjà JQueryUI pour certains éléments, nous devrons peut-être l'utiliser davantage si l'incorporation de YUI3 ne peut pas être moins lourde sur le système de fichiers.

+0

Vous pouvez utiliser le configurateur http://yuilibrary.com/yui/configurator/ – juandopazo

Répondre

0

Nous l'avons fait exactement dans notre grande application Web Java. La première étape consistait à créer un nouvel artefact Maven appelé YUI. Il contient juste la totalité d'une version de YUI. Nous avons un rapport interne de maven pour le publier, mais si vous n'utilisez pas Maven, vous pouvez simplement mettre YUI dans un fichier jar et l'inclure dans votre projet.

Nous plaçons les fichiers dans/META-INF/resources/yui dans le JAR, car ce chemin sera rendu visible sur le web dans des conteneurs conformes à Servlet 3.0 tels que Tomcat.

Le projet WebJars, qui regroupe un grand nombre de frameworks JS, mérite d'être étudié. La version de YUI qu'il héberge est obsolète, mais vous pourriez être en mesure de leur donner un coup de pouce pour le mettre à jour.

Cela vous permet de configurer YUI pour sélectionner les fichiers à partir ce nouvel emplacement (utilisez l'attribut « base » décrit dans le loader documentation)

À ce stade, vous ne serez plus prévalez de la CDN, donc vous pouvez héberger sur SSL très bien, ce qui, je pense, répond aux exigences de la question. L'inconvénient est que vous allez charger des fichiers individuels, plutôt que d'utiliser le chargeur combo de YUI. Ce que nous avons fait était d'écrire une servlet combo loader, qui est capable de prendre une requête combo YUI et de servir le module demandé concaténé ensemble. Si les fichiers YUI sont dans un fichier JAR, vous devrez les obtenir à partir de là, mais c'est assez simple à faire. Le seul inconvénient à écrire votre propre Combo Loader pour héberger YUI est l'hébergement de la galerie. Les versions récentes de la galerie ont des liens codés en dur avec des images dans leur CSS qui pointent vers leur CDN. ce qui causera des problèmes d'hébergement sur SSL. Si vous n'utilisez pas la galerie, tout va bien.

Questions connexes