OpenOffice, Java et NetBeans

publicité
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
Téléchargement