Historique
This document in English.
Concernant l’installation, la configuration et l’utilisation, veuillez consulter la documentation.
Ce qui a été fait pour la version 0.0.1:
- La rédaction de ce pilote a été facilitée par une discussion avec Villeroy, sur le forum OpenOffice, que je tiens à remercier, car la connaissance ne vaut que si elle est partagée…
- Utilisation de la nouvelle version de HsqlDB 2.5.1.
- Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 0.0.2:
- Ajout d’une boîte de dialogue permettant de mettre à jour le pilote (hsqldb.jar) dans: Outils -> Options -> Pilotes Base -> Pilote HsqlDB
- Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 0.0.3:
- Je tiens particulièrement à remercier fredt à hsqldb.org pour:
- Son accueil pour ce projet et sa permission d’utiliser le logo HsqlDB dans l’extension.
- Son implication dans la phase de test qui a permis de produire cette version 0.0.3.
- La qualité de sa base de données HsqlDB.
- Fonctionne désormais avec OpenOffice sous Windows.
- Un protocole non pris en charge affiche désormais une erreur précise.
- Une url non analysable affiche désormais une erreur précise.
- Gère désormais correctement les espaces dans les noms de fichiers et les chemins.
- Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 0.0.4:
- Réécriture de Driver en Java version 11 OpenJDK amd64 sous Eclipse IDE for Java Developers version 4.23.0 avec les plugins:
- LOEclipse ou LibreOffice Eclipse plugin for extension development version 4.0.1.
- PyDev ou Python IDE for Eclipse version 9.3.0.
- Ecriture des services
Statement
, PreparedStatement
, CallableStatement
, ResultSet
, ...
de JDBC (merci à hanya pour MRI qui m’a été d’une aide précieuse…)
- Intégration dans jdbcDriverOOo des pilotes JDBC H2 et Derby en plus de HsqlDB. Implémentation de Services Java:
- Renommage du dépot et de l’extension HsqlDBDriverOOo en jdbcDriverOOo.
- Prise en charge dans Base des clés primaires auto incrémentées pour HsqlDB, H2 et Derby.
- Ecriture de com.sun.star.sdbcx.Driver. Ce pilote de haut niveau doit permettre la gestion des utilisateurs, des rôles et des privilèges dans Base. Son utilisation peut être désactivée via le menu: Outils -> Options -> LibreOffice Base -> Pilote JDBC pur Java.
- Implémentation d’un fournisseur de services Java UnoLogger.jar pour l’API SLF4J afin de pouvoir rediriger la journalisation des pilotes des bases de données sous-jacentes vers l’API UNO com.sun.star.logging.*.
- Réécriture, en suivant le modèle MVC, de la fenêtre des Options, accessible par le menu: Outils -> Options -> Pilotes Base -> Pilote JDBC, pour permettre:
- La mise à jour et/ou l’ajout d’archives Java de pilotes JDBC.
- L’activation de la journalisation du pilote de la base de la données sous-jacente.
- Ecriture, en suivant le modèle MVC, des fenêtres d’administration des utilisateurs et des rôles (groupes) et de leurs privilèges associés, accessible dans Base par le menu: Administration -> Gestion des utilisateurs et/ou Administration -> Gestion des groupes, permettant:
- Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 1.0.0:
- Intégration de HyperSQL version 2.7.2.
Ce qui a été fait pour la version 1.0.1:
- Intégration de SQLite JDBC version 3.42.0.0. Je tiens tout particulièrement à remercier gotson pour les nombreuses améliorations apportées au pilote SQLite JDBC qui ont rendu possible l’utilisation de SQLite dans LibreOffice/OpenOffice.
- Ce pilote peut être enveloppé par un autre pilote (HyperSQLOOo ou SQLiteOOo) grâce à une url de connexion désormais modifiable.
- Il est possible d’afficher ou non les tables système dans: Outils -> Options -> Pilotes Base -> Pilote JDBC -> Options du pilote UNO -> Afficher les tables système
- Il est possible d’interdire l’utilisation de jeux de résultats actualisables dans: Outils -> Options -> Pilotes Base -> Pilote JDBC -> Options du pilote UNO -> Utiliser les bookmarks
- De nombreuses corrections ont été apportées afin de rendre l’extension SQLiteOOo fonctionnelle.
Ce qui a été fait pour la version 1.0.2:
Ce qui a été fait pour la version 1.0.3:
Ce qui a été fait pour la version 1.0.4:
- Support dans la création de tables du paramètre TypeInfoSettings permettant de récupérer la précision pour les types SQL:
- TIME
- TIMESTAMP
- TIME WITH TIME ZONE
- TIMESTAMP WITH TIME ZONE
Ceci n’est integré que pour le pilote HsqlDB pour le moment.
Ce qui a été fait pour la version 1.0.5:
Ce qui a été fait pour la version 1.0.6:
- Ajout du paquet Python
packaging
dans le pythonpath
de l’extension. Merci à artem78 d’avoir permis cette correction en signalant cet oubli dans le dysfonctionnement #4.
Ce qui a été fait pour la version 1.0.7:
- Désormais, le pilote lève une exception si la création d’une nouvelle table échoue. Ceci est pour répondre au dysfonctionnement #1 sur l’extension HyperSQLOOo.
Ce qui a été fait pour la version 1.0.8:
- Utilisation de la dernière version de l’API de journalisation.
Ce qui a été fait pour la version 1.1.0:
- Tous les paquets Python nécessaires à l’extension sont désormais enregistrés dans un fichier requirements.txt suivant la PEP 508.
- Désormais si vous n’êtes pas sous Windows alors les paquets Python nécessaires à l’extension peuvent être facilement installés avec la commande:
pip install requirements.txt
- Modification de la section Prérequis.
Ce qui a été fait pour la version 1.1.1:
- Le pilote n’utilise plus de jeux de résultats (ResultSet) pouvant être mis en signet (Bookmarkable) pour des raisons de performances dans LibreOffice Base. Ceci peut être changé dans les options d’extension.
Ce qui a été fait pour la version 1.1.2:
- Implementation de l’interface UNO com.sun.star.sdbc.XGeneratedResultSet. Cette interface permet, lors d’une insertion de plusieurs lignes (ie:
INSERT INTO matable (Colonne1, Colonne2) VALUES (valeur1, valeur2), (valeur1, valeur2), ...
) dans une table disposant d’une clé primaire auto-incrémentée, de récupérer un ensemble de résultats à partir des lignes insérées dans la table et vous donne donc accès aux clés générées automatiquement en un seul coup.
- Implémentation de l’interface UNO com.sun.star.sdbcx.XAlterTable. Cette interface permet la modification des colonnes d’une table. Avec HsqlDB, il est maintenant possible dans Base:
- D’attribuez une description aux colonnes des tables.
- De modifier le type d’une colonne si le transtypage (CAST) des données contenues dans cette colonne le permet, sinon il vous sera proposé de remplacer cette colonne ce qui entraîne la suppression des données…
- Toutes les commandes DDL (ie:
CREATE TABLE...
, ALTER TABLE...
) générées par jdbcDriverOOo sont désormais enregistrées dans la journalisation.
- Pilote SQLite mis à jour vers la dernière version 3.45.1.0.
- Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 1.1.3:
Ce qui a été fait pour la version 1.1.4:
- Pilote SQLite mis à jour vers la dernière version SQLite-jdbc-3.45.1.6-SNAPSHOT.jar.
- Intégration du driver PostgreSQL pgJDBC version 42.7.1 dans l’archive de jdbcDriverOOo. Cette intégration a été réalisée sans utiliser de service Java spécifique à PostgreSQL mais uniquement en configurant le fichier Drivers.xcu permettant de déclarer le pilote JDBC à LibreOffice.
- Ouverture d’un dysfonctionnement pour le pilote MariaDB Connector/J afin qu’il prenne en charge
java.sql.Statement.getGeneratedKeys()
comme demandé par JDBC 4.1.
- Normalement les prochaines versions de jdbcDriverOOo devraient pouvoir être mises à jour dans la liste des extensions installées sous LibreOffice: Outils -> Gestionnaire des extensions… -> Vérifier les mises à jour.
- Désormais, seul le pilote HsqlDB a accès dans Base à l’administration des droits des utilisateurs et des groupes. Ceci est déterminé par le paramètre
IgnoreDriverPrivileges
dans le fichier Drivers.xcu.
- De nombreuses améliorations.
Ce qui a été fait pour la version 1.1.5:
- Vous pouvez désormais éditer une vue en mode SQL avec le pilote SQLite. Pour les pilotes qui ne prennent pas en charge la modification des vues, les vues sont supprimées puis recréées.
Ce qui a été fait pour la version 1.1.6:
- Vous pouvez désormais renommer les tables et les vues dans Base. Toute la configuration nécessaire au renommage pour chaque pilote JDBC intégré est stockée uniquement dans le fichier Drivers.xcu.
- Tous les pilotes JDBC intégrés à jdbcDriverOOo sont capables de renommer des tables ou des vues et même certains (ie: MariaDB et PostgreSQL) permettent de modifier le catalogue ou le schéma.
- De nombreuses améliorations.
Ce qui a été fait pour la version 1.2.0:
- Tous les pilotes intégrés à l’extension sont désormais entièrement fonctionnels dans Base pour la gestion des tables et des vues.
- Des fonctions intelligentes sont appelées pour:
- Le déplacement avec renommage des tables, pour les drivers le permettant et utilisant deux commandes SQL, l’ordre des commandes SQL sera optimisé (PostgreSQL).
- Le Renommage d’une vue, si le pilote ne le supporte pas, elle sera supprimée puis recréée (SQLite).
- Utilisation de classe générique Java pour la gestion des conteneurs utilisés pour la gestion des tables, des vues, des colonnes, des clefs et des indexes. L’utilisation de classes génériques dans les conteneurs permettra de se passer de l’interface UNO XPropertySet et de pouvoir retranscrire le code existant en Java pur.
- De nombreuses améliorations.
Ce qui a été fait pour la version 1.2.1:
- Résolution d’une régression interdisant la suppression de colonnes dans une table.
- Mise à jour du pilote mariadb-java-client-3.3.3.jar.
- Généralisation des classes Java génériques pour toutes les classes devant être partagées au niveau de l’API UNO (ie: sdb, sdbc et sdbcx).
- On peut désormais renommer les colonnes des tables sous SQLite et MariaDB.
- Il est également possible de renommer les colonnes déclarées comme clé primaire dans tous les pilotes embarqués.
- De nombreuses améliorations.
Ce qui a été fait pour la version 1.2.2:
- Mise en place de la gestion des index.
- Renommer une colonne déclarée comme clé primaire renommera également l’index associé à la clé primaire.
- Seuls les membres des classes Java répondant à l’API UNO ont un niveau de visibilité public, tous les autres membres ont une visibilité protégée ou privée.
- Résolution de nombreux problèmes et régressions.
Ce qui a été fait pour la version 1.2.3:
- Renommer une colonne déclarée comme index renommera également la colonne de l’index associée.
Ce qui a été fait pour la version 1.2.4:
- Suppression de SmallSQL.
- Intégration de Jaybird 5.0.4 le pilote JDBC pour Firebird.
- Vous pouvez désormais supprimer une clé primaire avec PostgreSQL.
- L’ajout ou la suppression d’une clé primaire génère une erreur si le pilote sous-jacent ne le supporte pas (SQLite).
- Lors de la création d’une table avec une clé primaire, si le pilote sous-jacent le prend en charge, la création de la clé primaire peut être effectuée par une commande DDL distincte. Cela permet à Jaybird de contourner le dysfonctionnement #791 en créant une clé primaire nommée et permet de gérer des cas particuliers comme MariaDB ou SQLite pour leur gestion des auto-increments.
- Si le pilote sous-jacent le permet, lors de la modification des colonnes d’une table vous pouvez désormais:
- La déclarer en auto-incrément (Identity) sans qu’elle soit nécessairement la clé primaire.
- Ajouter ou retirer la contrainte Identity (auto-incrément).
- Ajouter des commentaires.
- De nombreuses améliorations.
Ce qui a été fait pour la version 1.3.0:
- Intégration de la gestion des clés étrangères dans Base (Outils -> Relations…).
- Lorsque vous renommez une table, cela renommera également le référencement de cette table dans les éventuelles clés étrangères pointant vers cette table.
- Lorsque vous renommez une colonne, cela renommera également le référencement de cette colonne dans les éventuelles clés étrangères pointant vers cette colonne.
- Ces mises à jour de clés étrangères prennent en compte le chargement paresseux des conteneurs des tables et des clés et ne seront effectuées que si Base a déjà accédé aux données impliquées.
- Un problème persiste lors de la création de clés étrangères entre des tables qui n’ont pas le même catalogue et/ou schéma, voir dysfonctionnement #160375. Ce problème semble être lié à Base, j’espère qu’il sera résolu rapidement.
- Meilleure gestion des exceptions avec la possibilité de connaître l’état, le code SQL et le message de l’exception qui a été générée par le pilote sous-jacent.
- De nombreuses corrections et améliorations.
Normalement, je suis arrivé à couvrir toute l’étendue de l’API UNO (com.sun.star.sdbc, sdbcx et sdb), ce qui à pris pas mal de temps, mais je ne pensais pas au départ y arriver.
Ce qui a été fait pour la version 1.3.1:
- Correction de l’implémentation de l’interface XRowLocate responsable de la gestion des signets (Bookmark) dans les jeux de résultats (ResultSet). Cette nouvelle implémentation fonctionne avec tous les pilotes à l’exception de SQLite qui ne prend pas en charge la mise à jour des jeux de résultats. La présence de cette interface dans les jeux de résultats permet à Base d’éditer des tables même en l’absence de clé primaire. Avec certains pilotes (HsqlDB, H2 et Derby) le rafraîchissement en cours de saisie ne sera pas automatique et devra être fait manuellement. L’utilisation des signets peut être désactivée dans les options de l’extension.
- Mise en place de jeu de resultats simulé (java.sql.ResultSet) permettant de produire des ResultSet à partir des données de connexion fourni par le pilote, plus exactement à partir du fichier Drivers.xcu. L’utilisation de ces resultset simulé permet de fournir à Base des resultset conforme à ce qu’il attend même si le pilote sous jancent n’est pas capable de les produire. Ils servent à patcher les résultats obtenus les méthodes
getTypeInfo()
, getTableTypes
et getTablePrivileges()
de l’interface java.sql.DatabaseMetaData en utilisant respectivement les propriétés TypeInfoSettings
, TableTypesSettings
et TablePrivilegesSettings
du fichier Drivers.xcu.
- Ecriture d’un conteneur spécifique pour gérer les utilisateurs d’un rôle ou les rôles d’un rôle. Ce conteneur n’est qu’un pointeur vers les elements des conteneurs utilisateur et/ou role de la base de données. Lors de la suppression d’un utilisateur ou d’un rôle, ce conteneur sera mis à jour si nécessaire.
- Réécriture des fenêtres Administration des utilisateurs et Administration des groupes accessibles dans le menu Administration de Base. Désormais, si la propriété
TablePrivilegesSettings
est fournie par le pilote sous-jacent, seuls les privilèges déclarés dans cette propriété seront affichés. Cela permet une utilisation plus facile. Une demande d’amélioration #160516 a été faite afin d’intégrer cette fonctionalité dans le code de Base.
- Intégration de tous les pilotes embarqués dans l’extension (hors SQLite) dans la gestion des utilisateurs, des rôles et des privilèges sur les tables et les vues. Je suppose que de nombreux dysfonctionnements restent à corriger, merci de me le faire savoir, détecter les dysfonctionnements me prend plus de temps que les corriger….
- De nombreuses corrections et améliorations…
Ce qui a été fait pour la version 1.3.2:
Désormais l’API UNO SDBCX peut être utilisée pour la création de bases de données, comme c’est le cas pour les dernières versions des extensions utilisant jdbcDriverOOo. Il est possible de créer des tables, grâce à l’API UNO, avec les caractéristiques suivantes:
- Déclaration de colonnes de types TIMESTAMP WITH TIME ZONE, TIMESTAMP, TIME WITH TIME ZONE, TIME avec gestion de la précision (ie: de 0 à 9).
- Déclaration de tables temporelles versionnées par le système (temporal system versioned tables). Ces types de tables sont utilisés dans les mêmes extensions pour faciliter la réplication des données.
- Déclaration de tables au format texte. Ces tables vous permettent d’utiliser les données de fichiers au format csv.
- Déclaration des clés primaires, clés étrangères, index, utilisateurs, rôles et privilèges associés.
L’utilisation de l’API UNO pour créer des bases de données vous permettra d’utiliser du code indépendant de la base de données sous-jacente.
Les clients utilisant le pilote jdbcDriverOOo peuvent accéder aux fonctionnalités du pilote JDBC sous-jacent à l’aide de la méthode XDriver.getPropertyInfo() afin d’accéder au paramètre nécessaire lors de la création de tables et d’afficher correctement les privilèges. Ces paramètres étant accessibles directement par le pilote, peuvent être obtenus avant toute connexion, et permettent donc la création de la base de données lors de la première connexion.
Ce qui a été fait pour la version 1.3.3:
- Modification de la gestion du paramètre de connexion
JavaDriverClassPath
. Ce paramètre peut désormais désigner un répertoire et dans ce cas tous les fichiers jar contenus seront ajoutés au Java ClassPath
. Cela permet le chargement dynamique des pilotes JDBC nécessitant plusieurs archives (ie: Derby et Jaybird embedded). Cette modification a été apportée pour permettre à la nouvelle extension JaybirdOOo de fonctionner.
- Reprise d’une partie de l’implémentation de
javax.sql.rowset.CachedRowSet
dans les jeux de résultats ScrollableResultSet.java et SensitiveResultSet.java afin de simuler le type TYPE_SCROLL_SENSITIVE
à partir des jeux de résultats de type TYPE_FORWARD_ONLY
et TYPE_SCROLL_INSENSITIVE
respectivement. Cela permet à LibreOffice Base d’utiliser des signets (ie : l’interface UNO XRowLocate) qui permettent des insertions, mises à jour et suppressions positionnées et donc, pour les bases de données le supportant, la possibilité d’éditer des tables ne contenant aucune clé primaire. De plus, un mode SQL permet de rendre éditable n’importe quel ResultSet. Ce mode peut être validée dans les options de l’extension, elle est trés puissante et donc à utiliser avec prudence. Concernant les jeux de résultats de type TYPE_FORWARD_ONLY
, leur implémentation chargeant progressivement l’intégralité des données du jeu de résultats en mémoire peut conduire à un débordement de mémoire. La mise en oeuvre d’une pagination éliminera ce risque.
- Ajout du pilote MySQL Connector/J version 8.4.0. Ce driver ne semble pas fonctionner correctement, des erreurs assez surprenantes apparaissent… Je le laisse en place au cas où des gens seraient prêts à participer à son intégration? A utiliser avec précaution.
- Suite à la demande de PeterSchmidt23 ajout du pilote Trino version 448. Ne connaissant pas Trino, qui a l’air étonnant par ailleur, seulement un début d’intégration a été réalisée. L’edition du contenu des tables n’est pas encore possible, voir dysfonctionnement #22306. Le nom des tables doit être en minuscule afin d’autoriser leur création.
- L’implémentation de
CachedRowSet
semble avoir résolu le problème d’insertion de cellules depuis Calc, voir dysfonctionnement #7.
- De nombreuses corrections et améliorations…
Ce qui a été fait pour la version 1.4.0:
- Mise à jour du pilote Jaybird vers la version finale 5.0.5.
- Modification de l’implémentation de l’interface UNO com.sun.star.sdbc.XGeneratedResultSet. Cette nouvelle implémentation prend en charge les pilotes qui ne suivent pas l’API JDBC mais proposent une implémentation spécifique (ie: MariaDB et Derby). Pour être activé lors de l’utilisation de fichiers odb créés avec une version précédente, s’il est présent, il est nécessaire de modifier le paramètre :
Requête des valeurs générées
accessible par le menu : Edition -> Base de données -> Paramètres avancés… -> Valeurs générées par la valeur : SELECT * FROM %s WHERE %s
.
- Ajout de nouveaux paramètres pris en charge par le fichier de configuration Drivers.xcu. Ces nouveaux paramètres permettent de modifier les valeurs renvoyées par les pilotes concernant la visibilité des modifications dans les jeux de résultats (ie: insertion, mise à jour et suppression). Ils permettent également de forcer le mode SQL pour les modifications souhaitées dans les jeux de résultats.
- Finalisation de l’implémentation de l’émulation rendant tout jeu de résultats modifiable, si l’enregistrement est unique dans ce jeu de résultats. Cette implémentation, utilisant les signets (ie: bookmark), permet l’édition de jeu de résultats provenant de Requêtes Base, cela rend tout simplement les Requêtes LibreOffice Base éditables. Les requêtes joignant plusieurs tables ne sont pas encore supportées et je suis ouvert à toute proposition technique concernant une éventuelle implémentation.
- Afin de rendre modifiables les jeux de résultats retournés par le driver Trino et de précéder la demande d’amélioration #22408, une recherche de la clé primaire sera lancée afin de retrouver la première colonne, du jeu de résultats, ayant pas de doublons.
- Afin de contourner le dysfonctionnement #368 le driver HsqlDB utilise des mises à jour en mode SQL dans les jeux de résultats.
- De nombreuses corrections et améliorations…
Ce qui a été fait pour la version 1.4.1:
- Nouvelle implémentation, que j’espère définitive, des signets (bookmarks). Il est basé sur trois fichiers et est tiré de l’implémentation par Sun de
javax.sql.rowset.CachedRowSet
:
- Ces ResultSets sont capables d’éditer presque toutes les requêtes créées dans LibreOffice Base, même les vues… Mais afin de garantir une bonne fonctionnalité, certaines règles doivent être respectées afin de rendre un jeu de résultats éditable. Si la requête concerne plusieurs tables alors il est impératif d’inclure les clés primaires de chaque table dans la liste des colonnes du jeu de résultats. Si la requête ne concerne qu’une seule table alors le jeu de résultats sera modifiable s’il existe une colonne qui ne contient pas de doublon (ie: une clé naturelle). Cela permet de rendre modifiables les jeux de résultats provenant du pilote Trino.
- Suppression de l’utilisation de classes génériques là où elles n’étaient pas nécessaires. Cela a rendu le pilote plus rapide…
- Ajout de paramètres spéciaux dans: Edition -> Base de données -> Paramètres avancés… -> Paramètres spéciaux afin de répondre à la demande d’intégration du pilote Trino (voir demande d’amélioration n°8). Il est nécessaire de recréer les fichiers odb afin d’avoir accès à ces nouveaux paramètres.
Ce qui a été fait pour la version 1.4.2:
Ce qui a été fait pour la version 1.4.3:
- Mise à jour du paquet Python setuptools vers la version 73.0.1.
- La journalisation accessible dans les options de l’extension s’affiche désormais correctement sous Windows.
- Les options de l’extension sont désormais accessibles via: Outils -> Options -> LibreOffice Base -> Pilote JDBC
- Les modifications apportées aux options d’extension, qui nécessitent un redémarrage de LibreOffice, entraîneront l’affichage d’un message.
- Support de LibreOffice version 24.8.x.
Ce qui a été fait pour la version 1.4.4:
- Il est désormais possible d’insérer des données dans une table vide lors de l’utilisation d’un ResultSet
TYPE_FORWARD_ONLY
(ie: SQLite, Trino).
- Le bouton options est désormais accessible dans la liste des extensions installées obtenue par le menu : Outils -> Gestionnaire d’extensions…
- Les options de l’extension sont désormais accessibles via: Outils -> Options -> LibreOffice Base -> Pilote JDBC pur Java
- Les options de l’extension: Voir les tables système, Utiliser les signets et Forcer le mode SQL seront recherchées dans les informations fournies lors de la connexion et auront la priorité si elles sont présentes.
- Pilote Trino mis à jour vers la version 455.
Ce qui a été fait pour la version 1.4.5:
- Correction pour permettre à l’extension eMailerOOo de fonctionner correctement dans la version 1.2.5.
Ce qui a été fait pour la version 1.4.6:
- Modification de l’implémentation de l’interface UNO XPropertySet. Cette nouvelle implémentation assure l’unicité des Handle pour chaque propriété. Cette implémentation étant partagée avec l’extension vCardOOo, elle rend toutes les versions existantes de vCardOOo obsolètes. Elle est basée sur trois fichiers:
- Correction de problèmes dans l’implémentation des signets (bookmark). Ces modifications ont été testées plus particulièrement avec les pilotes HsqlDB 2.7.4 et Jaybird 5.0.6.
- Nouvelle implémentation des options de l’extension et plus particulièrement de l’onglet Options du pilote JDBC ce qui devrait permettre à terme la configuration à partir de zéro d’un pilote JDBC pour pouvoir fonctionner avec LibreOffice Base. L’opération de mise à jour de l’archive du pilote JDBC a été simplifiée. Elle prend en charge la mise à jour des pilotes qui nécessitent plusieurs archives jar pour fonctionner (ie: Derby, Jaybird 6.x). Cette nouvelle fenêtre qui semble assez simple, nécessite en réalité une gestion assez compliquée, n’hésitez donc pas à me signaler d’éventuels dysfonctionnements.
- De nombreuses autres améliorations.
Ce qui a été fait pour la version 1.5.0:
- Déploiement de l’enregistrement passif permettant une installation beaucoup plus rapide des extensions et de différencier les services UNO enregistrés de ceux fournis par une implémentation Java ou Python. Cet enregistrement passif est assuré par l’extension LOEclipse via les PR#152 et PR#157.
- Ajout de la prise en charge de l’instrumentation Java à LibreOffice avec Enhancement Request #165774 puis PR#183280. Cela permettra, à partir de LibreOffice 25.8.x, d’accéder à la journalisation pour tous les pilotes JDBC utilisant
java.lang.System.Logger
comme interface de journalisation. Cette nouvelle fonctionnalité peut être activée dans les options d’extension si la version de LibreOffice le permet. Le rétroportage vers LibreOffice 25.2.x m’a été refusé alors soyez patient.
- Toutes les commandes SQL, DDL ou DCL proviennent désormais du fichier de configuration du pilote JDBC Drivers.xcu. L’implémentation du traitement de ces commandes et de leurs paramètres a été regroupée dans le package io.github.prrvchr.driver.query.
- Compilation de toutes les archives Java contenues dans l’extension avec Java JDK version 17.
- Mise à jour de tous les pilotes JDBC intégrés, à l’exception de SQLite et Trino, vers leurs dernières versions respectives prenant en charge Java 17.
- Suppression de tous les fichiers idl definissant les structures suivantes: Date, DateTime, DateTimeWithTimezone, DateWithTimezone, Duration, Time et TimeWithTimezone. Ces fichiers étaient nécessaires à la compatibilité avec OpenOffice et sont désormais remplacés par les fichiers idl équivalents de l’API LibreOffice. Ce changement rend toutes les versions des extensions utilisant la version précédente de jdbcDriverOOo incompatibles.
- La gestion des utilisateurs, des rôles et des privilèges a été testée avec tous les pilotes intégrés à jdbcDriverOOo, à l’exception de SQLite et Trino.
- Il est désormais possible de créer le fichier oxt de l’extension jdbcDriverOOo uniquement avec Apache Ant et une copie du dépôt GitHub. La section Comment créer l’extension a été ajoutée à la documentation.
- Toute erreur survenant lors du chargement du pilote sera consignée dans le journal de l’extension si la journalisation a été préalablement activé. Cela facilite l’identification des problèmes d’installation sous Windows.
Que reste-t-il à faire pour la version 1.5.0: