Maven 2, coooool! Oracle, grrrrrrr! Merde, y'est où Cayer?
Written by Fneuch on 29.9.06De retour... Comme je vous disait précédemment, j'étais dans le jus depuis qu'un collègue a levé les feutres.
Voyez-vous, mon chum Cayer (celui qui a foutu le camps) était comme qui pourrait dire LE développeur sénior dans la boite. (Des fois je me demande si le terme sénior est nécéssaire, j'aurais simplement pu m'arrêter avec LE développeur et ça aurait été aussi vrai!) La relation de travail que j'avais avec Cayer me faisait pensé à un article sur lequel j'était tombé, qui tentait de définir ce qu'est un architecte... (Faudrait d'ailleur que je retrouve cette article, si vous mettez la main dessus.) Dans cette article, il y mentionnait qu'un «Software architect» n'est pas un «lead developper», mais qu'il en dépend beaucoup. Un bon architecte devrait être appuyé par un développeur sénior. Celui-ci est en mesure de mettre en oeuvre rapidement et efficacement ce que l'architecte conçoit. Et le développeur sénior devrait être en mesure de challenger l'architecte et de signifier toutes invraiscenblance dans l'utilisation/réalisation de l'architecture. Et c'est ce genre de relation que j'avais avec Cayer. Cayer étant assigné a des projets réelles, il faisait beaucoup plus de code que moi et par le fait même, était souvent beaucoup plus efficace à produire la première version que ce que moi je pouvait faire. Il produisait généralement du bon code qu'il me restait simplement à optimiser.(je t'écoeure Seb, tu travaillais quand même bien...lol) On a fait ensemble plusieurs modifications au plugin Maven2 de JDeveloper, plusieurs optimisations aux applications sur lesquel il travaillait. Nous avons trouvé plusieurs bugs dans les composant oracle et avons tout le temps trouvé des solutions pour corriger une foule de problème. Je ne me souviens pas le nombre de fois où j'était assis dans son bureau, on gossait sur un problème, je voyais une solution, je commençait à la taper, pis aussitôt qu'il avait compris ce que je voulais faire, il me re-piquait le clavier, finissait en moins de temps que ce que ça m'avait pris pour faire le début... Le nombre de fois où j'ai pu dire, faudrait quasiment qu'on fasse ceci ou qu'on s'arrange pour que tel chose aient tel valeur et lui de me dire, facile, on a juste à prendre ça, faire ça et le tour était jouer, on venait de faire un bon bout de chemin pour solutionner le problème qu'on avait. Mon boss, très compréhensif, savait que 80% du temps, si je suis pas dans mon bureau, va voir dans le bureau à Cayer, tu vas me trouver, et que j'était rarement là sans qu'on produise qqe chose de bien. Combien de fois j'ai pu dire: "Aie Cayer, tu peux tu me tester ça?" ou bien: "Tu te souviens-tu cayer, tsé tel problème, on avait fait tel affaire, t'as tu encore la/le doc/code, tu peux-tu me l'envoyer?" (ceux qui me connaisse savent que j'ai pas de mémoire, je me souviens juste où j'ai mis l'info, pas c'est quoi l'info...).
Or, il est parti. Et tout les test ou idées que j'ai, je doit les faire seul. Avant son départ, nous avons converti à Maven 2 toutes les applications sur lesquels il travaillait. Sans lui, ça aurait été impossible. Nous les avons toutes converties à un détail près, il nous fût impossible de pré-compiler les pages JSP. Le plugin jspc-maven-plugin de codehaus utilise les librairies de Tomcat pour faire la compilation. Il insère dans le fichier web.xml toutes les références nécessaire aux servlets ainsi créer (pour ceux qui ne le savent pas, JSP compilé = servlet). Or, OC4j n'aime pas ce genre de procéder. Celui-ci utilise un autre type de servlet pour faire de l'héritage lorsqu'il compile une page JSP. Bref, ça plante au run!
Mais joie, bonheur et allégresse, Oracle dans son infiniment bonté nous fournis un utilitaire pour compiler les pages JSP... Foutu merde... Cet utilitaire nommé OJSPC fonctionne en mode "command line" mais ne veux absolument rien savoir lorsqu'appelé depuis un code Java (Si vous trouvez comment, dites le moi, j'ai gosser pendant 2 semaines, j'ai même décompilé la classe pour copier le code utilisé sans aucun résultat!). Je me suis donc inspiré de la tache ant pour faire un plugin Maven 2 qui compile les pages JSP contenues dans une archive (ear ou war).
Ce plugin, je vous le rend disponible à l'adresse suivante : ojspc-maven-plugin. Vous y trouverez une documentation sommaire, les sources (si vous voulez le modifiez... J'aimerais bien que vous me faisiez parvenir vos modifs que je les intègre) et une archive que vous pouvez déziper dans votre répository Maven pour l'utilisé tel quel!
Le processus de création du plugin aurait été certainement plus rapide si mon ex-collègue Cayer avait été là! Mais là, ça devrait être rentré dans l'ordre, je devrais être de retour plus fréquent sur ce blog, je vais encore probablement m'ennuyer de Cayer dans mon dev, mais que voulez-vous, l'appat du gain a eu raison d'une franche camaraderie et d'une équipe efficace...
PS: Sent toi pas mal Cayer, je t'agasse, et par ce billet, je te rend réellement un hommage à ma façon... Je l'ai toujours dit, ça fait parti de ma job de chialer... ;)