OpenOffice, Java et NetBeans Alexis Moussine-Pouchkine Sun Microsystems, Inc. Extension, plug-in, module, ... NetBeans Le VRAI Client Riche Extensions OpenOffice.org • OpenOffice.org 2.0.4+ > Nouvelle extension *.oxt > Type Mime correspondant > Rédigé en Java, C++, Python • Extension OOo – Meta-données > > > > > > Identifiant unique Numéro de version Expression des dépendances Ressource de localisation URL de mise à jour Mécanisme de licence Extensions OpenOffice.org • Conteneur Zip (.oxt) > Précédement .uno.pkg et .zip • META-INF/manifest.xml > Description du contenu > Description des composants à installer • description.xml > Licence > Dependances • Contenu Extensions: Quelques Exemples • Blog Publisher • Intégration SVN • Pilotage de présentation à distance • OpenOffice 2 GoogleDocs • Intégration Fax • OOoLatex • Presentation autostarter • Presentation compressor • MultiDiff (StarXpert) • Code formatter • ... • Workflow d'entreprise OpenOffice.orget Java • Points communs > > > > Millions d'utilisateurs Open Source Multi plate-forme Larges communautés > Freins potentiels > OpenOffice n'est pas écrit en Java > Infrastructure IDL UNO > Architecture d'extensions récente NetBeans 6 Plug-in NetBeans pour OOo • Assistants pour extensions de type : > > > > Add-On: s'applique à tout type de document et fonction Calc Add-In: nouvelle fonction Cal pour document tableur Composants: librairie pour encapsuler l'API OOo Application Cliente: automatisation OOo • NetBeans 5.5+ (bientôt pour 6.x) Install plug-in OOo dans NetBeans Cas d'usage • Envoi du document courant au travers d'un Web Service pour initialiser un workflow ou un archivage • Client > OpenOffice 2.4 + Add-In > Java 6 (JAX-WS 2.1) > Swing et NetBeans Matisse GUI builder • Serveur > GlassFish v2 (JAX-WS 2.1) (serveur d'application Java EE 5 et Libre) Mon Add-On OOo • Assistant NetBeans de création de l'Add-On > Identification des commandes > Enregistrement dans le menu et la barre d'outils • Génération des fichiers : > > > > > AddOns.xcu ProtocolHandler.xcu MonAddOn.java CentralRegistrationClass.java uno-extension-manifest.xml AddOns.xcu Enregistrementactions AddOns.xcu (2) AddOns.xcu (3) ProtocolHandler.xcu *.java Obtention du document courant http://codesnippets.services.openoffice.org Bibliothèque(s) (ici: OpenDocumentMetadata) Code: .form : NetBeans Matisse .idl : contrats UNO .properties : données I18N .java : code Swing, Web Service, etc... Ressources statiques Packaging, déploiement, test Démonstration Quelques conseils • Sortie standard disponible • Debug distant (manuel) > Rajout de l'option suivante dans la configuration du JRE : -Xrunjdwp:transport=dt_socket,server=y, address=12999,suspend=n > Depuis NetBeans: "Attach Debugger" • Bibliothèques tierces > Le fichier .oxt doit contenir les JARs ainsi qu'une entrée Class-Path dans le manifest • Inhiber l'auto-recovery > Variable d'environnement OOO_DISABLE_RECOVERY > http://wiki.services.openoffice.org/wiki/Environment_Variables Liens • API OpenOffice.org > http://api.openoffice.org/ • Wiki OpenOffice.org > http://wiki.services.openoffice.org/ • OpenOffice.org Developer's Guide > http://api.openoffice.org/DevelopersGuide/DevelopersGuide.html • Liste de diffusion pour développeurs d'extensions OOo > http://extensions.openoffice.org/servlets/ProjectMailingListList • http://netbeans.org • http://glassfish.org [email protected] http://blogs.sun.com/alexismp