Bonjour à tous.
Depuis maintenant 2 ans, nous développons et maintenons une application J2EE basée sur Spring. La mise en production (un bon gros fichier War) est de plus en plus galère, avec des régressions (principalement sur l'interface web/javascript). Aujourd’hui, on limite
J'ai bien mis quelques tests unitaire, mais pour le moment, ça se limite à quelques tests pour vérifier que les requêtes s’exécutent bien.
L'application contient différentes fonctionnalités qui n'ont pas toujours de lien entre elle. Je voudrais pouvoir faire des mises à jour sans avoir à tout redeployer. J'aimerais un peu modulariser pour changer un peu tout ça, et mettre en place de vrai test en intégration continue.
Mais, mis à pars des tutoriaux et des articles qui explique unitairement et techniquement comment fonctionne Osgi, Maven, Hudson, etc, je ne trouve rien de concret qui propose une vision global ou des bonnes pratique sur comment bien moduler son projet, permettre des mises à jour indépendante. Ce que je souhaite avant tout, c'est une vision claire sur les bonnes pratiques à adopter
J'ai bien compris que Maven permettait en partie de structurer (par convention) un projet, pour que des outils (comme hudson) soit capable de les installer en lisant le pom.xml. Mais je n'ai pas trouvé un archetype clair permettant de séparer mon application WEB en plusieurs modules Maven tout en conservant le framework Spring. En gros, j'aimerais avoir une modularisation vertical (Interface Web et Couche Métier), mais aussi horizontale (2 couches Métier). Cette modularisation suppose t-elle par la suite de mettre à jour individuellement ces différents modules?
Hudson comme outil d'integration continue semble efficace pour un serveur de test. Il lance les tests unitaires à intervalle régulier et permet de nous alerter. Mais Hudson peut-il être aussi utilisé pour de la production continue? Comment automatiser une mise à jour régulière en production?
Indépendamment du fait d'utiliser Maven pour structurer mon projet, j'ai également regardé un peu du côté de Spring Dm et voir sa vision sur le développement par composant Osgi, mais j'ai l'impression que c'est assez complexe et pas nécessairement adapté à mon besoin.
Quel est la différence entre un module Maven et un composant Osgi?
A première vue, mais sans en être sûr, je dirais qu'Osgi est plus à utiliser pour gérer le dynamisme et les interactions entre modules sur un environnement en production
Alors que Maven permet de moduler les sources de son projet pour le développement mais qu'une fois en production, il ne s'agit ni plus ni moins d'un ensemble de jar java. Qu'en pensez-vous?
N'hésitez surtout à me poser des questions.
Partager