I. Configuration de l'environnement▲
Une fois que vous avez téléchargé tous les logiciels listés précédemment, vous devez prendre le temps de préparer votre environnement comme décrit ci-dessous.
1. Créez un nouveau dossier sur votre disque dur.
2. Depuis la distribution Equinox, insérez les éléments suivants dans le dossier :
- javax.servlet_xxx.jar ;
- org.eclipse.equinox.ds_xxx.jar ;
- org.eclipse.equinox.http_xxx.jar ;
- org.eclipse.equinox.util_xxx.jar ;
- org.eclipse.osgi.services_xxx.jar ;
- org.eclipse.osgi_xxx.jar.
3. Insérez les jars du Sudoku dans le dossier soit les jars ci-dessous :
- aQute.sudoku.jar ;
- aQute.webrpc.jar.
Maintenant vous avez tous les bundles OSGi que vous allez importer dans un endroit centralisé d'où vous pourrez les intégrer dans votre application.
II. Créer l'application▲
Une fois que vous avez tous les bundles disponibles requis, créez votre nouvelle application à partir de la plateforme NetBeans comme décrit ci-dessous.
1. Choisir un Fichier | Nouveau Projet et choisir « Samples » -> « NetBeans Modules » et sélectionner « Equinox based Platform Application ».
2. Donner un nom pour l'application comme montré ci-dessous :
3. Vous pouvez lancer l'application qui résulte du template ci-dessus, vous pourrez voir une application contenant une fenêtre qui montre tous les modules de NetBeans et les bundles OSGi qui composent votre application.
III. Importer les bundles OSGi▲
Comme les premières étapes, vous devez préparer votre environnement comme décrit ci-dessous.
1. Faites un clic droit sur l'application dans la fenêtre des projets, choisissez « Propriétés » et allez dans l'onglet « Librairies ». Cliquez « Add Cluster » et naviguez dans le fichier où les JAR auront été importés. Ensuite un assistant s'ouvre et vous permet de convertir les jars à un « cluster » c'est-à -dire un ensemble de modules/bundles qui sont intégrés à votre application.
2. Comme montré précédemment, mettez tous les paquets importés OSGi à « Enabled », de sorte qu'ils seront chargés et disponibles au lancement de l'application.
3. Quand vous cliquez sur « Finish », le fichier de configuration « platform.properties » sera mis à jour. Il devrait ressembler à quelque chose comme ça :
cluster.path.extra=
netbinox:\../
../
path/
to/
my/
nbsudokugame/
folder
disabled.modules.extra=
org.netbeans.libs.felix
cluster.path=
\
${
nbplatform.active.dir}/
harness:\
${
nbplatform.active.dir}/
platform:\
${
cluster.path.extra}
disabled.modules=
\
org.jdesktop.layout,\
org.netbeans.api.visual,\
org.netbeans.core.execution,\
org.netbeans.core.multiview,\
org.netbeans.insane,\
org.netbeans.libs.felix,\
org.netbeans.libs.jsr223,\
org.netbeans.modules.apisupport.harness,\
org.netbeans.modules.apisupport.tc.cobertura,\
org.netbeans.modules.autoupdate.services,\
org.netbeans.modules.autoupdate.ui,\
org.netbeans.modules.core.kit,\
org.netbeans.modules.favorites,\
org.netbeans.modules.jellytools.platform,\
org.netbeans.modules.jemmy,\
org.openide.compat,\
org.openide.execution,\
org.openide.options,\
org.openide.util.enumerations
nbplatform.active=
default
Note : la première ligne ci-dessus pointe vers le dossier que vous avez créé plus tôt.
4. Enfin, ajoutez cette ligne au fichier de configuration « project.properties » de l'application, qui spécifie qu'aucun écran de démarrage ne sera affiché et qui spécifie le port de déploiement de l'application :
run.args.extra=--
nosplash -
J-
Dorg.osgi.service.http.port=
8080
IV. Lancer l'application▲
L'application est maintenant prête pour être déployée comme décrit ci-dessous
1. Lancez l'application ! Tous les bundles OSGi et les modules de NetBeans de votre application vont être lancés. L'application pour voir les bundles OSGi et les modules NetBeans est aussi déployé, vous donnant ainsi une application bureau pour suivre ce qui est déployé ce qui s'avère être très pratique.
Vous pouvez également supprimer le module entier qui fournit la fenêtre ci-dessus. Puis supprimer tous les modules requis pour la fenêtre. En clair, supprimez pour le système de fenêtre, le système des actions, et toutes les autres choses… excepté les jars requis pour l'intégration d'OSGi : boostrap,startup, filesystems, module system, utilities et lookup.
cluster.path.extra=
netbinox:\../
../
path/
to/
my/
nbsudokugame/
folder
disabled.modules.extra=
org.netbeans.libs.felix
cluster.path=
\
${
nbplatform.active.dir}/
harness:\
${
nbplatform.active.dir}/
platform:\
${
cluster.path.extra}
disabled.modules=
\
org.jdesktop.layout,\
org.netbeans.api.annotations.common,\
org.netbeans.api.progress,\
org.netbeans.api.visual,\
org.netbeans.core,\
org.netbeans.core.execution,\
org.netbeans.core.io.ui,\
org.netbeans.core.multiview,\
org.netbeans.core.nativeaccess,\
org.netbeans.core.output2,\
org.netbeans.core.ui,\
org.netbeans.core.windows,\
org.netbeans.insane,\
org.netbeans.libs.felix,\
org.netbeans.libs.jna,\
org.netbeans.libs.jsr223,\
org.netbeans.libs.junit4,\
org.netbeans.modules.apisupport.harness,\
org.netbeans.modules.apisupport.tc.cobertura,\
org.netbeans.modules.applemenu,\
org.netbeans.modules.autoupdate.services,\
org.netbeans.modules.autoupdate.ui,\
org.netbeans.modules.core.kit,\
org.netbeans.modules.editor.mimelookup,\
org.netbeans.modules.editor.mimelookup.impl,\
org.netbeans.modules.favorites,\
org.netbeans.modules.javahelp,\
org.netbeans.modules.jellytools.platform,\
org.netbeans.modules.jemmy,\
org.netbeans.modules.keyring,\
org.netbeans.modules.masterfs,\
org.netbeans.modules.nbjunit,\
org.netbeans.modules.options.api,\
org.netbeans.modules.options.keymap,\
org.netbeans.modules.print,\
org.netbeans.modules.progress.ui,\
org.netbeans.modules.queries,\
org.netbeans.modules.sendopts,\
org.netbeans.modules.settings,\
org.netbeans.modules.spi.actions,\
org.netbeans.spi.quicksearch,\
org.netbeans.swing.outline,\
org.netbeans.swing.plaf,\
org.netbeans.swing.tabcontrol,\
org.openide.actions,\
org.openide.awt,\
org.openide.compat,\
org.openide.dialogs,\
org.openide.execution,\
org.openide.explorer,\
org.openide.io,\
org.openide.loaders,\
org.openide.nodes,\
org.openide.options,\
org.openide.text,\
org.openide.util.enumerations,\
org.openide.windows
nbplatform.active=
default
Puis vous aurez une application sans interface graphique c'est-à -dire une application serveur bien adaptée pour le développement web modulaire.
2. Maintenant tapez dans le navigateur (optionnellement, utilise URLDisplayer.getDefault() de l'API NetBeans UI Utilities pour ouvrir le navigateur à la bonne adresse) et le « index.html » défini dans le jeu du Sudoku est déployé et s'affiche dans le navigateur et vous pouvez commencer à jouer au jeu du Sudoku
http
:
//localhost:8080/rpc/sudoku/index.html
Félicitation, vous avez intégré vos premiers bundles OSGi dans l'application de la plateforme NetBeans
V. Remerciements▲
Je tiens à remercier Geertjan Wielenga pour l'autorisation de la traduction de son article. Vous pouvez voir l'article original ici.