Bonjour,
Premier draft pour la roadmap ToPIA 3, ça reprend et synthétise la
précédente discussion :
Pré-travail en vue d'un changement de version majeure
=====================================================
- Déprécier immédiatement et supprimer dans ToPIA 3 tout le code qu'on
ne veut plus dans ToPIA
- un paquet util qui pourrait redescendre dans ObServe
- ServiceTransformer
- TopiaQuery
- Supprimer tout le code déprécié
Migration vers JPA
==================
- Réécrire TopiaContextImpl en utilisant l'API JPA (EntityManager...)
- Vérifier/Corriger les mappings générés
- Utiliser OpenJPA comme implémentation de JPA par défaut et permettre
d'utiliser Hibernate 4
Améliorations diverses
======================
- Arrêter de modéliser les DAO (ne garder que le nécessaire dans le
transformer)
- Avoir des entités POJO (sans topiaContext dedans) par défaut et avoir
un mode pour Isis-Fish
- Une approche « bonne pratique par défaut » pour ne pas avoir de
boilerplate tagValues (0 config = config propre). Exemple :
model.tagvalue.constantPrefix=PROPERTY_
model.tagValue.doNotGenerateBooleanGetMethods=true
- Forcer l'encapsulation du code spécifique JPA : rendre
DAO#createQuery() et findByQuery, countByQuery protected. A contrario,
dans le DAO, laisser l'accès à l'intégralité de la sous-couche pour
usage exceptionnel
- TopiaException extends RuntimeException
- Permettre de déclarer tout un package du modèle (stéréotype) pour que
toutes les classes à l'intérieur soient considérées comme entités (sans
besoin de mettre le stéréotype sur chaque classe)
- Introduire un contrat TopiaIdFactory, Un TopiaRootContext est lié à
une instance de cette factory (qu'on peut changer par configuration),
ainsi que trois implémentations
- L'actuelle, corrigée en utilisant RandomStringUtils (pas de
boucle), implémentation par défaut
- Une déterministe (Random avec graine et/ou compteur)
- Une qui utilise l'implémentation fournie par l'implémentation JPA
(par Hibernate ou autre)
Autre chose ?
--
Brendan Le Ny, Code Lutin
bleny(a)codelutin.com
(+33) 02 40 50 29 28