Annotation TopiaTransaction
Salut ! J'ai créé un troll, heu... ticket là dessus [1], mais je pense que le débat mérite d'être fait en français sur cette liste avant de polluer le ticket. Il y a des choses à creuser mais je trouve que cela simplifierait la lecture des applications Topia au niveau des TopiaContext et de leur traitement. Un aperçu de ce que cela pourrait donner : public class MyService { @TopiaDAOFactory protected MyDAOFactory daoFactory; public MyService(Properties properties) { daoFactory = new MyDAOFactory(properties); } @TopiaTransaction public Book saveBook(Book book) { BookDAO bookDAO = daoFactory.getBookDAO(); bookDAO.update(book); return book; } } A vos avis ;) [1] http://nuiton.org/issues/show/1467
Le Sun, 17 Apr 2011 01:02:34 +0200, fdesbois <fdesbois@codelutin.com> a écrit :
Salut !
J'ai créé un troll, heu... ticket là dessus [1], mais je pense que le débat mérite d'être fait en français sur cette liste avant de polluer le ticket.
Il y a des choses à creuser mais je trouve que cela simplifierait la lecture des applications Topia au niveau des TopiaContext et de leur traitement.
Un aperçu de ce que cela pourrait donner :
public class MyService {
@TopiaDAOFactory protected MyDAOFactory daoFactory;
Elle sert à quoi l'annotation TopiaDAOFactory :-/ ? Sinon ça va il faut aussi pouvoir la mettre sur la classe. Julien
Le Mon, 18 Apr 2011 20:37:34 +0200, Julien Ruchaud <julien.ruchaud@codelutin.com> a écrit :
Un aperçu de ce que cela pourrait donner :
public class MyService {
@TopiaDAOFactory protected MyDAOFactory daoFactory;
Elle sert à quoi l'annotation TopiaDAOFactory :-/ ? Sinon ça va il faut aussi pouvoir la mettre sur la classe.
En fait l'annotation @TopiaDAOFactory permettrait de recuperer l'instance de Factory qui contient les properties pour pouvoir créer des TopiaContext. Dans l'idée cela mapperait une interface DAOFactory avec quelques méthodes permettant plus facilement l'injection du TopiaContext à pousser dans les DAO. Et sinon bien évidemment, on pourra mettre @TopiaTransaction sur la classe. Mais tout ceci risque de pas être évident à mettre en place. Au vu de ce qu'a fait Spring, il faut soit des Proxy soit de l'AOP (si on veut de la propagation) ce qui risque d'être couteux. Je ne sais pas encore très bien comment implémenter ca...
On Wed, 20 Apr 2011 23:04:59 +0200 fdesbois <fdesbois@codelutin.com> wrote:
Le Mon, 18 Apr 2011 20:37:34 +0200, Julien Ruchaud <julien.ruchaud@codelutin.com> a écrit :
Un aperçu de ce que cela pourrait donner :
public class MyService {
@TopiaDAOFactory protected MyDAOFactory daoFactory;
Elle sert à quoi l'annotation TopiaDAOFactory :-/ ? Sinon ça va il faut aussi pouvoir la mettre sur la classe.
En fait l'annotation @TopiaDAOFactory permettrait de recuperer l'instance de Factory qui contient les properties pour pouvoir créer des TopiaContext. Dans l'idée cela mapperait une interface DAOFactory avec quelques méthodes permettant plus facilement l'injection du TopiaContext à pousser dans les DAO.
Et sinon bien évidemment, on pourra mettre @TopiaTransaction sur la classe.
Mais tout ceci risque de pas être évident à mettre en place. Au vu de ce qu'a fait Spring, il faut soit des Proxy soit de l'AOP (si on veut de la propagation) ce qui risque d'être couteux. Je ne sais pas encore très bien comment implémenter ca...
Moi je dirais bien : Danger Usine à gaz en vue... tout ça pour éviter de faire un set, bof. Si on peut éviter au maximum l'ioc dans ToPIA ça sera pas mal car le côté magique je suis pas trop fan :(
_______________________________________________ Topia-devel mailing list Topia-devel@list.nuiton.org http://list.nuiton.org/cgi-bin/mailman/listinfo/topia-devel
-- Tony Chemit -------------------- tél: +33 (0) 2 40 50 29 28 email: chemit@codelutin.com http://www.codelutin.com
On Thu, 21 Apr 2011 08:49:15 +0200 Tony Chemit <chemit@codelutin.com> wrote:
Moi je dirais bien : Danger Usine à gaz en vue... tout ça pour éviter de faire un set, bof. Si on peut éviter au maximum l'ioc dans ToPIA ça sera pas mal car le côté magique je suis pas trop fan :(
Je rejoins tout a fait tony. -- Benjamin POUSSIN -------------------- tél: +33 (0) 2 40 50 29 28 email: poussin@codelutin.com http://www.codelutin.com
Le 21/04/2011 08:49, Tony Chemit a écrit :
Moi je dirais bien : Danger Usine à gaz en vue... tout ça pour éviter de faire un set, bof. Si on peut éviter au maximum l'ioc dans ToPIA ça sera pas mal car le côté magique je suis pas trop fan :(
Attention, il y a 2 choses à différencier : - @TopiaDAOFactory qui sert à (je cite) "recuperer l'instance de Factory qui contient les properties pour pouvoir créer des TopiaContext". Florian, j'avoue que je ne vois pas comment tu veux que ça marche conjointement au constructeur : "public MyService(Properties properties) { daoFactory = new MyDAOFactory(properties); }" ? Sinon, l'IOC ne me gêne pas si c'est bien fait. - @TopiaTransaction qui permet d'enlever du code la gestion de la transaction : beginTransaction(), etc... Même si je suis sensible à la volonté de simplification/clarification du code de Florian, je suis d'accord avec Tony sur le fait que ça rajoute ce petit côté magique qu'on doit éviter. Arnaud.
participants (5)
-
Arnaud Thimel -
Benjamin POUSSIN -
fdesbois -
Julien Ruchaud -
Tony Chemit