Architecture d'utilisation des services de Lima
Bonjour, J'ai essayé de synthétiser l'architecture de lima telle qu'il est à l'heure actuelle. Donc nous avons: * les handler qui s'enregistrent sur les proxy monitorable et qui sont notifiés des modifications suite à l'appel d'une méthode sur un service. Cela reste interne à un client, et cela permet de mettre à jour facilement les interfaces qui manipule les mêmes données. * L'interceptor qui initie une topia context et qui l'enregistre dans la transaction courante (enlist). Même si ça fonctionne, je ne suis pas fan du fonctionnement: - thread local, avec accès statiques - j'ai l'impression que c'est plus un hack qu'autre chose. - la xaresource implémente 2 méthodes sur 8 À cogiter pour une prochaine discussion... -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com
Le 26/04/2012 12:48, Eric Chatellier a écrit :
Donc nous avons: * les handler qui s'enregistrent sur les proxy monitorable et qui sont notifiés des modifications suite à l'appel d'une méthode sur un service. Cela reste interne à un client, et cela permet de mettre à jour facilement les interfaces qui manipule les mêmes données.
Faute de mieux, ce mécanisme d'enregistrement sur les services restera comme cela pour le moment. Une autre solution pourra être envisagée plus tard si un besoin se fait sentir, avec une architecture différente.
* L'interceptor qui initie une topia context et qui l'enregistre dans la transaction courante (enlist). Même si ça fonctionne, je ne suis pas fan du fonctionnement: - thread local, avec accès statiques - j'ai l'impression que c'est plus un hack qu'autre chose. - la xaresource implémente 2 méthodes sur 8
Cette solution va être changer sur la constatation que, dans la même optique que JPA, le topiacontext est inutile à la couche service, seul les DAO le sont. Le topia context va toujours être englobé dans une XAresource enlistée dans la transaction du conteneur, et le DAOHelper va être instancié avec ce topia context par l'intercepteur. Reste maintenant a essayer de pousser ce DAOHelper aux EJB via IOC. A tester: - @Inject : JSR 330 - CDI : http://docs.oracle.com/javaee/6/tutorial/doc/giwhl.html -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com
Le 09/05/2012 10:14, Eric Chatellier a écrit :
Reste maintenant a essayer de pousser ce DAOHelper aux EJB via IOC. A tester: - @Inject : JSR 330 - CDI : http://docs.oracle.com/javaee/6/tutorial/doc/giwhl.html Après quelques recherche, il n'a pas l'air possible d'injecter d'autres resources que celle définie dans la conf du conteneur.
Suite à une demande sur la liste openejb-users, un des developpeurs me recommande de passer par un ThreadLocal pour ce genre de chose. -- Éric Chatellier <chatellier@codelutin.com> Tel: 02.40.50.29.28 http://www.codelutin.com
participants (1)
-
Eric Chatellier