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.
Einen umfassenden Überblick über die Konzepte und die Struktur des Filevault-Tools finden Sie auf der Seite Überblick über Filevault and Vault FS 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 ist 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 FileVault-Archivdatei aus dem Maven-Artefakt-Repository.
Die Quelle des VLT-Tools ist auf GitHub verfügbar.
Fügen Sie <archive-dir>/vault-cli-<version>/bin
in Ihrer Umgebung PATH
hinzu, sodass die Befehlsdateien vlt
oder vlt.bat
entsprechend aufgerufen werden können. Beispiel:
<aem-installation-dir>/crx-quickstart/opt/helpers/vault-cli-3.1.16/bin>
Öffnen Sie eine Befehlszeilen-Shell und führen Sie vlt --help
aus. Stellen Sie sicher, dass die Ausgabe dem folgenden Hilfebildschirm ähnelt:
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
Nachdem Sie es installiert haben, müssen Sie global ignorierte Subversion-Dateien aktualisieren. Bearbeiten Sie Ihre SVN-Einstellungen und fügen Sie Folgendes hinzu:
[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
LF
Um zu gewährleisten, dass VLT- und SVN-Konfiguration übereinstimmen, sollten Sie die Eigenschaft svn:eol-style
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 Quell-Code-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:
Klicken Sie in der Befehlszeile 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 im Hauptverzeichnis in .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 Übermittlung der Änderungen übergeben 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 nur eine Unterstruktur des Repositorys überprüfen möchten, wie z. B. /apps/geometrixx
, können Sie dies tun, indem Sie Folgendes eingeben:
vlt co http://localhost:4502/crx/-/jcr:root/apps/geometrixx geo
Dadurch wird ein neuer Exportstamm geo
mit einem META-INF
- und jcr_root
-Verzeichnis erstellt und alle Dateien werden unter /apps/geometrixx
in geo/jcr_root
abgelegt.
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" />
<filter root="/apps/geometrixx"/>
</workspaceFilter>
Sie können Inhalte zwischen einem JCR-Repository und dem lokalen Dateisystem importieren und exportieren, ohne Steuerdateien zu verwenden.
So importieren bzw. exportieren Sie Inhalt ohne die Verwendung der .vlt
-Steuerung:
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-Fernsteuerungsoptionen |
--credentials <arg> |
Die zu verwendenden Standardanmeldedaten |
--config <arg> |
Die zu verwendende JcrFs-Konfiguration |
-v (--verbose) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
--version |
Druckt die Versionsinformationen und beendet VLT |
--log-level <level> |
Gibt die Protokollebene an, z. B. die Protokollebene log4j. |
-h (--help) <command> |
Druckt Hilfe für diesen bestimmten 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 aus einem JCR-Repository (Vault-Dateisystem) in das lokale Dateisystem ohne Kontrolldateien. | |
import |
Importiert ein lokales Dateisystem in ein JCR-Repository (Vault-Dateisystem). | |
checkout |
co |
Checkt ein Vault-Dateisystem aus. Verwenden Sie dies für ein Anfangs-JCR-Repository für das lokale Dateisystem. (Hinweis:Sie müssen zuerst das Repository in der Unterversion überprüfen.) |
analyze |
Analysiert Pakete. | |
status |
st |
Druckt den Status von Arbeitskopiedateien und Verzeichnissen. |
update |
up |
Importiert Änderungen aus dem Repository in die Arbeitskopie. |
info |
Zeigt Informationen über eine lokale Datei an. | |
commit |
ci |
Sendet Änderungen von Ihrer Arbeitskopie zum Repository. |
revert |
rev |
Stellt die Arbeitskopie-Datei in ihren ursprünglichen Zustand zurück und macht die meisten lokalen Änderungen rückgängig. |
resolved |
res |
Entfernt den Konfliktstatus in Arbeitskopie-Dateien oder Verzeichnissen. |
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 |
Stellt 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) |
ausführliche Ausgabe |
-t (--type) <arg> |
gibt den Exporttyp an, entweder Plattform oder JAR. |
-p (--prune-missing) |
gibt an, ob fehlende lokale Dateien gelöscht werden sollen |
<uri> |
Bereitstellungspunkt-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 einen <jcr-path>
als Importstamm angeben. Wenn --sync
angegeben wird, werden die importierten Dateien automatisch unter Vault-Kontrolle gestellt.
import -v|-s <uri> <local-path> <jcr-path>
-v (--verbose) |
ausführliche Ausgabe |
-s (-- sync) |
Stellt die lokalen Dateien unter Vault-Kontrolle |
<uri> |
Bereitstellungspunkt-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, dass beim Auschecken lokale Dateien überschrieben werden, sofern sie bereits vorhanden sind |
-v (--verbose) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-f (--filter) <file> |
gibt automatische Filter an, wenn keine definiert ist |
<uri> |
Bereitstellungspunkt-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> |
Druckformat für Hotfix-Links (name,id), z. B. `[CQ520_HF_%s |
-v (--verbose) |
ausführliche 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 gegen die Remote-Version geprüft. Der zweite Buchstabe gibt dann an, welche Aktion von einer Aktualisierungsoperation ausgeführt würde.
status -v|-q|-u|-N <file1> [<file2> ...]
-v (--verbose) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-u (--show-update) |
zeigt Aktualisierungsinformationen an |
-N (--non-recursive) |
wird nur in einem Verzeichnis ausgeführt |
<file> [<file> ...] |
Datei oder Verzeichnis zur Statusanzeige |
Kopiert Änderungen aus dem Repository in die Arbeitskopie.
update -v|-q|--force|-N <file1> [<file2> ...]
-v (--verbose) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
--force |
erzwingt das Überschreiben lokaler Dateien |
-N (--non-recursive) |
wird nur in einem Verzeichnis ausgeführt |
<file> [<file> ...] |
zu aktualisierende Datei oder Verzeichnis |
Zeigt Informationen über eine lokale Datei an.
info -v|-q|-R <file1> [<file2> ...]
-v (--verbose) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
wird rekursiv ausgeführt |
<file> [<file> ...] |
Datei oder Verzeichnis, für die/das Informationen angezeigt werden sollen |
Sendet Änderungen von Ihrer Arbeitskopie zum Repository.
commit -v|-q|--force|-N <file1> [<file2> ...]
-v (--verbose) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
--force |
erzwingt die Übergabe, auch wenn die Remote-Kopie geändert wird |
-N (--non-recursive) |
wird nur in einem Verzeichnis ausgeführt |
<file> [<file> ...] |
zu übergebende Datei oder Verzeichnis |
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) |
rekursiv absteigend |
<file> [<file> ...] |
zu übergebende Datei oder Verzeichnis |
Entfernt den Konfliktstatus in Arbeitskopie-Dateien oder Verzeichnissen.
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) |
rekursiv absteigend |
--force |
löst auf, auch wenn Konfliktmarkierungen vorhanden sind |
<file> [<file> ...] |
Datei oder Verzeichnis, die/das aufgelöst werden soll |
Druckt den Wert einer Eigenschaft von Dateien oder Verzeichnissen.
propget -q|-R <propname> <file1> [<file2> ...]
-q (--quiet) |
druckt so wenig wie möglich |
-R (--recursive) |
rekursiv absteigend |
<propname> |
der Eigenschaftsname |
<file> [<file> ...] |
Datei oder Verzeichnis, aus der/dem 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) |
rekursiv absteigend |
<file> [<file> ...] |
Datei oder Verzeichnis, aus der/dem die Eigenschaften aufgelistet werden sollen |
Legt den Wert einer Eigenschaft in Dateien oder Verzeichnissen fest.
VLT erkennt die folgenden speziellen versionierten Eigenschaften:
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) |
rekursiv absteigend |
<propname> |
der Eigenschaftsname |
<propval> |
der Eigenschaftswert |
<file> [<file> ...] |
Datei oder Verzeichnis, auf das die Eigenschaft festgelegt werden soll |
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) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
-N (--non-recursive) |
wird nur in einem Verzeichnis ausgeführt |
--force |
erzwingt die Ausführung des Vorgangs |
<file> [<file> ...] |
lokale Datei oder Verzeichnis, die/das hinzugefügt werden soll |
Entfernt Dateien und Verzeichnisse aus der Versionskontrolle.
delete -v|-q|--force <file1> [<file2> ...]
-v (--verbose) |
ausführliche Ausgabe |
-q (--quiet) |
druckt so wenig wie möglich |
--force |
erzwingt die Ausführung des Vorgangs |
<file> [<file> ...] |
zu löschende lokale Datei oder Verzeichnis |
Zeigt die Unterschiede zwischen zwei Pfaden an.
diff -N <file1> [<file2> ...]
-N (--non-recursive) |
wird nur in einem Verzeichnis ausgeführt |
<file> [<file> ...] |
Datei oder Verzeichnis, deren Unterschiede angezeigt werden sollen |
Führt eine interaktive Konsole aus.
console -F <file>
-F (--console-settings) <file> |
gibt die Datei mit den Konsoleneinstellungen an. Die Standarddatei ist console.properties. |
Kopiert einen Knotenbaum von einem Remote-Repository in ein anderes. <src>
zeigt auf den Quellknoten und <dst>
gibt den Zielpfad an, in dem 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) |
Rekursiv absteigend. |
-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) |
Überschreiben/Löschen vorhandener Knoten. |
-n (--newer) |
Beachten von lastModified-Eigenschaften zur Aktualisierung. |
-e (--exclude) <arg> [<arg> ...] |
Reguläre Ausdrücke ausgeschlossener Quellpfade. |
<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
Vor den <src>
- und <dst>
-Argumenten muss auf die--exclude
-Optionen eine andere Option 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) |
ausführliche Ausgabe. |
--force |
erzwingt die Ausführung bestimmter Befehle. |
-u (--uri) <uri> |
gibt den URI des Synchronisierungs-Hosts an. |
<command> |
auszuführender Synchronisierungsbefehl. |
<localPath> |
lokaler Ordner, der synchronisiert werden soll. |
Die Status-Codes, 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 unter /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 Services 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 Auscheckens beschrieben.
Die Datei .vlt-sync-config.properties
ermöglicht es Ihnen, die folgenden Eigenschaften zu konfigurieren:
Deaktiviert Schaltet die Synchronisierung ein oder aus. Standardmäßig ist dieser Parameter auf false gesetzt, um die Synchronisierung zu ermöglichen.
Einmalige Synchronisation Wenn nicht leer, synchronisiert der folgende Scan den Ordner in der angegebenen Richtung und 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.Synchronisierungsprotokoll Definiert den Dateinamen des Protokolls. 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 versteckte Datei .vlt-sync-config.properties
und konfigurieren Sie die Synchronisierung, um den Inhalt Ihres Repository 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 zu sehen:
***
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.