Création du Bundle d'Alfresco pour une application OSGi

lundi 25 mai 2009

L’OSGi Alliance (précédemment connue sous le nom de Open Services Gateway initiative) est une organisation fondée en mars 1999. L’Alliance et ses membres ont spécifié une plate-forme de services basée sur le langage java qui peut être gérée de manière distante. Le cœur de cette spécification est un framework (cadriciel) qui définit un modèle de gestion de cycle de vie d’une application, un référentiel (registry) de services, un environnement d'exécution et des modules. Basés sur ce framework, un grand nombre de couches (Layers) OSGI, d’API et de services.

Le framework implémente un modèle de composants dynamique et complet, comblant un manque dans les environnements Java/VM traditionnels. Les applications et composants (se trouvant sous la forme de bundles pour le déploiement) peuvent être installés, arrêtés, démarrés, mis à jour et désinstallés de manière distante sans nécessiter de redémarrage ; la gestion des classes/paquetages Java est spécifiée de manière très détaillée. La gestion du cycle de vie est effectuée à travers une API en appliquant une politique de gestion des téléchargements distants. Le référentiel (registry) de services permet aux bundles de détecter l’addition de nouveaux services, ou la suppression de services et de s'y adapter.

L'objectif original se focalisait sur les passerelles (gateways) de services mais sa mise en application s’est avérée bien plus étendue. Les spécifications sont désormais utilisées dans des applications allant des téléphones portables à l’IDE Eclipse (sous-projet Equinox). D’autres domaines d'application incluent les automobiles, l’automatisme industriel, les PDAs, le calcul grid, les loisirs (e.g. iPronto), la gestion de flottes et les serveurs d'applications. (source)

Plus d'informations sur ce lien


Revenons à notre gros mouton Alfresco, LoooooL

Pour pouvoir modifier tranquillement le code source d'Alfresco, il n'y a pas mieux qu'il soit en format Bundle (pour une application OSGi)
Avant de commencer cet article, vous devez avoir un WAR d'alfresco généré grâce à l'article (lien),
Une fois que vous ayez un WAR fonctionnel, il vous suffira de le déziper en utilisant un des utilitaires existants sur le marché (WinRar, WinZip, ...),

Ouvrez Eclipse, et créez un nouveau projet : Bundle Project,



Configurez votre workspace pour qu'il soit compatible avec les recommandations de SpringSource, comme le montre l'image ci dessous :



Copiez le contenu du WAR généré dans le dossier : src/main/resources/MODULE-INF, vous aurez un workspace qui ressemble à cela :



Créez le fichier MANIFEST.MF dans le fichier src/main/resources/META-INF, alimentez le en fonction des besoins de l'application (lancer le bundle sur le serveur et essayez de résoudre les dépendances dont l'application aurait besoin), ou bien vous pouvez télécharger ce fichier (ici).

Pour tester votre application, ajoutez la à Spring DM Server (sous eclipse) et démarrez votre serveur.

0 commentaires: