Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Julien Chable

He blogs, you blog, I blog ...

Archives

[OpenXML4J] Utiliser OpenXML4J ou POI pour ses projets Java avec Open XML : l'avenir du projet OpenXML4J

De retour du workshop DII de Bruxelles (par ici pour le compte rendu partie 1 / partie 2), j'ai reçu quelques questions sur l'avenir d'OpenXML4J face au projet POI. Durant la session dédiée à Java de ce workshop, j'avais justement précisé quelques points de détails sur son avenir. Je vous les partage dans ce post.

Un peu d'histoire

Ce projet a débuter en août 2006 alors que le draft 1.4 d'Open XML ECMA 376 venait fraîchement d'être publié. Pour tout dire, cela faisait des années que j'attendais que Microsoft libère son format Office pour créer des solutions et des outils de manipulation de documents bureautiques (les formats XML de 2003 ne m'avait pas convaincu, en plus des problèmes de licences sur les schémas qu'il pouvait y avoir à une époque). J'ai sauté sur le draft 1.2, le premier draft Open XML a avoir été publié, dés sa parution en Avril 2006 avec notamment un article sur MSDN à la clé. Le code de cet article aurait dû donner la première version de OpenXML4J, mais il sera complètement réécrit 2 fois avant d'arriver à la version initiale d'OpenXML4J posté sur sourceforge.net en août de la même année.

Pour le fun : c'est en Octobre 2006 que j'ai rencontré Doug Mahugh - alors évangéliste Open XML et en charge d'organiser les workshops qui suivront - pour lui présenter ce projet et la vision que j'en avais. Et la première chose qu'il m'a dit en sortant de cet réunion : "C'est la première réunion ici où quelqu'un ne me parle ou ne me demande pas d'argent !". De mon côté, la première chose que je me suis dit en sortant de la réunion : "Est-ce qu'il travaille vraiment chez Microsoft ? Il est ouvert, semble sincère dans ce qu'il dit et fait ! Bizarre". Ce  n'était pas la même atmosphère et les mêmes propos auxquels j'étais habitué dans les réunions Microsoft de l'époque. Les échanges qui ont ensuite suivis lors de mon déplacement à Redmond à l'occasion du MVP Summit 2007 m'ont confirmé que quelque chose d'important se tramait chez Microsoft : l'ouverture ! Et depuis, force est de constater que de plus en plus de personnes et technologies chez Microsoft y adhèrent. Un virage a 180° de Microsoft en quelques années, ce serait assez intéressant de faire la rétrospective.

OpenXML4J a été principalement développé sur le temps personnel, mais Wygwam a également investi quelques semaines dans ce projet (un grand merci au passage). Le temps et la main d'oeuvre venant à  manquer, seule la partie Open Packaging Convention (autrement dit la partie basse et commune de tous les documents Open XML) a été réellement implémentée depuis. Un rapide fork du projet voulait donner l'ambition de proposer un modèle objet, mais finalement l'intérêt est revenu vers la branche principale du projet car l'architecture de ce prototype de modèle objet ne me plaisait pas (perfectionniste ?).

Aujourd'hui, nous en sommes donc a une implémentation de OPC permettant de manipuler les documents au même que l'espace de nom System.IO.Packaging de .NET 3.

POI est arrivé avec son support du format Open XML

Ces derniers mois, le projet POI a eu l'ambition d'élargir le support du format Excel à celui d'Open XML. POI permet de manipuler le contenu des documents binaires et maintenant Open XML via un modèle objet Java. La compilation de la version 3.5 qui a été publiée en Beta 4 aujourd'hui même le prouve :

image 

Pour proposer une API exploitant le zip et le XML des documents Open XML, POI aurait dû créer une API capable d' accèder aux parties et de naviguer à l'intérieur du package : c'est exactement ce que fait OpenXML4J ! Aujourd'hui utiliser par POI pour cette tâche, OpenXML4J a été ajouté au dépendance du projet il y a quelques semaines. Vous pouvez d'ailleurs observer celle-ci dans le projet vers la version 1.0 Beta d'OpenXML4J (ici lors de la compilation de POI) :

image

Aujourd'hui et demain

Le constat est assez clair aujourd'hui pour les librairies Java supportant le format Open XML :

image

STP = Strongly Typed Part (pour simplifier, c'est ce qu'apporte le SDK V1, c'est à dire le typage fort des parties)

Vous l'aurez compris, pourquoi implémenter ce qu'un autre projet fait tout aussi bien ? Aucun, c'est pourquoi l'objectif aujourd'hui d'OpenXML4J va plutôt être de compléter et de stabiliser son implémentation d'Open Packaging Convention, ce qui devrait être fait dans les prochains mois, et d'évoluer pour supporter les dernières évolutions de la spécification ISO (il y a encore un peu de travaille). Un des objectifs forts est aussi de se conformer à 100% à la spécification ECMA/ISO et pourquoi pas si cela est de rigueur dans le futur, de pouvoir devenir une implémentation conforme (je vous reparlerais des tests et de la conformité dans un prochain post très bientôt). A moyen termes, le projet OpenXML4J rejoindra certainement le projet POI pour ne former qu'un, en tout cas c'est ce que je souhaite, et le choix d'une double licence BSD/Apache déjà appliquée lors de sa création se justifie donc (était-ce réellement innocent ? ...).

J'espère que vous savez mieux où va ce projet dans les prochains mois et années à venir. Néanmoins, si vous avez des questions, n'hésitez pas à me contacter par mail, blog, MSN, Skype, Twitter, Facebook, etc bref n'hésitez pas à me contacter.

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 4 décembre 2008 14:19 par neodante
Classé sous : ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01