Il 'check-in' e metodi 'Cassa' hanno a che fare con il modo in un repository JCR tiene traccia delle versioni di contenuti. Il metodo 'checkout' segnala al repository che (probabilmente) l'applicazione client modificherà alcuni contenuti versionabili. I metodi 'checkin' segnalano al repository che l'applicazione client ha apportato modifiche al contenuto versionable e che il repository deve registrare tali modifiche (ad es. La nuova versione) nella cronologia delle versioni.
Ad esempio, immaginiamo di voler creare un nodo in "/ a/b/c" che è versionabile. Questo viene fatto usando qualcosa come il seguente codice:
Per creare il contenuto, è sufficiente impostare il mixin "mix: versionable" (o utilizzare un mixin o un tipo di nodo primario che eredita da "mix: versionable") su un nodo e quindi salva le tue modifiche. A quel punto, il repository inizializzerà la cronologia delle versioni per quel nodo (o sottografo).
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();
Upon 'session.save()', il repository si nota il 'mix: versionable' mixin e inizializzare la cronologia delle versioni per il contenuto in '/ a/b/c'. Da questo momento in poi, l'applicazione client utilizza 'checkout' e 'checkin' per aggiungere nuove versioni alla cronologia.
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");
Quando 'check-in' che viene chiamato, il repository avrà lo stato attuale della '/ a/b/c' e lo aggiungeremo la cronologia delle versioni. Ovviamente, questo processo viene ripetuto ogni volta che si desidera apportare modifiche ai nodi versionable.
fonte
2010-10-18 16:09:54
Does 'vm.checkout' crea la cronologia delle versioni di quello solo nodo o ricorsivo nel caso in cui il nodo abbia figli? – Emerald214