Vanaf release 27.0 leest Invantive UniversalSQL databasedefinities uit settings*.json in plaats van settings*.xml. Bestaande XML-bestanden worden automatisch gemigreerd.
Ondersteuning voor het XML-formaat is niet langer beschikbaar vanaf Invantive UniversalSQL release 28.0 (gepland voor release rond begin 2028).
Waarom
Het XML-formaat dateert uit 2009 en heeft twee problemen die door een formaatwijziging worden opgelost.
- Tooling: het lezen of genereren van een instellingenbestand vereist XPath en/of XSLT. Echter, de meeste talen parseren JSON zonder extra bibliotheken. Het genereren van een instellingenbestand per klant of per omgeving wordt meer een tekstsjabloonexercise dan een XML.
- Verouderde elementen: het XML-formaat bevat veel geschiedenis over de databaseconnectiviteitsconcepten. Veel elementen worden niet langer ondersteund of zijn niet langer relevant. Het JSON-formaat maakt gebruik van de huidige concepten, dus wat je leest is wat de term betekent.
Formaat
Het settings*.json-formaat lijkt sterk op het XML-formaat. De belangrijkste wijzigingen zijn:
<connection>wordt “database” (enkelvoud) of “databases” (meervoud) genoemd.<database>wordt “dataContainer” (enkelvoud) of “dataContainers” (meervoud) genoemd.
Bijvoorbeeld:
{ "version": "5"
, "groepen":
[ { "naam": "ACME"
, "sorteerVolgorde": 100
, "databases":
[ { "naam": "acme-eol"
, "korteOmschrijving": "Exact Online"
, "sorteerVolgorde": 10
, "authenticatie": "Default"
, "dataContainers":
[ { "type": "dataContainer"
, "provider": "ExactOnlineAll"
, "alias": "eol"
, "volgorde": 10
, "connectieString": "..."
}
]
}
]
}
]
}
Commentaren en staande komma’s worden getolereerd wanneer een bestand wordt gelezen. Commentaren en staande komma’s verdwijnen als een product het settings*json-bestand herschrijft.
Migratie
Er is moeite gedaan om de migratie zo eenvoudig mogelijk te maken.
De eerste keer dat een release 27.0 product een settings*.xml-bestand leest waarvoor geen gelijknamig .json-bestand bestaat, wordt dat functioneel identieke JSON-bestand ernaast aangemaakt. Het XML-bestand blijft ongewijzigd. Verouderde eigenschappen worden genegeerd.
Bestanden die door automatische ontdekking zijn geproduceerd (settings-discovery*.xml) worden nooit gemigreerd aangezien ze zijn gekoppeld aan een specifieke grote release.
Welk Formaat Wordt Gebruikt
| Release | Gedrag |
|---|---|
| 26.0 en eerder | settings*.xml wordt gebruikt; een settings*.json-bestand wordt genegeerd. |
| 26.1 (BETA van 27.0) | settings*.json wordt gebruikt; een gelijknamige settings*.xml wordt genegeerd en gebruikt om de JSON-variant aan te maken. |
| 27.0 | settings*.json wordt gebruikt; een gelijknamige settings*.xml wordt genegeerd en gebruikt om de JSON-variant aan te maken. |
| 28.0 | settings*.json wordt gebruikt; het XML-formaat wordt niet langer ondersteund of gebruikt om de JSON-variant aan te maken. |
Wanneer een omgeving alleen release 27.0 of nieuwer gebruikt, kunnen alle settings*.xml-bestanden veilig worden verwijderd wanneer het JSON-formaatbestand bestaat.