Skip to content

Commit fb12aab

Browse files
committed
New post: RESThub 2 preview.
To be reviewed.
1 parent 1f01418 commit fb12aab

File tree

1 file changed

+140
-0
lines changed

1 file changed

+140
-0
lines changed
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
---
2+
layout: post
3+
title: Un aperçu de RESThub 2
4+
author: lfrering
5+
tags: [resthub, java]
6+
published: false
7+
---
8+
9+
# RESThub 2
10+
11+
Après la [sortie récente de RESThub
12+
1.1](http://pullrequest.org/2011/06/28/resthub-1-1.html), nous
13+
commencons à étudier les nouveautés que nous souhaiterions intégrer à
14+
RESThub 2.
15+
16+
## Spring 3.1
17+
18+
Tout d'abord, RESThub 2 se basera sur Spring 3.1 et essaiera de tirer
19+
parti des nombreuses fonctionnalités amenées par cette nouvelle version.
20+
La première nouveauté de Spring 3.1 dont profitera RESThub 2 sera la
21+
possibilité de configurer entièrement votre application Spring en Java.
22+
Ainsi tous les élément de configuration de l'ApplicationContext mis à
23+
disposition par RESThub auront un équivalent en annotation du type
24+
@Enable\* comme @EnableEntityScan. Pour plus de détails sur la
25+
configuration en Java de Spring, je vous invite à consulter [cet
26+
article](http://blog.springsource.com/2011/06/10/spring-3-1-m2-configuration-enhancements/)
27+
sur le blog de Spring Source.
28+
29+
La seconde fonctionnalité apportée par Spring 3.1 dont RESThub 2 tirera
30+
profit est la notion de profils Spring. Avec Spring 3.1, il est possible
31+
de définir des ensembles de beans différents en fonction d'un profil
32+
donné qui peut être défini au runtime. A l'instar des profils Maven,
33+
plusieurs profils peuvent être activés simultanément. Nous envisageons
34+
quelques pistes d'utilisation des profils sur RESThub : nous pourrions
35+
établir un profil dédié au monitoring ou bien même différents profils
36+
RESThub pour différentes sources de données :
37+
38+
* jpa pour les bases de données relationnelles
39+
* mongodb pour les bases MongoDB via Spring Data
40+
* ogm pour Hibernate OGM
41+
42+
Pour terminer sur les profils Spring, nous évaluerons la pertinence de
43+
leur utilisation pour les environnements de déploiements (local, dev,
44+
qualif, prod) et leur intégration avec la gestion des profils Maven.
45+
46+
Une autre nouveauté que nous souhaitons exploiter concerne la nouvelle
47+
option packagesToScan du LocalContainerEntityManagerFactoryBean pour
48+
remplacer les options include-entities et exclude-entities du namespace
49+
RESThub. En effet cette option devrait permettre à présent de scanner
50+
les entités venant du classpath et donc de favoriser la création de
51+
projets multi-modules. Cependant il reste à voir s'il sera possible de
52+
gérer plusieurs persistence units via cette option, configuration que
53+
supporte RESThub actuellement avec son implémentation native du scan
54+
d'entités.
55+
56+
Enfin nous verrons comment tirer parti de la nouvelle couche
57+
d'abstraction pour le cache de données apportée par Spring 3.1. Elle
58+
pourrait permettre la mise en cache des données rappatriées par des
59+
finders avec des stratégies de rétention configurables via une simple
60+
annotation.
61+
62+
## Spring Data
63+
64+
RESThub 1.x repose sur Hades pour la couche d'accès aux données. C'est
65+
Hades qui fournit l'implémentation de base des GenericDao proposés par
66+
RESThub. Or le lead developer de Hades, Oliver Gierke, a été débauché
67+
par Spring pour participer à l'initiative [Spring
68+
Data](http://www.springsource.org/spring-data) qui regroupe un ensemble
69+
de projets facilitant l'implémentation de votre couche d'accès aux
70+
données sur tout un ensemble de technologies de persistance, allant des
71+
bases relationnelles avec Spring Data JPA aux bases NoSQL avec par
72+
exemple Spring Data Redis, Neo4j, MongoDB.
73+
74+
Ainsi RESThub reposera principalement sur Spring Data pour l'accès aux
75+
données et en particulier Spring Data JPA qui est le successeur d'Hades.
76+
Nous tirerons donc partie des dernières fonctionnalités apportées par
77+
Spring Data JPA pour simplifier encore la mise en oeuvre de la couche
78+
d'accès aux données.
79+
80+
Enfin, comme signalé plus haut, nous faciliterons le support des bases
81+
NoSQL via l'intégration des autres projets du portfolio Spring Data.
82+
83+
## QueryDSL
84+
85+
Si vous avez déjà utilisé les API Criteria JPA2, vous savez certainement
86+
la lourdeur de mise en oeuvre de celles-ci ainsi que leur verbosité.
87+
[QueryDSL](http://www.querydsl.com/) propose une interface fluide (ou
88+
fluent API) pour la construction dynamique et typée de requêtes JPA, JDO
89+
ou SQL en Java.
90+
91+
D'autre part Spring Data JPA s'intègre dans ses dernières versions avec
92+
QueryDSL et il nous semble très intéressant d'intégrer cette technologie
93+
à la prochaine version de RESThub tant elle facilite et rend agréable
94+
l'écriture et la construction de requêtes dynamiques tout en permettant
95+
un refactoring aisé de celles-ci au besoin.
96+
97+
## Monitoring
98+
99+
Nous souhaitons intégré dans RESThub le support de JMX dans Spring.
100+
Couplé avec les profils Spring 3.1, RESThub pourrait grandement
101+
faciliter le monitoring de vos applications : il suffirait d'activer un
102+
profil 'monitor' par exemple pour bénéficier automatiquement du
103+
monitoring JMX pour votre application RESThub.
104+
105+
## Rapid Application Development
106+
107+
Avec RESThub, nous souhaitons mettre à disposition des développeurs Java
108+
une stack de technologies cohérentes dont la mise en oeuvre est
109+
simplifiée au maximum. Nous souhaitons aller encore plus loin dans cette
110+
démarche et s'inspirer du principe
111+
[YAGNI](http://fr.wikipedia.org/wiki/YAGNI) avec RESThub 2 en proposant
112+
des profils de configuration limitant le nombre de couches logicielles
113+
lorsque cela n'est pas nécessaire. Ainsi il serait possible de très
114+
rapidement mettre en place des applications Web en se passant du code
115+
superflu inutile.
116+
117+
## Roadmap
118+
119+
Une version alpha de RESThub 2 est prévue pour les prochaines semaines.
120+
Elle se basera sur la branche
121+
[spring-data](https://github.com/pullrequest/resthub/tree/spring-data)
122+
actuellement en développement et apportera donc l'intégration de Spring
123+
Data JPA en remplacement de Hades.
124+
125+
Nous prévoyons ensuite de sortir une nouvelle alpha par fonctionnalité
126+
intégrée avec en feuille de route prévisionnelle :
127+
128+
1. Intégration de QueryDSL
129+
2. Support de Spring 3.1
130+
3. Java-based configuration
131+
4. A planifier...
132+
133+
N'hésitez pas à nous donner votre avis sur ce que nous prévoyons
134+
d'intégrer dans RESThub 2 ainsi qu'à nous proposer les fonctionnalités
135+
que vous aimeriez voir arriver avec cette prochaine version !
136+
137+
D'autre part RESThub est un projet ouvert au contribution alors
138+
n'hésitez pas à [cloner le projet sur
139+
Github](https://github.com/pullrequest/resthub) et à proposer des **pull
140+
request** !

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy