dimanche 30 mai 2010

Generation de classes de méta-model

L'un des apports les plus intéressants de JEE6 est sans aucun doute JPA 2, en effet cette version apporte une multitude de nouvelle fonctionnalité par rapport a JPA 1 afin d'accroitre la productivité des développeurs. Certes la plupart des nouveautés de JPA 2 sont des fonctionnalités qui existaient déjà dans Hibernate 3.3. Mais JPA2 a le mérite de standardiser la gestion de la persistance des objets Java et donc de faciliter la migration entres ORM. Une fonctionnalité qui m'a tout particulièrement plu dans JPA2 est l'utilisation de méta modèle, elle permet de ne plus référencer les champs des objets a persister dans les requêtes de types criteria avec des chaines de caractères, mais avec des classes un peu particulières appelées méta modèles. Je vous engage à lire la documentation d' Hibernate 3,5, d' EclipseLink et d' OpenJPA 2 pour plus d'information sur le sujet. Bien évidement ces classes doivent êtres crées a partir des classes des objets a persister. Bien évidement, il existe des outils pour générer automatiquement ces classes « méta modèles ». Bien évidement Hibernate 3.5, EclipseLink et OpenJPA 2 fournissent des outils pour générer ces classes.

N'étant pas un fan de JEE, j'ai pris l'habitude d'utiliser Spring, néanmoins je souhaite gérer ma persistance avec JPA2, j'ai donc tenté d'utiliser EclipseLink qui est censé être compatible. C'est probablement le cas mais j'ai été confronté a une anomalie (l'absence de génération automatique du schéma au démarrage du serveur ) lorsque j'ai voulu l'intégrer avec Spring, et je pense qu'il va falloir alourdir la configuration de l' ORM à cause du weaving ce qui ne m'enchante guère. Bref j'ai essayé d'intégrer Spring et Hibernate 3.5 , mais là j'ai été confronté a des anomalies assez étranges, morceau choisi : un ClassCastException, il n'arrivait pas à caster la classe PostgreSQLDialect en Dialect, c'est bête, la classe Dialect est la classe mère de PostgreSQLDialect, je soupçonne Hibernate 3.5 d'être incompatible avec Spring 3.0.2 . Par contre OpenJPA 2 a marché du premier coup, sans anomalie. Je ne vous le cache pas, jusqu'à présent je n'était pas un fan d' OpenJPA, a l'époque de JPA 1 cet ORM se contentait d'implémenter la norme et n'offrait pas toute les fonctionnalités d' Hibernate 3.3 et n'offrait pas non plus les performances de TopLink essentials et d' Hibernate. Je rajouterais que OpenJPA bien qu'il soit soutenu par la prestigieuse fondation Apache manque sérieusement de « street credibility » par rapport à ses concurrents, en effet, Hibernate a pour lui le fait d'avoir influencé JPA, on sait que sans Hibernate, JPA ne serait pas ce qu'il est aujourd'hui. Hibernate est de surcroit l' ORM Java le plus utilisé, je soupçonne en outre NHibernate d'être l' ORM .NET le plus utilisé. Faut-il le rappeler Hibernate est soutenu par Red Hat proclamé leader du middleware open source. EclipseLink a pour lui le fait qu'il soit soutenu par la fondation Eclipse (et donc probablement par IBM), qu'il est le cœur de TopLink (l' ORM d' Oracle), qu'il est donc soutenu par Oracle, il est de surcroit l'implémentation de référence de JPA 2. Voilà de quoi justifier la crédibilité d' Hibernate et d' EclipseLink. Cela dit, OpenJPA étant la seule implémentation de JPA que j'arrive a faire fonctionner simplement avec Spring 3 c'est dorénavant celle ci que je privilégierais.

OpenJPA 2 propose de générer ces classes de méta-modèle. L'inconvénient du générateur de classe d' OpenJPA 2 est qu'il génère les classes de méta-modèle dans le même package que les classes des objets a persister, en soit ce n'est pas dramatique, mais ça m'embête un peu. Les classes de méta-modèle font pour ma partie intégrante de la couche de persistance, on a besoin de ces classes uniquement pour faire des requêtes, ces classes ne devraient pas êtres accessibles en dehors des packages relatifs à la persistance. Vous l'avez compris je souhaite que le générateur d' OpenJPA 2 puisse générer les classes dans un autre package. Cet ORM étant libre j'ai donc téléchargé le code source et je l'ai modifié afin qu'il puisse prendre en compte cette fonctionnalité. Cela se fait en rajoutant a la commande de génération le paramètre -Aopenjpa.destpackage=nom.du.package.

Vous pouvez télécharger ce générateur sur ce lien : (n'hésitez pas à me contacter si le lien ne marche plus)

http://www.megaupload.com/?d=J479TUTT

samedi 13 mars 2010

Cette jeune demoiselle...

Cette jeune demoiselle que je ramasse chaque trimestre à la petite cuillère, je ne peux m'en défaire. Je me fait un plaisir de sécher ses larmes, de lui redonner confiance en elle, de lui faire comprendre qu'elle vaut plus que c'est qu'elle croit valoir. Je l'aide dans ses conquêtes et sans trop le vouloir, je fini par en faire parti, je deviens alors le calineur, puis l'officiel. Je la connais par cœur, je lis dans ses yeux comme dans un livre, je me méfie d'elle parce qu'elle me connait bien elle aussi, mais pas autant que je ne la connais. Elle me considère comme l'homme parfait, on se connait depuis quelques années, je ne sais pas si c'est moi qui a évolué jusqu'à correspondre a ses critères, ou si c'est elle qui a modifié les siens pour que j'y corresponde. Peut-être que j'y ai toujours correspondu dans le fond. Elle voit en moi des qualités que nulle autre n'a pu voir jusqu'à présent. On semble faut l'un pour l'autre et pourtant, je me suis échappé. Je l'ai laissé seule, je me suis arrangé a ce qu'elle ne souffre pas trop. Je ne voulais pas ou plus être dépendant d'elle, je voulais pouvoir me convaincre que je pouvais vivre sans elle, je me suis en quelque sorte désintoxiqué d'elle. Durant l'année qui a suivi je ne suis sorti qu'avec des femmes qui lui ressemblait, comme celle ci qui est grande avec un teint halé, celle là qui a la même coupe de cheveux, l'autre qui à la même voix qu'elle, ou encore celle ci qui avait les même passion qu'elle. Tout se ramenait à elle. Inconsciemment je la recherchait à travers toute mes conquêtes, et je ne trouvais que des parties d'elle. Inconsciemment je comparais toute les femmes que je rencontrais à elle, elle était pour moi la femme parfaite, aucune autre ne m'a enivré autant qu'elle. En totale contradiction, je recherchais l'addiction, celle la même que j'ai fuit un an plus tôt.

La femme lapin

Elle est plutôt jolie, assez timide, elle garde ses distance. Elle se méfie de presque tout le monde. Regardez-la mais ne la touchez pas, ne lui parlez pas, d'ailleurs ne la regardez pas trop, ça la met mal à l'aise. Elle parle très peu, ne s'éloigne jamais de ceux qu'elle connait. Elle est plutôt sobre et elle fait tellement d'effort pour être discrète qu'elle finit malgré elle par se faire remarquer.

samedi 27 février 2010

Bloody Mary

Cela fait bien longtemps que je raffole de violence musicale, de colère sonore, d’ondes mécaniques aussi rageuses que progressives, peut être depuis Nirvana. Friand de gourmandises métalliques ou hardcore, je me suis orienté vers la musique du groupe Cursed. Encore une sommité musicale que je n'ai pu connaître avant son split. Je commence donc par le titre « Bloody Mary », lors de son audition, je ressens une légère sensation d’oppression. J'ai l'impression de basculer 5 6 ans en arrière. La colère du chanteur est assez banale pour un groupe affilié au punk au hardcore et au metal, mais ça voix a un petit quelque chose qui fait la différence. Il y a comme une densité musicale, le son a une ténébreuse texture. Puis la rythmique ralentit. Les riffs semblent plus plombant. I KNOW IT'S WROOOOONG ! Rythmique punk puis crust, les riffs semblent s'éclaircir tout en étant pachydermiques, les hurlements deviennent plus aigu, plus furieux. Je me sens vibrer, je me sens habité, je suis off, je sens le désespoir et la démence du vocaliste. C'est pour ces sensations là que j'écoute des musiques extrêmes. Rares sont les chansons qui ont un tel effet sur moi.

samedi 20 février 2010

Ce matin un gamin a buté un prof

Ce matin un gamin a buté un prof. La victime était excédée de subir les humiliations répétées de ses enseignants, qui étaient bien souvent suivi des brimades de ses camarades. La victime semblait douter de la faculté de ses enseignants à pouvoir les faire ingurgiter la totalité du programme au cours de l'année scolaire, et ne semblait pas comprendre pourquoi ils s'évertuaient à perdre un temps précieux sur des remontrances d'une demi heure ou sur des activités ni ludiques ni instructives. Le coupable était quadragénaire, semblait faire son travail comme il se doit, des témoignages d'anciens élèves relatent qu'il avait une appétence particulière pour les remontrances, il jouissait de sa supériorité, ils projetaient les craies sur la figures des bavard, tirait les cheveux des rebelles et giflait les rebelles qui avaient le malheur d'avoir des fibres capillaires trop courtes. Il faisait passer au tableau ceux qui étaient incapable de faire les exercices correctement, et plutôt que de faire son travail, d'être pédagogue, il prenait un plaisir sadique à humilier sa victime, le supplice morale pouvait durer une heure, une heure durant laquelle la victime subit, une heure durant laquelle le reste de la classe à défaut de s'instruire regarde le spectacle. Le coupable aimait particulièrement faire passer après « les branleurs » comme ils les appelaient un « bon » qui allaient « torcher » l'exercice avec célérité, cela lui permettait de conclure son humiliation par une comparaison qui allait enfoncer un peu plus la victime (le « branleur »), et peut importe si cette façon de faire poussaient les élèves à se haïr les uns les autres. Lorsque la victime récite son cours, le coupable appelle ça du baratin, lorsque la victime tente de se justifier, de s'expliquer, le coupable appelle ça de l'insubordination, chose qui se finit assez souvent dans le bureau de la principale ou du proviseur. Le coupable se plaisait à insulter la victime, sachant pertinemment que la victime ne pouvait pas répliquer, a moins bien sur de vouloir une nouvelle fois rendre visite au proviseur... La victime loin d'être exempt de tout défaut se soulageait en dégradant le véhicule de son bourreau. Le coupable dans les conseils de classe accablait sa victime (bien qu'elle soit absente), préconisait des voies de garages pour elle, en dépit de l'avis de ses collègues. Il ne faut pas croire que le coupable haïssait tous les mauvais élèves et seulement les mauvais élèves (du moins ceux qu'ils considéraient comme tel), il aimait beaucoup certaines personnes, et savait être pédagogues avec elles, il n'hésitait pas à les défendre dans les conseils de classes, à appuyer leurs candidatures pour des filières prestigieuses. Et comme on le sait tous l'affection et l'aversion peuvent être inconditionnelles, et si il lui arrivait de prendre pour des « branleurs » des élèves moyens, il lui arrivait aussi de soutenir des mauvais élevés en dépit de la motivation de ces derniers. Ce matin la victime s'est juré de pourfendre le coupable, ce matin le « branleur » a voulu mettre un point final à ses humiliations, ce matin le gamin a voulu rivaliser, se défaire de son complexe d'infériorité. Ce matin un coupable est mort, lacéré par des coups de couteaux. On dit que la victime s'est acharnée pendant un quart d'heure sur le coupable, ce sont les professeurs des salles d' a cotés et les pions qui ont arrêté le massacre, trop tard... La victime semblait incontrôlable, ils n'étaient pas trop de trois pour empêcher la victime d'exercer son action macabre. On entendit la victime hurler tout comme le coupable, des insultes ont figés dans les deux sens, des pleurs aussi, le coupable a malgré tout supplié la victime de l'épargner... Sans succès. La victime avait le regard lumineux, de son regard jaillissait une haine sans limite, c'est à se demander si elle prenait plaisir a voir le coupable se noyer dans son propre sang. La victime sera considéré comme folle, passera les trente prochaines années de sa vie en prison, le coupable sera incinéré, sa dépouille étant trop dégradée pour être mise dans un cercueil.

Tenebris


J'étais encore lycéen, j'aimais beaucoup le quartet americano-armenien de la cité des anges, mais je recherchais plus, plus de violence, plus de rapidité, de brutalité. Je voulais savoir si j'étais capable d'écouter de la musique encore plus bourrine. J'avais déjà tenté d'écouter des morceaux de l'hydre à 9 têtes d' Iowa, je n'avais pu entendre que du bruit, je pensais que ce groupe représentait la limite de l'audible que mes oreilles ne sauraient franchir. J'avais malgré tout pu me rendre compte chez un ami, que le vocaliste de la formation de Des Moines était capable de chanter avec une voix claire, ce qui rendait la musique du groupe nettement moins bruitiste. Un soir je me senti prêt à subir l'épreuve du groupe au nœud coulant, je tentât l'expérience seul dans ma chambre, il faisait nuit, les premiers sons que j'entendis fut des hurlements bizarres, presque inquiétant, des sonorités étranges, puis du bruit, je n'étais pas vraiment surpris de percevoir ainsi la musique du groupe d' Iowa, mais j'étais surpris de ne plus être brutalisé, de pouvoir écouter ce son sans souffrance, j'étais passé du stade de l'asphyxie musicale au stade de l'apnée musicale. Plus surprenant encore, je percevais une colère incontrôlée car tout simplement incontrôlable, une rage presque inexplicable, une haine absolue, un véritable chaos , une noirceur que les chants clairs parvenait difficilement à éclaircir. J'avais gouté à l'obscurité, je ne pourrais désormais plus m'en passer.