Poster taggade med ‘xdoclet’

Denna artikel behandlar hur man kan kombinera traditionell J2EE-utveckling (applikationsserver med Stateless Session Beans och liknande) med Spring Framework och samtidigt erhålla en kort Code-Build-Test-cykel, hur man får det bästa av två världar. Läs mer >>

Hibernate 3 innehåller en massa nytt godis bl.a. annotations stödet men en bieffekt är att glada Hibernate 2/XDoclet användande projekt hamnar i klistret. Jag själv använder en något halvdjärv workaround kring detta som jag beskriver här…

Hibernate 3 har nått RC-1 (Release Candidate 1) och det är dax att börja använda H3 på allvar. Ett litet aber som projekt med Hibernate 2 i bagaget kan få som ”kul nyhet” är att de användbara XDoclet taggarna inte stödjer H3 utan genererar mappningar med referenser till H2′s dtd.

Detta ställer till det lite och det blir inte lättare när ”Hibernate-ligan” valt att satsa hela veckopengen på Java 5′s annotations. Problemet är förstås att inte alla projekt kan kasta sig över Java 5 utan sitter ofta i klistret kring val av JVM version då t.ex. en viss applikationsserver (med ”petiga JVM krav”) används av projektet. Har man dessutom 200 mappade klasser så är det lagomt kul att konvertera det hela till korrekt annotation syntax.

Codehaus har två bollar rullande som kan lösa detta på sikt. Dels deras s.k. annotations backport projekt alt. XDoclet 2 projektet som känns lite svalt just nu.

Jag gjorde själv resan kring detta för några månader sedan och jag har valt en något djärv variant för att komma runt detta (Ingen kommer ihåg en fegis ;-). Jag låter helt enkelt ant/XDoclet generera H2 baserade mappningar sedan får ant ändra dtd referensen till H2 till H3′s dtd genom följande:

<replace dir=”${src-gen}/hibernate” value=”3.0”>
    <include name=”**/*.xml”></include>
    <replacetoken>2.0</replacetoken>
</replace>

Jag räknar här kallt med att mappnings-syntaxen är identisk mellan H2 och H3. I mitt fall funkar detta utan problem men jag gissar att det finns risk för tjära och fjädrar om man kommer dragandes med ev. problem man hamnat i hos Gavin och co.

Hibernate 3 äntligen släppt! Det är naturligtvis ett helt gäng med förbättringar, men vad jag själv mest ser fram emot är att kunna använda Java 5 annotations istället för XDoclet-taggar. XDoclet har visserligen fungerat mycket bra för mig som ett stöd till Hibernate, men det känns ändå bra att kunna hoppa över ett steg i verktygskedjan.

Mer bloggar och artiklar är att vänta när vi har mer erfarenhet av den nya releasen!

Denna artikel beskriver den populära opensourcekomponenten Hibernate. Hibernate är ett s.k. Object Relational Mapping (ORM) verktyg som används för att möjliggöra persistens. Hibernate är ett av de mest aktiva och populära javaprojekten på Sourceforge och kommer garanterat dyka upp mer och mer i javabaserad systemutveckling framöver. Läs mer >>