Eh bien, puisque vous ne pouvez pas avoir une partie OSGi et une partie non-OSGi vous aurez besoin pour faire de l'ensemble de votre application OSGi. Dans sa forme la plus simple, vous faites un seul bundle OSGi de l'ensemble de votre application. Clairement, ce n'est pas une meilleure pratique, mais il peut être utile pour obtenir une sensation pour le déploiement d'un faisceau dans un conteneur OSGi (Équinoxe, Felix, Knoplerfish, etc).
Pour le prendre au prochain niveau que vous aurez envie de commencer la division de votre application en composants, les composants doivent généralement avoir un ensemble de responsabilités qui peuvent être isolées du reste de votre demande par le biais d'un ensemble d'interfaces et de la classe des dépendances. L'identification de ces purement à la main peut varier de plutôt simple pour un bien conçu, très cohérent, mais faiblement couplé application à un cauchemar pour contrefil code source que vous n'êtes pas familier avec.
Un peu d'aide peut provenir d'outils comme JDepend qui peut vous montrer le couplage de paquets Java contre d'autres packages/classes dans votre système. Un package avec un faible couplage efférent devrait être plus facile à extraire dans un bundle OSGi qu'avec couplage efférent. Encore plus aperçu de l'architecture peut être eu avec pro tools comme Structure 101.
Purement sur le plan technique, le travail au quotidien avec une application qui se compose de 160 bundles OSGi et à l'aide de Spring DM je peux confirmer que la transition de la "normale" Printemps de Printemps DM est en grande partie libre de douleur. Le supplément d'espace de noms et le fait que vous pouvez (et devriez) isoler votre OSGi spécifiques Printemps de configuration dans des fichiers séparés rend encore plus facile d'avoir à la fois avec et sans OSGi scénarios de déploiement.
OSGi est un profond et large, un modèle de composant, de la documentation, je vous recommande:
-
OSGi R4 Spécification: Obtenir le Pdf de la Base et Recueil de spécifications, ils sont canonique, autoritaire et très lisible. Un raccourci vers eux à portée de main à tout moment, vous pourrez les consulter.
- Lire sur OSGi meilleures pratiques, il ya un grand nombre de choses que vous pouvez faire, mais un peu plus petit ensemble de choses que vous devriez faire, et il ya certaines choses que vous devriez jamais le faire (DynamicImport: * par exemple).
Quelques liens: