How to Use the VLT Tool

L’outil Jackrabbit FileVault (VLT) est un outil développé par The Apache Foundation qui mappe le contenu d’une instance Jackrabbit/AEM à un système de fichiers. L’outil VLT propose des fonctions similaires à celles d’un client de système de gestion des versions du code source (par exemple, un client Subversion SVN) pour mettre en œuvre de simples opérations d’archivage, d’extraction et de gestion, ainsi que des options de configuration facilitant la représentation du contenu d’un projet.

L’outil VLT s’exécute à partir de la ligne de commande. Ce document explique comment utiliser l’outil, notamment le démarrer et obtenir de l’aide. Il décrit également toutes les commandes et options disponibles.

Concepts et architecture

Consultez la page Filevault Overview and Vault FS de la documentation officielle d' Apache Jackrabbit Filevault pour un aperçu complet des concepts et de la structure de l'outil Filevault.

Prise en main de VLT

Pour utiliser VLT, vous devez effectuer les opérations suivantes :

  1. Installer VLT, mettre à jour les variables d’environnement et mettre à jour les fichiers Subversion globaux ignorés.
  2. Configurer le référentiel AEM (si ce n’est pas déjà fait).
  3. Extraire le référentiel AEM.
  4. Synchroniser avec le référentiel.
  5. Vérifier si la synchronisation a fonctionné.

Installing the VLT Tool

Pour utiliser l’outil VLT, vous devez d’abord l’installer. Il n’est pas installé par défaut, car il s’agit d’un outil supplémentaire. En outre, vous devez définir la variable d’environnement de votre système.

  1. Téléchargez le fichier d'archive FileVault à partir du référentiel d'artefacts Maven.

    NOTE

    La source de l'outil VLT est disponible sur GitHub.

  2. Extrayez le fichier d’archives.

  3. Ajoutez <archive-dir>/vault-cli-<version>/bin à votre environnement PATH afin que les fichiers de commande vlt ou vlt.bat les fichiers de commande soient accessibles selon les besoins. Par exemple :

    <aem-installation-dir>/crx-quickstart/opt/helpers/vault-cli-3.1.16/bin>

  4. Open a command line shell and execute vlt --help. Assurez-vous que la sortie est similaire à l’écran d’aide suivant :

    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
    

Après l’avoir installé, vous devez mettre à jour les fichiers Subversion globaux ignorés. Modifiez vos paramètres svn et ajoutez les éléments suivants :

[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

Configuration du caractère de fin de ligne

VLT gère automatiquement la fin de ligne (EOL) selon les règles suivantes :

  • les lignes des fichiers extraits sous Windows se terminent par CRLF
  • lines of files checked out on Linux/Unix end with a LF
  • les lignes des fichiers validés dans le référentiel se terminent par LF

Pour garantir une comptabilité entre la configuration de VLT et de SVN, vous devez configurer la propriété svn:eol-style sur native pour l’extension des fichiers stockés dans le référentiel. Modifiez vos paramètres svn et ajoutez les éléments suivants :

[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

Checking Out the Repository

Extrayez le référentiel à l’aide du système de gestion des versions du code source. Dans svn, par exemple, saisissez ce qui suit (en remplaçant l’URI et le chemin par votre référentiel) :

svn co https://svn.server.com/repos/myproject

Synchronizing with the Repository

Vous devez synchroniser filevault avec le référentiel. Pour ce faire :

  1. In the command line, navigate to content/jcr_root.

  2. Extrayez le référentiel en tapant ce qui suit (en remplaçant votre numéro de port par 4502 et vos mots de passe administrateur) :

    vlt --credentials admin:admin co --force http://localhost:4502/crx
    
    NOTE

    Les informations d’identification doivent être spécifiées une seule fois lors de la première extraction. Elles sont ensuite stockées dans votre répertoire d’accueil dans le fichier .vault/auth.xml.

Testing Whether the Synchronization Worked

Après avoir extrait le référentiel et l’avoir synchronisé, vous devez vous assurer que tout fonctionne correctement. Un moyen simple de le faire consiste à modifier un fichier .jsp pour voir si les changements sont répercutés une fois validés.

Pour tester la synchronisation :

  1. Accéder à .../jcr_content/libs/foundation/components/text.
  2. Edit something in text.jsp.
  3. See the modified files by typing vlt st
  4. See the changes by typing vlt diff text.jsp
  5. Validez les modifications : vlt ci test.jsp.
  6. Rechargez une page contenant un composant Texte et déterminez si vos modifications ont bien été appliquées.

Accès à l’aide avec l’outil VLT

Après avoir installé l’outil VLT, vous pouvez accéder à son fichier d’aide à partir de la ligne de commande :

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
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Pour obtenir de l’aide sur une commande particulière, saisissez la commande d’aide suivie du nom de la commande. Par exemple :

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

Tâches courantes possibles dans VLT

Voici quelques tâches courantes effectuées dans VLT. Pour des informations détaillées sur chaque commande, reportez-vous à la description individuelle des commandes.

Checking Out a Subtree

If you only want to check out a subtree of the repository for example, /apps/geometrixx, you can do so by typing the following:

vlt co http://localhost:4502/crx/-/jcr:root/apps/geometrixx geo

Doing this creates a new export root geo with a META-INF and jcr_root directory and puts all files below /apps/geometrixx in geo/jcr_root.

Performing a Filtered Checkout

Si vous avez configuré un filtre d’espace de travail et que vous voulez l’utiliser pour l’extraction, il faut soit d’abord créer le répertoire META-INF/vault et y placer le filtre, soit le spécifier sur la ligne de commande comme suit :

$ vlt co --filter filter.xml http://localhost:4502/crx/-/jcr:root geo

Un exemple de filtre :

<?xml version="1.0" encoding="UTF-8"?>
<workspaceFilter version="1.0">
    <filter root="/etc/designs/geometrixx" />
    <filter root="/apps/geometrixx"/>
</workspaceFilter>

Using Import/Export Instead of .vlt Control

Vous pouvez importer et exporter du contenu entre un référentiel JCR et le système de fichiers local sans utiliser de fichiers de contrôle.

To import and export content without using .vlt control:

  1. Configurez d’abord le référentiel :

    $ 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
    
  2. Modifiez la copie distante et mettez à jour JCR :

    $ cd /projects/geometrixx
    $ vlt -v import http://localhost:4502/crx . /
    
  3. Modifiez la copie distante et mettez à jour le serveur de fichiers :

    $ 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
    

Utilisation de VLT

Pour exécuter des commandes dans VLT, saisissez ce qui suit sur la ligne de commande :

vlt [options] <command> [arg1 [arg2 [arg3] ..]]  

Les options et commandes sont décrites en détail dans les sections suivantes.

Options globales de VLT

Voici une liste des options VLT disponibles pour toutes les commandes. Reportez-vous à la description individuelle de chaque commande pour plus d’informations sur les autres options disponibles.

Option Description
-Xjcrlog <arg> Options JcrLog étendues
-Xdavex <arg> Options de suppression JCR étendues
--credentials <arg> Informations d’identification par défaut à utiliser
--config <arg> La configuration JcrFs à utiliser
-v (--verbose) sortie détaillée
-q (--quiet) imprimer aussi peu que possible
--version Imprime les informations de version et quitte le fichier VLT
--log-level <level> Indique le niveau de journal, par exemple, le niveau de journal log4j.
-h (--help) <command> Imprime l'aide pour cette commande particulière

Commandes VLT

Le tableau suivant décrit toutes les commandes VLT disponibles. Reportez-vous à la description individuelle de chaque commande pour plus d’informations sur la syntaxe, les options disponibles et des exemples.

Commande Commande abrégée Description
export Exporte d’un référentiel JCR (système de fichiers en chambre forte) vers le système de fichiers local sans fichiers de contrôle.
import Importe un système de fichiers local dans un référentiel JCR (système de fichiers en chambre forte).
checkout co Récupère un système de fichiers Vault. Utilisez cette option pour un référentiel JCR initial dans le système de fichiers local. (Remarque : Vous devez d'abord extraire le référentiel dans la subversion.)
analyze Analyse les modules.
status st Imprime l’état des fichiers et des répertoires de travail.
update up Importe les modifications du référentiel dans la copie de travail.
info Affiche des informations relatives à un fichier local.
commit ci Valide et envoie les modifications de votre copie de travail au référentiel.
revert rev Rétablit le fichier de la copie de travail à son état d’origine et annule la plupart des modifications locales.
resolved res Supprime un état conflictuel sur les fichiers ou répertoires de copie de travail.
propget pg Imprime la valeur d’une propriété dans des fichiers ou répertoires.
proplist pl Imprime les propriétés dans des fichiers ou répertoires.
propset ps Définit la valeur d’une propriété sur des fichiers ou répertoires.
add Place les fichiers et répertoires sous contrôle de version.
delete del ou rm Supprime les fichiers et les répertoires de la gestion des versions.
diff di Affiche les différences entre deux chemins.
console Exécute une console interactive.
rcp Copie une arborescence de nœuds entre deux référentiels distants.
sync Permet de contrôler le service de synchronisation Vault.

Export

Exporte le système de fichiers Vault monté sur <uri> vers le système de fichiers local sur <local-path>. Vous pouvez spécifier un <jcr-path> facultatif afin d’exporter uniquement une sous-arborescence.

Syntaxe

export -v|-t <arg>|-p <uri> <jcr-path> <local-path>

Options

-v (--verbose) sortie détaillée
-t (--type) <arg> spécifie le type d'exportation, plate-forme ou jar.
-p (--prune-missing) indique si les fichiers locaux manquants doivent être supprimés
<uri> uri point de montage
<jcrPath> Chemin JCR
<localPath> chemin local

Exemples

vlt export http://localhost:4502/crx /apps/geometrixx myproject

Import

Imports the local file system (starting at <local-path> to the vault file system at <uri>. You can specify a <jcr-path> as import root. If --sync is specified, the imported files are automatically put under vault control.

Syntaxe

import -v|-s <uri> <local-path> <jcr-path>

Options

-v (--verbose) sortie détaillée
-s (-- sync) place les fichiers locaux sous contrôle de sécurité
<uri> uri point de montage
<jcrPath> Chemin JCR
<localPath> chemin local

Exemples

vlt import http://localhost:4502/crx . /

Extraction (co)

Effectue une extraction initiale à partir d’un référentiel JCR en commençant par <uri> dans le système de fichiers local sur <local-path>. Vous pouvez également ajouter un argument <jcrPath> pour extraire un sous-répertoire de l’arborescence distante. Vous pouvez spécifier des filtres d’espace de travail copiés dans le répertoire META-INF.

Syntaxe

checkout --force|-v|-q|-f <file> <uri> <jcrPath> <localPath>  

Options

--force force l'extraction à remplacer les fichiers locaux s'ils existent déjà
-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
-f (--filter) <file> spécifie les filtres automatiques si aucun n'est défini
<uri> uri point de montage
<jcrPath> (facultatif) chemin distant
<localPath> (facultatif) chemin local

Exemples

Utilisation de JCR Remoting :

vlt --credentials admin:admin co http://localhost:8080/crx/server/crx.default/jcr_root/

Avec l’espace de travail par défaut :

vlt --credentials admin:admin co http://localhost:8080/crx/server/-/jcr_root/

Si l’URI est incomplet, il est développé :

vlt --credentials admin:admin co http://localhost:8080/crx

Analyze

Analyse les modules.

Syntaxe

analyze -l <format>|-v|-q <localPaths1> [<localPaths2> ...]

Options

-l (--linkFormat) <format> format printf pour les liens de correctifs (nom, id), par exemple [CQ520_HF_%s|%s]
-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
<localPaths> [<localPaths> ...] chemin local

État

Imprime l’état des fichiers et des répertoires de travail.

If --show-update is specified, each file is checked against the remote version. La deuxième lettre indique ensuite l’action qui sera exécutée par une opération de mise à jour.

Syntaxe

status -v|-q|-u|-N <file1> [<file2> ...]

Options

-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
-u (--show-update) affiche les informations de mise à jour
-N (--non-recursive) fonctionne sur un seul répertoire
<file> [<file> ...] fichier ou répertoire d’affichage de l’état

Mettre à jour

Copie les modifications du référentiel dans la copie de travail.

Syntaxe

update -v|-q|--force|-N <file1> [<file2> ...]

Options

-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
--force force le remplacement des fichiers locaux
-N (--non-recursive) fonctionne sur un seul répertoire
<file> [<file> ...] fichier ou répertoire à mettre à jour

Infos

Affiche des informations relatives à un fichier local.

Syntaxe

info -v|-q|-R <file1> [<file2> ...]

Options

-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
-R (--recursive) opère récursive
<file> [<file> ...] fichier ou répertoire dans lequel afficher les informations

Commit

Valide et envoie les modifications de votre copie de travail au référentiel.

Syntaxe

commit -v|-q|--force|-N <file1> [<file2> ...]

Options

-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
--force force la validation même si la copie distante est modifiée
-N (--non-recursive) fonctionne sur un seul répertoire
<file> [<file> ...] fichier ou répertoire à valider

Rétablir

Rétablit le fichier de la copie de travail à son état d’origine et annule la plupart des modifications locales.

Syntaxe

revert -q|-R <file1> [<file2> ...]

Options

-q (--quiet) imprime aussi peu que possible
-R (--recursive) descend de manière récursive
<file> [<file> ...] fichier ou répertoire à valider

Resolved

Removes conflicted state on working copy files or directories.

NOTE

Cette commande ne résout pas sémantiquement les conflits ni ne supprime les marqueurs de conflit. Elle supprime simplement les fichiers d’artefacts liés au conflit et permet à PATH d’être à nouveau validé.

Syntaxe

resolved -q|-R|--force <file1> [<file2> ...]  

Options

-q (--quiet) imprime aussi peu que possible
-R (--recursive) descend de manière récursive
--force résout, même s’il existe des marqueurs de conflit
<file> [<file> ...] fichier ou répertoire à résoudre

Propget

Imprime la valeur d’une propriété dans des fichiers ou répertoires.

Syntaxe

propget -q|-R <propname> <file1> [<file2> ...]

Options

-q (--quiet) imprime aussi peu que possible
-R (--recursive) descend de manière récursive
<propname> nom de la propriété
<file> [<file> ...] fichier ou répertoire à partir duquel obtenir la propriété

Proplist

Imprime les propriétés dans des fichiers ou répertoires.

Syntaxe

proplist -q|-R <file1> [<file2> ...]

Options

-q (--quiet) imprime aussi peu que possible
-R (--recursive) descend de manière récursive
<file> [<file> ...] pour liste des propriétés à partir du fichier ou du répertoire

Propset

Définit la valeur d’une propriété sur des fichiers ou répertoires.

NOTE

VLT reconnaît les propriétés de version spéciale suivantes :

vlt:mime-type

Le type MIME du fichier. Utilisé pour déterminer s’il faut fusionner le fichier. Un type MIME commençant par 'text/' (ou un type MIME absent) est traité comme du texte. Tout le reste est traité comme des données binaires.

Syntaxe

propset -q|-R <propname> <propval> <file1> [<file2> ...]

Options

-q (--quiet) imprime aussi peu que possible
-R (--recursive) descend de manière récursive
<propname> nom de la propriété
<propval> la valeur de propriété
<file> [<file> ...] fichier ou répertoire dans lequel définir la propriété

Ajoutez

Ajoute des fichiers et répertoires à la gestion de versions et programme leur ajout au référentiel. Ils seront ajoutés lors de la prochaine validation.

Syntaxe

add -v|-q|-N|--force <file1> [<file2> ...]

Options

-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
-N (--non-recursive) fonctionne sur un seul répertoire
--force force l’exécution de l’opération.
<file> [<file> ...] fichier ou répertoire local à ajouter

Supprimer

Supprime les fichiers et les répertoires de la gestion des versions.

Syntaxe

delete -v|-q|--force <file1> [<file2> ...]

Options

-v (--verbose) sortie détaillée
-q (--quiet) imprime aussi peu que possible
--force force l’exécution de l’opération.
<file> [<file> ...] fichier ou répertoire local à supprimer

Diff

Affiche les différences entre deux chemins.

Syntaxe

diff -N <file1> [<file2> ...]

Options

-N (--non-recursive) fonctionne sur un seul répertoire
<file> [<file> ...] pour afficher les différences

Console

Exécute une console interactive.

Syntaxe

console -F <file>

Options

-F (--console-settings) <file> spécifie le fichier de paramètres de la console. Le fichier par défaut est console.properties.

Rcp

Copie une arborescence de nœuds entre deux référentiels distants. <src> pointe vers le noeud source et <dst> spécifie le chemin de destination, où le noeud parent doit exister. Rcp traite les nœuds en diffusant les données en continu.

Syntaxe

rcp -q|-r|-b <size>|-t <seconds>|-u|-n|-e <arg1> [<arg2> ...] <src> <dst>

Options

-q (--quiet) Imprime le moins possible.
-r (--recursive) Descend récursivement.
-b (--batchSize) <size> Nombre de noeuds à traiter avant un enregistrement intermédiaire.
-t (--throttle) <seconds> Nombre de secondes d’attente après un enregistrement intermédiaire.
-u (--update) Remplacer/supprimer des noeuds existants.
-n (--newer) Respectez les propriétés lastModified pour la mise à jour.
-e (--exclude) <arg> [<arg> ...] Regexp des chemins source exclus.
<src> Adresse du référentiel de l'arborescence source.
<dst> Adresse du référentiel du noeud de destination.

Exemples

vlt rcp http://localhost:4502/crx/-/jcr:root/content  https://admin:admin@localhost:4503/crx/-/jcr:root/content_copy  
NOTE

The --exclude options need to be followed by another option before the <src> and <dst> arguments. Par exemple :

vlt rcp -e ".*\.txt" -r

Sync

Permet de contrôler le service de synchronisation Vault. Sans aucun argument, cette commande tente de soumettre le répertoire de travail en cours au contrôle de synchronisation. Si elle est exécutée dans une extraction vlt, elle utilise le filtre et l’hôte respectifs pour configurer la synchronisation. Si elle est exécutée en dehors d’une extraction vlt, cette commande ajoute le dossier actif à la synchronisation, à condition que le répertoire soit vide.

Syntaxe

sync -v|--force|-u <uri> <command> <localPath>

Options

-v (--verbose) sortie détaillée.
--force forcer l'exécution de certaines commandes.
-u (--uri) <uri> spécifie l’URI de l’hôte de synchronisation.
<command> commande sync à exécuter.
<localPath> dossier local à synchroniser.

Codes d’état

Les codes d’état utilisés par VLT sont les suivants :

  • ' ' pas de modifications
  • 'A' ajouté
  • 'C' en conflit
  • 'D' supprimé
  • 'I' ignoré
  • 'M' modifié
  • 'R' remplacé
  • '?' élément non soumis à la gestion des versions
  • '!' élément manquant (supprimé par une commande non-svn) ou incomplet
  • '~' élément versionné bloqué par un objet d’un genre différent

Setting Up FileVault Sync

Le service de synchronisation Vault sert à synchroniser le contenu du référentiel avec une représentation locale du système de fichiers et vice versa. Pour cela, il faut installer un service OSGi qui écoutera les modifications du référentiel et analysera le contenu du système de fichiers périodiquement. Il utilise le même format de sérialisation que Vault pour mapper le contenu du référentiel avec le disque.

NOTE

Le service de synchronisation Vault étant un outil de développement, il est fortement déconseillé de l’utiliser sur un système en production. Notez également que le service peut uniquement être synchronisé avec le système de fichiers local et ne peut pas servir à des activités de développement à distance.

Installation du service avec vlt

La commande vlt sync install peut être utilisée pour installer automatiquement le bundle de services de synchronisation Vault et la configuration.

The bundle is installed below /libs/crx/vault/install and the config node is created at /libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl. Au départ, le service est activé mais aucune racine de synchronisation n’est configurée.

L’exemple suivant installe le service de synchronisation sur l’instance CRX accessible par l’uri spécifié.

$ vlt --credentials admin:admin sync --uri http://localhost:4502/crx install

Affichage de l’état du service

La commande status permet d’afficher des informations relatives au service de synchronisation actif. ``

$ 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.
NOTE

The status command does not fetch any live data from the service but rather reads the configuration at /libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl.

Ajout d’un dossier de synchronisation

La commande register permet d’ajouter un dossier à synchroniser à la configuration.

$ vlt sync register
Connecting via JCR remoting to http://localhost:4502/crx/server
Added new sync directory: /tmp/workspace/vltsync/jcr_root
NOTE

La commande register ne déclenche pas de synchronisation tant que vous n’avez pas configuré la configuration sync-once.

Suppression d’un dossier de synchronisation

La commande unregister permet de supprimer un dossier à synchroniser de la configuration.

$  vlt sync unregister
Connecting via JCR remoting to http://localhost:4502/crx/server
Removed sync directory: /tmp/workspace/vltsync/jcr_root
NOTE

Vous devez annuler l’enregistrement d’un dossier de synchronisation avant de supprimer le dossier lui-même.

Configuration de la synchronisation

Configuration du service

Une fois le service actif, il peut être configuré avec les paramètres suivants :

  • vault.sync.syncroots : un ou plusieurs chemins de système de fichiers locaux qui définissent les racines de synchronisation.

  • vault.sync.fscheckinterval : fréquence (en secondes) à laquelle le système de fichiers doit être analysé pour déterminer s’il y a eu des modifications. La valeur par défaut est de 5 secondes.

  • vault.sync.enabled : indicateur général qui active/désactive le service.

NOTE

Le service peut être configuré avec la console web ou un nœud sling:OsgiConfig (portant le nom com.day.jcr.sync.impl.VaultSyncServiceImpl) dans le référentiel.

Lorsque vous utilisez AEM, plusieurs méthodes de gestion des paramètres de configuration sont disponibles pour ces services ; pour en savoir plus, voir Configuration d’OSGi.

Configuration du dossier de synchronisation

Chaque dossier de synchronisation stocke la configuration et l’état dans trois fichiers :

  • .vlt-sync-config.properties: fichier de configuration.

  • .vlt-sync.log: fichier journal contenant des informations sur les opérations effectuées lors de la synchronisation.

  • .vlt-sync-filter.xml: filtres qui définissent les parties du référentiel qui sont synchronisées. The format of this file is decribed by the Performing a filtered checkout section.

The .vlt-sync-config.properties file allows you to configure the following properties:

désactivé Active ou désactive la synchronisation. Par défaut, ce paramètre est défini sur false pour permettre la synchronisation.

sync-once Si l'analyse suivante n'est pas vide, elle synchronise le dossier dans la direction indiquée, le paramètre est effacé. Deux valeurs sont possibles :

  • JCR2FS : exporte tout le contenu du référentiel JCR et écrit sur le disque local.
  • FS2JCR : importe tout le contenu du disque dans le référentiel JCR.

sync-log Définit le nom du fichier journal. Par défaut, la valeur est .vlt-sync.log

Utilisation de la synchronisation VLT pour le développement

Pour configurer un environnement de développement selon un dossier de synchronisation, procédez comme suit :

  1. Extrayez le référentiel avec la ligne de commande vlt :

    $ vlt --credentials admin:admin co --force http://localhost:4502/crx dev
    
    NOTE

    Vous pouvez utiliser des filtres pour extraire uniquement les chemins concernées. Voir la section Extraction filtrée pour plus d’informations.

  2. Accédez au dossier racine de votre copie de travail :

    $ cd dev/jcr_root/
    
  3. Installez le service de synchronisation sur votre référentiel :

    $ 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
    
  4. Initialisez le service de synchronisation :

    $ 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.
    
  5. Edit the .vlt-sync-config.properties hidden file and configure sync to synchronize the content of your repository:

    sync-once=JCR2FS
    
    NOTE

    Cette étape télécharge l’ensemble du référentiel en fonction de la configuration des filtres.

  6. Check the log file .vlt-sync.log to see the progress:

    ***
    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
    ***
    

Votre dossier local est désormais synchronisé avec le référentiel. La synchronisation est bidirectionnelle, de sorte que toute modification du référentiel est appliquée au dossier de synchronisation local et vice versa.

NOTE

La fonction de synchronisation VLT prend uniquement en charge des fichiers et dossiers simples, mais détecte les fichiers sérialisés Vault spéciaux (.content.xml, dialog.xml, etc.) et les ignore silencieusement. Ainsi, il est possible d’utiliser la synchronisation Vault sur une extraction vlt par défaut.

Sur cette page