Das Jackrabbit FileVault Tool (VLT) ist ein von The Apache Foundation entwickeltes Tool, das den Inhalt einer Jackrabbit/AEM-Instanz Ihrem Dateisystem zuordnet. Das VLT-Tool hat ähnliche Funktionen wie der Quellkontrollsystem-Client (z. B. ein Subversion (SVN)-Client) und bietet normale Eincheck-, Auscheck- und Verwaltungsvorgänge sowie Konfigurationsoptionen für die flexible Darstellung des Projektinhalts.
Sie führen das VLT-Tool von der Befehlszeile aus. In diesem Dokument wird beschrieben, wie Sie das Tool verwenden, einschließlich der ersten Schritte und der Hilfe sowie einer Liste aller Befehle und verfügbaren Optionen.
Eine ausführliche Übersicht über die Konzepte und die Struktur des Filevault-Werkzeugs finden Sie auf den Seiten Filevault-Übersicht und Vault FS in der offiziellen Apache Jackrabbit Filevault-Dokumentation.
Um VLT verwenden zu können, müssen Sie folgende Schritte ausführen:
Um das VLT-Tool zu verwenden, müssen Sie zunächst das Programm installieren. Es wird nicht standardmäßig installiert, da es sich um ein zusätzliches Tool handelt. Außerdem müssen Sie die Umgebungsvariable Ihres Systems festlegen.
Laden Sie die Archivdatei FileVault aus dem Archiv Maven Artefaktrepository herunter.
Die Quelle des VLT-Tools ist auf GitHub verfügbar.
Entpacken Sie das Archiv.
hinzufügen <archive-dir>/vault-cli-<version>/bin
auf Ihre Umgebung PATH
, damit die Befehlsdateien vlt
oder vlt.bat
entsprechend aufgerufen werden. Beispiel:
<aem-installation-dir>/crx-quickstart/opt/helpers/vault-cli-3.1.16/bin>
Öffnen Sie eine BefehlszeilenShell und führen Sie vlt --help
aus. Stellen Sie sicher, dass die Ausgabe dem folgenden Hilfebildschirm ähnelt:
vlt --help
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Global options:
-Xjcrlog <arg> Extended JcrLog options (omit argument for help)
-Xdavex <arg> Extended JCR remoting options (omit argument for help)
--credentials <arg> The default credentials to use
--update-credentials if present the credentials-to-host list is updated in the ~/.vault/auth.xml
--config <arg> The JcrFs config to use
-v (--verbose) verbose output
-q (--quiet) print as little as possible
--version print the version information and exit
--log-level <level> the log4j log level
-h (--help) <command> print this help
Nachdem Sie es installiert haben, müssen Sie global ignorierte Subversion-Dateien aktualisieren. Bearbeiten Sie Ihre SVN-Einstellungen und fügen Sie Folgendes hinzu:
```xml
[miscellany]
### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
global-ignores = .vlt
VLT handhabt Zeilenende (End Of Line - EOF) gemäß der folgenden Regeln automatisch:
CRLF
LF
ausgecheckt wurdenLF
Um sicherzustellen, dass VLT- und SVN-Konfigurationsübereinstimmung vorliegen, sollten Sie die svn:eol-style
-Eigenschaft für die Erweiterung der im Repository gespeicherten Dateien auf native
festlegen. Bearbeiten Sie Ihre SVN-Einstellungen und fügen Sie Folgendes hinzu:
[auto-props]
*.css = svn:eol-style=native
*.cnd = svn:eol-style=native
*.java = svn:eol-style=native
*.js = svn:eol-style=native
*.json = svn:eol-style=native
*.xjson = svn:eol-style=native
*.jsp = svn:eol-style=native
*.txt = svn:eol-style=native
*.html = svn:eol-style=native
*.xml = svn:eol-style=native
*.properties = svn:eol-style=native
Überprüfen Sie das Repository mithilfe des Quellcode-Verwaltungssystems. Im SVN geben Sie beispielsweise Folgendes ein (ersetzen Sie den URI und den Pfad mit Ihrem Repository):
svn co https://svn.server.com/repos/myproject
Sie müssen filevault mit dem Repository synchronisieren. Gehen Sie hierfür wie folgt vor:
Navigieren Sie in der Befehlszeile zu content/jcr_root
.
Überprüfen Sie das Repository, indem Sie Folgendes eingeben (ersetzen Sie Ihre Portnummer mit 4502 und Ihre admin-Passwörter):
vlt --credentials admin:admin co --force http://localhost:4502/crx
Die Anmeldedaten müssen nur einmal nach dem ersten Auschecken angegeben werden. Sie werden dann in Ihrem Stammverzeichnis unter .vault/auth.xml
gespeichert.
Nachdem Sie das Repository überprüft und synchronisiert haben, sollten Sie testen, ob alles ordnungsgemäß funktioniert. Eine einfache Möglichkeit, dies zu tun, ist eine .jsp-Datei zu bearbeiten und zu sehen, ob Ihre Änderungen nach Übermittelung der Änderungen übernommen wurden.
So testen Sie die Synchronisierung:
.../jcr_content/libs/foundation/components/text
.text.jsp
.vlt st
eingebenvlt diff text.jsp
eingebenvlt ci test.jsp
.Nach der Installation des VLT-Tools können Sie die Hilfedatei über die Befehlszeile aufrufen:
vlt --help
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---
Jackrabbit FileVault [version 3.1.16] Copyright 2013 by Apache Software Foundation. See LICENSE.txt for more information.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---
Usage:
vlt [options] <command> [arg1 [arg2 [arg3] ..]]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---
Global options:
-Xjcrlog <arg> Extended JcrLog options (omit argument for help)
-Xdavex <arg> Extended JCR remoting options (omit argument for help)
--credentials <arg> The default credentials to use
--update-credentials if present the credentials-to-host list is updated in the ~/.vault/auth.xml
--config <arg> The JcrFs config to use
-v (--verbose) verbose output
-q (--quiet) print as little as possible
--version print the version information and exit
--log-level <level> the log4j log level
-h (--help) <command> print this help
Commands:
export Export the Vault filesystem
import Import a Vault filesystem
checkout (co) Checkout a Vault file system
status (st) Print the status of working copy files and directories.
update (up) Bring changes from the repository into the working copy.
info Displays information about a local file.
commit (ci) Send changes from your working copy to the repository.
revert (rev) Restore pristine working copy file (undo most local edits).
resolved (res) Remove 'conflicted' state on working copy files or directories.
propget (pg) Print the value of a property on files or directories.
proplist (pl) Print the properties on files or directories.
propset (ps) Set the value of a property on files or directories.
add Put files and directories under version control.
delete (del,rm) Remove files and directories from version control.
diff (di) Display the differences between two paths.
rcp Remote copy of repository content.
sync Control vault sync service
console Run an interactive console
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---
Um Hilfe für einen bestimmten Befehl zu erhalten, geben Sie den Hilfe-Befehl ein, gefolgt vom Namen des Befehls ein. Beispiel:
vlt --help export
Usage:
export -v|-t <arg>|-p <uri> <jcr-path> <local-path>
Description:
Export the Vault filesystem mounted at <uri> to the local filesystem at <local-path>. An optional <jcr-path> can be specified in order to export just a sub tree.
Example:
vlt export http://localhost:4502/crx /apps/geometrixx myproject
Options:
-v (--verbose) verbose output
-t (--type) <arg> specifies the export type. either 'platform' or 'jar'.
-p (--prune-missing) specifies if missing local files should be deleted.
<uri> mountpoint uri
<jcr-path> the jcr path
<local-path> the local path
Die Folgenden finden Sie einige allgemeine Aufgaben, die in VLT ausgeführt werden. Ausführliche Informationen zu den einzelnen Befehlen finden Sie unter den einzelnen Befehlen.
Wenn Sie beispielsweise nur einen Unterbaum des Repositorys (z. B. /apps/geometrixx
) auschecken möchten, geben Sie dazu Folgendes ein:
vlt co http://localhost:4502/crx/-/jcr:root/apps/geometrixx geo
Dadurch wird ein neuer Exportstamm geo
mit einem Ordner META-INF
und jcr_root
erstellt und alle Dateien unterhalb von /apps/geometrixx
in geo/jcr_root
platziert.
Wenn Sie über einen vorhandenen Arbeitsbereichsfilter verfügen und diesen zum Auschecken verwenden möchten, können Sie entweder zuerst das Verzeichnis META-INF/vault
erstellen und den Filter dort platzieren oder ihn in der Befehlszeile wie folgt angeben:
$ vlt co --filter filter.xml http://localhost:4502/crx/-/jcr:root geo
Ein Beispielfilter:
<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
<filter root="/etc/designs/geometrixx?lang=de" />
<filter root="/apps/geometrixx?lang=de"/>
</workspaceFilter>
Sie können Inhalte zwischen einem JCR-Repository und dem lokalen Dateisystem importieren und exportieren, ohne Steuerdateien zu verwenden.
So importieren und exportieren Sie Inhalte ohne Verwendung des Steuerelements .vlt
Richten Sie zunächst das Repository ein:
$ cd /projects
$ svn mkdir https://svn.server.com/repos/myproject
$ svn co https://svn.server.com/repos/myproject
$ vlt export -v http://localhost:4502/crx /apps/geometrixx geometrixx
$ cd geometrixx/
$ svn add META-INF/ jcr_root/
$ svn ci
Ändern Sie die Remote-Kopie und aktualisieren Sie JCR:
$ cd /projects/geometrixx
$ vlt -v import http://localhost:4502/crx . /
Ändern Sie die Remote-Kopie und aktualisieren Sie den Dateiserver:
$ cd /projects/geometrixx
$ vlt export -v http://localhost:4502/crx /apps/geometrixx .
$ svn st
M META-INF/vault/properties.xml
M jcr_root/apps/geometrixx/components/contentpage/.content.xml
$ svn ci
Um Befehle in VLT abzusetzen, geben Sie Folgendes in der Befehlszeile ein:
vlt [options] <command> [arg1 [arg2 [arg3] ..]]
Optionen und Befehle werden im Detail in den folgenden Abschnitten beschrieben.
Im Folgenden finden Sie eine Liste mit VLT-Optionen, die für alle Befehle verfügbar sind. Informationen zu weiteren verfügbaren Optionen finden Sie in den einzelnen Befehlen.
Option | Beschreibung |
-Xjcrlog <arg> |
Erweiterte JCRlog-Optionen |
-Xdavex <arg> |
Erweiterte JCR-Entfernungsoptionen |
--credentials <arg> |
Die zu verwendenden Standardberechtigungen |
--config <arg> |
Die zu verwendende JcrFs-Konfiguration |
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
so wenig wie möglich drucken |
--version |
Druckt die Versionsinformationen und verlässt VLT |
--log-level <level> |
Gibt die Protokollebene an, z. B. die Protokollebene log4j. |
-h (--help) <command> |
Druckt Hilfe für diesen Befehl |
Die folgende Tabelle beschreibt alle verfügbaren VLT-Befehle. Detaillierte Informationen zu Syntax, verfügbaren Optionen und Beispielen finden Sie in den einzelnen Befehlen.
Befehl | Abgekürzter Befehl | Beschreibung |
export |
Exportiert von einem JCR-Repository (Standarddateisystem) in das lokale Dateisystem ohne Steuerungsdateien. | |
import |
Importiert ein lokales Dateisystem in ein JCR-Repository (Standarddateisystem). | |
checkout |
co |
Prüft ein Vault-Dateisystem. Verwenden Sie dies für ein Anfangs-JCR-Repository für das lokale Dateisystem. (Hinweis: Zunächst müssen Sie das Repository in Subversion auschecken.) |
analyze |
Analysiert Pakete. | |
status |
st |
Druckt den Status von Arbeitskopiedateien und Verzeichnissen. |
update |
up |
Importiert Änderungen vom Repository in die Arbeitskopie. |
info |
Zeigt Informationen über eine lokale Datei an. | |
commit |
ci |
Sendet Änderungen von Ihrer Arbeitskopie zum Repository. |
revert |
rev |
Stellt den Originalzustand der Arbeitskopiedatei wieder her und macht die meisten lokalen Änderungen rückgängig. |
resolved |
res |
Entfernt den Status "Konflikt"bei Dateien oder Ordnern mit Arbeitskopien. |
propget |
pg |
Druckt den Wert einer Eigenschaft auf Dateien oder Verzeichnisse. |
proplist |
pl |
Druckt die Eigenschaften von Dateien oder Verzeichnissen. |
propset |
ps |
Legt den Wert einer Eigenschaft in Dateien oder Verzeichnissen fest. |
add |
Legt Dateien und Ordner unter Versionskontrolle. | |
delete |
del oder rm |
Entfernt Dateien und Verzeichnisse aus der Versionskontrolle. |
diff |
di |
Zeigt die Unterschiede zwischen zwei Pfaden an. |
console |
Führt eine interaktive Konsole aus. | |
rcp |
Kopiert einen Knotenbaum von einem Remote-Repository in ein anderes. | |
sync |
Ermöglicht die Steuerung des Vault-Synchronisierungsdiensts. |
Exportiert das unter <uri> bereitgestellte Vault-Dateisystem in das lokale Dateisystem unter <local-path>. Ein optionaler <jcr-path> kann angegeben werden, um nur eine Unterstruktur zu exportieren.
export -v|-t <arg>|-p <uri> <jcr-path> <local-path>
-v (--verbose) |
verbose Ausgabe |
-t (--type) <arg> |
gibt den Exporttyp entweder Plattform oder JAR an. |
-p (--prune-missing) |
gibt an, ob fehlende lokale Dateien gelöscht werden sollen |
<uri> |
Mountpoint uri |
<jcrPath> |
JCR-Pfad |
<localPath> |
lokaler Pfad |
vlt export http://localhost:4502/crx /apps/geometrixx myproject
Importiert das lokale Dateisystem (beginnend bei <local-path>
in das Vault-Dateisystem unter <uri>
. Sie können ein <jcr-path>
als Importstamm angeben. Wenn --sync
angegeben ist, werden die importierten Dateien automatisch der Vault-Kontrolle unterworfen.
import -v|-s <uri> <local-path> <jcr-path>
-v (--verbose) |
verbose Ausgabe |
-s (-- sync) |
legt die lokalen Dateien unter die Standardkontrolle |
<uri> |
Mountpoint uri |
<jcrPath> |
JCR-Pfad |
<localPath> |
lokaler Pfad |
vlt import http://localhost:4502/crx . /
Führt ein erstes Auschecken von einem JCR-Repository zum lokalen Dateisystem durch, beginnend bei <uri> zum lokalen Dateisystem unter <local-path>. Sie können auch ein <jcrPath>-Argument hinzufügen, um ein Unterverzeichnis der Remote-Struktur zu überprüfen. Arbeitsplatzfilter können angegeben werden, die in das META-INF Verzeichnis kopiert werden.
checkout --force|-v|-q|-f <file> <uri> <jcrPath> <localPath>
--force |
erzwingt das Checkout, lokale Dateien zu überschreiben, wenn sie bereits vorhanden sind |
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-f (--filter) <file> |
gibt automatische Filter an, wenn keine definiert ist |
<uri> |
Mountpoint uri |
<jcrPath> |
(optional) Remote-Pfad |
<localPath> |
(optional) lokaler Pfad |
Verwenden von JCR-Remoting:
vlt --credentials admin:admin co http://localhost:8080/crx/server/crx.default/jcr_root/
Mit dem Standardarbeitsbereich:
vlt --credentials admin:admin co http://localhost:8080/crx/server/-/jcr_root/
Wenn der URI unvollständig ist, wird er erweitert:
vlt --credentials admin:admin co http://localhost:8080/crx
Analysiert Pakete.
analyze -l <format>|-v|-q <localPaths1> [<localPaths2> ...]
-l (--linkFormat) <format> |
printf-Format für Hotfix-Links (name,id), z. B. [CQ520_HF_%s|%s] |
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
<localPaths> [<localPaths> ...] |
lokaler Pfad |
Druckt den Status von Arbeitskopiedateien und Verzeichnissen.
Wenn --show-update
angegeben ist, wird jede Datei mit der Remote-Version verglichen. Der zweite Brief gibt dann an, welche Aktion von einem Aktualisierungsvorgang ausgeführt wird.
status -v|-q|-u|-N <file1> [<file2> ...]
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-u (--show-update) |
zeigt Aktualisierungsinformationen an |
-N (--non-recursive) |
auf einem einzelnen Verzeichnis ausgeführt wird |
<file> [<file> ...] |
Datei oder Verzeichnis zur Anzeige des Status |
Kopiert Änderungen aus dem Repository in die Arbeitskopie.
update -v|-q|--force|-N <file1> [<file2> ...]
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
--force |
erzwingt das Überschreiben lokaler Dateien |
-N (--non-recursive) |
auf einem einzelnen Verzeichnis ausgeführt wird |
<file> [<file> ...] |
zu aktualisierende Datei oder Verzeichnis |
Zeigt Informationen über eine lokale Datei an.
info -v|-q|-R <file1> [<file2> ...]
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
arbeitet rekursiv |
<file> [<file> ...] |
Datei oder Verzeichnis, in dem Informationen angezeigt werden |
Sendet Änderungen von Ihrer Arbeitskopie zum Repository.
commit -v|-q|--force|-N <file1> [<file2> ...]
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
--force |
erzwingt die Bindung, selbst wenn die Remote-Kopie geändert wird |
-N (--non-recursive) |
auf einem einzelnen Verzeichnis ausgeführt wird |
<file> [<file> ...] |
-Datei oder -Verzeichnis, die |
Stellt die Arbeitskopiedatei in den Originalzustand zurück und macht die meisten lokalen Änderungen rückgängig.
revert -q|-R <file1> [<file2> ...]
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
absteigend rekursiv |
<file> [<file> ...] |
-Datei oder -Verzeichnis, die |
Entfernt den Status konfliktbehaftet in Dateien oder Ordnern von Arbeitskopien.
Dieser Befehl löst Konflikte nicht semantisch auf und entfernt Konfliktmarker nicht. Es entfernt lediglich die Artefakte, die mit Konflikten zusammenhängen, und ermöglicht, dass PATH erneut bestätigt wird.
resolved -q|-R|--force <file1> [<file2> ...]
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
absteigend rekursiv |
--force |
löst, auch wenn es Konfliktmarkierungen gibt |
<file> [<file> ...] |
aufzulösende Datei oder Verzeichnis |
Druckt den Wert einer Eigenschaft auf Dateien oder Verzeichnisse.
propget -q|-R <propname> <file1> [<file2> ...]
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
absteigend rekursiv |
<propname> |
der Eigenschaftsname |
<file> [<file> ...] |
Datei oder Verzeichnis, aus der die Eigenschaft abgerufen werden soll |
Druckt die Eigenschaften von Dateien oder Verzeichnissen.
proplist -q|-R <file1> [<file2> ...]
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
absteigend rekursiv |
<file> [<file> ...] |
Datei oder Verzeichnis zur Liste der Eigenschaften |
Legt den Wert einer Eigenschaft in Dateien oder Verzeichnissen fest.
VLT erkennt die folgenden Eigenschaften der speziellen Version:
vlt:mime-type
Der mime-Typ der Datei. Wird verwendet, um festzustellen, ob die Datei zusammengeführt werden soll. Ein mime-Typ, der mit 'text/‘ beginnt (oder ein fehlender mimetype), wird als Text behandelt. Alles andere wird als binär behandelt.
propset -q|-R <propname> <propval> <file1> [<file2> ...]
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
absteigend rekursiv |
<propname> |
der Eigenschaftsname |
<propval> |
der Eigenschaftswert |
<file> [<file> ...] |
Datei oder Verzeichnis, um die Eigenschaft auf |
Stellt Dateien und Verzeichnisse unter Versionskontrolle und plant sie für das Hinzufügen zum Repository. Sie werden bei der nächsten Bestätigung hinzugefügt.
add -v|-q|-N|--force <file1> [<file2> ...]
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-N (--non-recursive) |
auf einem einzelnen Verzeichnis ausgeführt wird |
--force |
erzwingt die Durchführung der Operation |
<file> [<file> ...] |
hinzuzufügende lokale Datei oder Verzeichnis |
Entfernt Dateien und Verzeichnisse aus der Versionskontrolle.
delete -v|-q|--force <file1> [<file2> ...]
-v (--verbose) |
verbose Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
--force |
erzwingt die Durchführung der Operation |
<file> [<file> ...] |
zu löschende lokale Datei oder Verzeichnis |
Zeigt die Unterschiede zwischen zwei Pfaden an.
diff -N <file1> [<file2> ...]
-N (--non-recursive) |
auf einem einzelnen Verzeichnis ausgeführt wird |
<file> [<file> ...] |
Datei oder Verzeichnis, um die Unterschiede von |
Führt eine interaktive Konsole aus.
console -F <file>
-F (--console-settings) <file> |
gibt die Datei mit den Konsoleneinstellungen an. Die Standarddatei lautet console.properties. |
Kopiert einen Knotenbaum von einem Remote-Repository in ein anderes. <src>
verweist auf den Quellknoten und <dst>
gibt den Zielpfad an, wo der übergeordnete Knoten vorhanden sein muss. Rcp verarbeitet die Knoten durch Streaming der Daten.
rcp -q|-r|-b <size>|-t <seconds>|-u|-n|-e <arg1> [<arg2> ...] <src> <dst>
-q (--quiet) |
Druckt so wenig wie möglich. |
-r (--recursive) |
Verringert rekursiv. |
-b (--batchSize) <size> |
Anzahl der Knoten, die vor einer Zwischenspeicherung verarbeitet werden sollen. |
-t (--throttle) <seconds> |
Anzahl der Sekunden, die nach einer Zwischenspeicherung gewartet werden soll. |
-u (--update) |
Vorhandene Knoten überschreiben/löschen |
-n (--newer) |
Übernehmen Sie lastModified-Eigenschaften für die Aktualisierung. |
-e (--exclude) <arg> [<arg> ...] |
Entfernen von ausgeschlossenen Quellpfaden. |
<src> |
Die Repository-Adresse des Quellbaums. |
<dst> |
Die Repository-Adresse des Zielknotens. |
vlt rcp http://localhost:4502/crx/-/jcr:root/content https://admin:admin@localhost:4503/crx/-/jcr:root/content_copy
Auf die Optionen --exclude
muss eine weitere Option vor den Argumenten <src>
und <dst>
folgen. Beispiel:
vlt rcp -e ".*\.txt" -r
Ermöglicht die Steuerung des Vault-Synchronisierungsdiensts. Dieser Befehl versucht ohne Argumente, das aktuelle Arbeitsverzeichnis unter Sync-Kontrolle zu stellen. Wenn es innerhalb des vlt-Auscheckens ausgeführt wird, verwendet es den entsprechenden Filter und den Host, um die Synchronisierung zu konfigurieren. Wenn es außerhalb des vlt-Auscheckens ausgeführt wird, registriert es den aktuellen Ordner nur zur Synchronisierung, wenn das Verzeichnis leer ist.
sync -v|--force|-u <uri> <command> <localPath>
-v (--verbose) |
verbose Ausgabe. |
--force |
bestimmte Befehle erzwingen. |
-u (--uri) <uri> |
gibt den URI des Synchronisierungshosts an. |
<command> |
ausführen. |
<localPath> |
zu synchronisierender lokaler Ordner. |
Die Statuscodes, die durch VLT verwendet werden, sind:
Der Vault-Synchronisierungsdienst wird zum Synchronisieren des Repository-Inhalts mit einer lokalen Dateisystemdarstellung und umgekehrt verwendet. Dies wird durch die Installation eines OSGi-Dienstes erreicht, der auf Änderungen des Repositorys wartet und den Inhalt des Dateisystems regelmäßig überprüft. Es verwendet dasselbe Serialisierungsformat wie Vault zum Zuordnen des Repository-Inhalts zur Festplatte.
Der Vault-Synchronisierungsdienst ist ein Entwicklungstool und es wird dringend davon abgeraten, ihn in einem produktiven System zu verwenden. Beachten Sie außerdem, dass der Service nur mit dem lokalen Dateisystem synchronisiert und nicht für die Remote-Entwicklung verwendet werden kann.
Der Befehl vlt sync install
kann verwendet werden, um das Paket und die Konfiguration des Vault-Synchronisierungsdienstes automatisch zu installieren.
Das Bundle wird unter /libs/crx/vault/install
installiert und der config-Knoten wird unter /libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl
erstellt. Zunächst wird der Dienst aktiviert, aber es werden keine Synchronisierungsstämme konfiguriert.
Im folgenden Beispiel wird der Synchronisierungsdienst für die CRX-Instanz installiert, auf die vom angegebenen URI zugegriffen werden kann.
$ vlt --credentials admin:admin sync --uri http://localhost:4502/crx install
Der Befehl status
kann verwendet werden, um Informationen über den aktuellen Synchronisierungsdienst anzuzeigen. ``
$ vlt sync status --uri http://localhost:4502/crx
Connecting via JCR remoting to http://localhost:4502/crx/server
Listing sync status for http://localhost:4502/crx/server/-/jcr:root
- Sync service is enabled.
- No sync directories configured.
Der Befehl status
ruft keine Live-Daten vom Dienst ab, sondern liest die Konfiguration bei /libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl
.
Der Befehl register
wird verwendet, um einen Ordner zur Synchronisierung mit der Konfiguration hinzuzufügen.
$ vlt sync register
Connecting via JCR remoting to http://localhost:4502/crx/server
Added new sync directory: /tmp/workspace/vltsync/jcr_root
Der Befehl register
löst erst dann eine Synchronisierung aus, wenn Sie die Konfiguration sync-once
konfiguriert haben.
Der Befehl unregister
wird verwendet, um einen zu synchronisierenden Ordner aus der Konfiguration zu entfernen.
$ vlt sync unregister
Connecting via JCR remoting to http://localhost:4502/crx/server
Removed sync directory: /tmp/workspace/vltsync/jcr_root
Sie müssen die Registrierung eines Synchronisierungsordners aufheben, bevor Sie den Ordner selbst löschen.
Nachdem der Dienst ausgeführt wird, kann sie mit den folgenden Parametern konfiguriert werden:
vault.sync.syncroots
: Einer oder mehrere lokale Dateisystempfade, die die Synchronisierungsstämme definieren.
vault.sync.fscheckinterval
: Häufigkeit (in Sekunden), mit der das Dateisystem auf Änderungen überprüft werden soll. Standard ist 5 Sekunden.
vault.sync.enabled
: Allgemeine Markierung, die den Dienst aktiviert/deaktiviert.
Der Dienst kann mit der Web-Konsole oder einem sling:OsgiConfig
-Knoten (mit dem Namen com.day.jcr.sync.impl.VaultSyncServiceImpl
) im Repository konfiguriert werden.
In AEM können Sie die Konfigurationseinstellungen für solche Dienste auf unterschiedliche Weise vornehmen. Umfassende Informationen finden Sie unter Konfigurieren von OSGi.
Jeder Synchronisierungsordner speichert Konfiguration und Status in drei Dateien:
.vlt-sync-config.properties
: Konfigurationsdatei.
.vlt-sync.log
: Protokolldatei, die Informationen über die Vorgänge enthält, die beim Synchronisieren durchgeführt werden.
.vlt-sync-filter.xml
: filter, die definieren, welche Teile des Repositorys synchronisiert werden. Das Format dieser Datei wird im Abschnitt Durchführen eines gefilterten Kassengangs beschrieben.
Mit der Datei .vlt-sync-config.properties
können Sie die folgenden Eigenschaften konfigurieren:
disabledAktiviert oder deaktiviert die Synchronisierung. Standardmäßig ist dieser Parameter auf false gesetzt, um die Synchronisierung zu ermöglichen.
sync- onceWenn nicht leer die nächste Überprüfung wird den Ordner in der angegebenen Richtung synchronisieren, dann wird der Parameter gelöscht. Zwei Werte werden unterstützt:
JCR2FS
: exportiert alle Inhalte im JCR-Repository und schreibt auf die lokale Festplatte.FS2JCR
: Importiert den gesamten Inhalt von der Festplatte in das JCR-Repository.sync- logDefiniert den Protokolldateinamen. Standardmäßig ist der Wert .vlt-sync.log
Um eine Entwicklungsumgebung auf Basis eines Synchronisierungsordners einzurichten, gehen Sie wie folgt vor:
Checken Sie Ihr Repository mit der vlt-Befehlszeile aus:
$ vlt --credentials admin:admin co --force http://localhost:4502/crx dev
Sie können Filter verwenden, um nur die entsprechenden Pfade auszuchecken. Informationen finden Sie im Abschnitt Durchführen eines gefilterten Auscheckens.
Gehen Sie zum Stammordner Ihrer Arbeitskopie:
$ cd dev/jcr_root/
Installieren Sie den Synchronisierungsservice auf Ihrem Repository:
$ vlt sync install
Connecting via JCR remoting to http://localhost:4502/crx/server
Preparing to install vault-sync-2.4.24.jar...
Updated bundle: vault-sync-2.4.24.jar
Created new config at /libs/crx/vault/config/com.day.jcr.sync.impl.VaultSyncServiceImpl
Initialisieren Sie den Synchronisierungsservice:
$ vlt sync
Connecting via JCR remoting to http://localhost:4502/crx/server
Starting initialization of sync service in existing vlt checkout /Users/colligno/Applications/cq5/vltsync/sandbox/dev/jcr_root for http://localhost:4502/crx/server/-/jcr:root
Added new sync directory: /Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root
The directory /Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root is now enabled for syncing.
You might perform a 'sync-once' by setting the
appropriate flag in the /Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/.vlt-sync-config.properties file.
Bearbeiten Sie die ausgeblendete Datei .vlt-sync-config.properties
und konfigurieren Sie die Synchronisierung, um den Inhalt Ihres Repositorys zu synchronisieren:
sync-once=JCR2FS
Dieser Schritt lädt das gesamte Repository gemäß Ihrer Filterkonfiguration herunter.
Überprüfen Sie die Protokolldatei .vlt-sync.log
, um den Fortschritt anzuzeigen:
***
30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/
30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/core/
30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/core/product/
30.04.2017 14:39:10 A file:///Users/trushton/Applications/aem/vltsync/sandbox/dev/jcr_root/apps/geometrixx-outdoors/src/core/src/main/java/info/geometrixx/outdoors/core/product/GeoProduct.java
***
Ihr lokaler Ordner ist jetzt mit dem Repository synchronisiert. Die Synchronisierung erfolgt bidirektional, sodass Änderungen aus dem Repository auf Ihren lokalen Synchronisierungsordner und umgekehrt angewendet werden.
Die VLT -Synchronisierungsfunktion unterstützt nur einfache Dateien und Ordner, erkennt jedoch spezielle serialisierte Vault-Dateien (.content.xml, dialog.xml usw.) und ignoriert sie im Hintergrund. So ist es möglich, die Vault-Synchronisierung bei einem Standard-vlt-Auschecken zu verwenden.