MAX 2009 – JPA, BlazeDS et LiveCycle DS
Aoutch ! Rien que le titre fait un peu peur. L’idée de cette conférence est de présenter le framework JPA (Java Persistence API) et son utilisation dans le cadre d’un projet Flex avec BlazeDS ou LiveCycle Data Services.
Oui, c’est velu, mais ça passe.
A savoir que je n’ai pas assisté à la totalité de la conférence, pour pouvoir rencontrer plus de personnes sur les stands.
Que les non techniciens s’arrêtent ici, et ne cliquent pas sur « Lire la suite » sous peine de maux de tête.
JPA / Hibernate
JPA
Il s’agit d’un framework permettant de concevoir sa base de données à partir de POJOs Java, auxquels sont ajoutés des annotations JPA. Ces annotations permettent de définir un modèle de données sous-jacent, qui pourra par la suite être créé physiquement sur la base de données de votre choix à l’aide d’une tâche Ant.
J’ai bien aimé leur anecdote : ils sont trois développeurs, et utilisent tous les trois des IDE différents et des bases de données différentes, mais comme ils ont JPA et que ce dernier permet de regénérer la base de données via Ant et ce quelque soit le SGBD cible, ils s’en foutent (oui, ils sont fous ces types).
Si vous n’avez rien compris, allez sur lequipe.fr, ça sera sûrement plus productif.
Hibernate

Il faut savoir ensuite que JPA reste une API, et qui dit API dit interface, aussi est-il nécessaire d’y adjoindre une implémentation. C’est ici qu’hibernate intervient. Concrètement, en définissant votre modèle de données avec JPA, vous pourrez utiliser Hibernate comme exécutant et vous permette d’interroger votre base de données. Le gros intérêt ici, c’est que JPA vous offre la possibilité de vous affranchir d’une configuration supplémentaire à l’aide des fameux fichiers HBM au format XML, les annotations JPA décrivant déjà cette information.
Pour le reste, les classes de votre couche prenant en charge l’accès aux données utiliseront Hibernate comme avant (je suis sûr que vous utilisiez déjà Hibernate avant, mais si).
J’avais prévenu, JPA, ça pique surtout quand il arrive avec son pote Hibernate.
Spring et BlazeDS
Comme on s’ennuyait un peu et qu’il n’y avait pas assez de frameworks, on embraye sur l’utilisation de Spring et BlazeDS.
Les conférenciers nous présentent comment utiliser Spring pour configurer les canaux de discussion entre Flex et les services Java (i.e. le message broker). Pour le coup, je connaissais déjà, mais un petit rappel sur le sujet est bon à donner compte tenu de la simplification apportée dans la configuration (si tant est qu’on utilise Spring) à l’aide de spring-flex.
Concrètement il suffit de déclarer dans la configuration XML Spring des beans avec le namespace flex: pour déclarer les destinations que vous pourrez ensuite utiliser avec un RemoteObject Flex.
On peut donc mapper des services Java via Spring comme ça :

C’est bien pratique quand on sait ce qu’il fallait faire avant pour dire à BlazeDS d’utiliser un bean Spring comme service.
LiveCycle DS
La conférence commençant à tourner court, et le sujet étant principalement les avantages de LiveCycle Data Services par rapport à BlazeDS, j’ai quitté la salle. J’avoue également que le dynamisme n’était pas particulièrement au rendez-vous (on ne peut pas être un super velu et un gai luron en même temps il faut croire, parce qu’ils étaient vraiment, vraiment super velus).
Je vous laisserai donc consulter le web pour connaître ces différences, qui seront certainement mieux couvertes par un article consacré, mais ce que j’ai retenu avant de partir : possibilité d’utiliser RTMP, lazy loading.
Conclusion
J’ai eu un aperçu assez clair de JPA et de son intérêt : développer son modèle de données sous forme de classes Java et ne pas se soucier plus que ça de la base de données si ce n’est lors de la définition des annotations. Intéressant : pour une fois qu’un framework comme cela ne nécessite pas plus de configuration que cela et permet même d’en supprimer, c’est bien !
Enfin, peu voire pas de techno Flex dans cette conférence… Peut-être était-ce le lot de consolation pour les purs développeurs Java assistant à MAX ? Dommage.
Tags: BlazeDS, Java, JPA, LiveCycle
