Apr/090
URL Rewriting avec Stripes
Dans le cadre de mon stage, j'ai dû me mettre à Stripes afin de comprendre le fonctionnement de la plateforme actuelle.
Je souhaitait faire de la réécriture d'URL dans mes applications J2EE. Au cours de ma veille, je suis tombé sur UrlRewriteFilter, mais j'étais embêté du fait de devoir utiliser un filtre de plus sur mon application. Finalement, j'étais passé à côté de l'annotation @UrlBinding qui permettait de faire quasiment ce que je souhaitais au détail prêt que je devais terminé mes URLs par .action.
En fouillant un peu dans mon web.xml, j'étais tombé sur cette partie là :
1 2 3 4 | <servlet-mapping> <servlet-name>StripesDispatcher</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping> |
Pas de problèmes, je remplace la ligne 3 par
<url-pattern>/*</url-pattern>
Or, petits problèmes en perspective, plantage du serveur, redirections en boucle sur les mêmes pages. Owned.
Petite recherche de la part d'un collègue et j'apprends l'existence de DynamicMappingFilter dans Stripes. On reprends notre web.xml et on copie ceci :
1 2 3 4 5 6 7 8 9 10 11 | <filter> <filter-name>DynamicMappingFilter</filter-name> <filter-class>net.sourceforge.stripes.controller.DynamicMappingFilter</filter-class> </filter> <filter-mapping> <filter-name>DynamicMappingFilter</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>INCLUDE</dispatcher> </filter-mapping> |
Et voilà, je peux mettre ce que je veux dans mes URLs !
Prochaine étape, pouvoir mettre des variables dans les @UrlBinding sans tout casser >_<
Apr/094
Connaître le nombre de ligne de code dans un dossier
J'inaugure une nouvelle catégorie dans laquelle je noterais les différentes réponses à des problèmes que j'ai rencontré dans mes petites aventures journalières.
Aujourd'hui, j'ai dû apprendre à compter le nombre de ligne de code dans un projet Java et ne voyant pas comment faire sous Eclipse (et puis compter, ça semblait un peu compliqué :p), j'ai gentiment demandé sur Twitter et la réponse est apparue quelques instant plus tard (merci @Patoch_ ;))
La réponse était ici, soit :
find . -type f | xargs cat | wc -l
Vous pouvez bien entendu utiliser tous les arguments de find pour préciser votre recherche, par exemple pour compter uniquement les fichiers dont l'extension est .java :
find . -type f -name "*.java" | xargs cat | wc -l