Les méthodes « checkin » et « caisse » ont à voir avec la façon dont un référentiel JCR suit les versions de contenu. La méthode 'checkout' signale au référentiel que votre application cliente va (probablement) modifier un contenu versionnable. Les méthodes 'checkin' signalent au référentiel que votre application cliente a apporté des modifications au contenu versionnable et que le référentiel doit enregistrer ces modifications (par exemple, la nouvelle version) dans l'historique des versions. Par exemple, imaginons que nous voulons créer un noeud '/ a/b/c' qui soit versionnable. Pour créer du contenu, il vous suffit de définir le mixin 'mix: versionable' (ou d'utiliser un type de nœud mixin ou primaire héritant de 'mix: versionable') sur un nœud et puis sauvegardez vos modifications. À ce stade, le référentiel initialise l'historique des versions de ce nœud (ou sous-graphe).
Node b = session.getNode("https://stackoverflow.com/a/b");
Node newNode = b.addNode("c");
newNode.addMixin("mix:versionable");
// set other properties and create children
session.save();
A 'session.save()', le dépôt noteront le 'mélange: versionnable' mixin et initialise l'historique de version pour le contenu à '/ a/b/c. À partir de ce moment, votre application client utilise 'checkout' et 'checkin' pour ajouter de nouvelles versions à l'historique.
VersionManager vm = session.getWorkspace().getVersionManager();
vm.checkout("https://stackoverflow.com/a/b/c");
// make some changes at/under '/a/b/c'
session.save();
// Can make more changes and save, if desired
vm.checkin("https://stackoverflow.com/a/b/c");
Quand « checkin » est appelé, le dépôt prendra l'état actuel de «/a/b/c » et ajoutera à l'historique des versions. Bien sûr, ce processus est répété chaque fois que vous souhaitez apporter des modifications aux nœuds versionnables.
Est-ce que 'vm.checkout' crée l'historique des versions de ce nœud uniquement ou récursivement dans le cas où ce nœud a des enfants? – Emerald214