Show Menu
ARGOMENTI×

Come utilizzare lo strumento VLT

Lo strumento Jackrabbit FileVault (VLT) è uno strumento sviluppato da Apache Foundation che mappa il contenuto di un'istanza Jackrabbit/AEM nel file system. Lo strumento VLT ha funzioni simili a quelle del client del sistema di controllo del codice sorgente (come un client Subversion (SVN)), che fornisce le normali operazioni di check-in, check-out e gestione, nonché opzioni di configurazione per una rappresentazione flessibile del contenuto del progetto.
Lo strumento VLT viene eseguito dalla riga di comando. Questo documento descrive come utilizzare lo strumento, incluso come iniziare e ricevere assistenza, nonché un elenco di tutti i comandi e le opzioni disponibili.

Concetti e architettura

Consulta la pagina Filevault Overview and Vault FS della documentazione ufficiale Apache Jackrabbit Filevault per una panoramica completa dei concetti e della struttura dello strumento Filevault.

Guida introduttiva a VLT

Per iniziare a utilizzare VLT, è necessario effettuare le seguenti operazioni:
  1. Installate VLT, aggiornate le variabili di ambiente e aggiornate i file di sovversione ignorati globali.
  2. Configurate l’archivio AEM (se non lo avete già fatto).
  3. Controllate l'archivio AEM.
  4. Sincronizzare con la directory archivio.
  5. Verificare il funzionamento della sincronizzazione.

Installazione di VLT Tool

Per utilizzare lo strumento VLT, è prima necessario installarlo. Per impostazione predefinita, non è installato in quanto è uno strumento aggiuntivo. Inoltre, è necessario impostare la variabile di ambiente del sistema.
  1. Scaricare il file di archivio FileVault dall'archivio Maven artifact.
    L'origine dello strumento VLT è disponibile su GitHub.
  2. Estrarre l'archivio.
  3. Aggiungere <archive-dir>/vault-cli-<version>/bin all'ambiente PATH in modo che i file dei comandi vlt o vlt.bat siano accessibili come appropriato. Esempio:
    <aem-installation-dir>/crx-quickstart/opt/helpers/vault-cli-3.1.16/bin>
  4. Aprite una shell della riga di comando ed eseguite vlt --help . Accertatevi che l'output sia simile alla seguente schermata della guida:
    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
    
    
Dopo averlo installato, è necessario aggiornare i file di subversione ignorati globali. Modificate le impostazioni di salvataggio e aggiungete quanto segue:
[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

Configurazione del carattere di fine riga

VLT gestisce automaticamente End of Line (EOF) in base alle seguenti regole:
  • righe di file estratti in Windows con un CRLF
  • linee di file estratti su Linux/Unix con un LF
  • righe di file inviate alla fine del repository con un LF
Per garantire la corrispondenza tra la configurazione VLT e SVN, è necessario impostare la svn:eol-style proprietà su native per l'estensione dei file memorizzati nella directory archivio. Modificate le impostazioni di salvataggio e aggiungete quanto segue:
[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

Estrazione del repository

Estrarre il repository utilizzando il sistema di controllo del codice sorgente. In svn, ad esempio, digitare quanto segue (sostituendo l’URI e il percorso con il repository):
svn co https://svn.server.com/repos/myproject

Sincronizzazione con l'archivio

È necessario sincronizzare l'archivio dei file con l'archivio. Per effettuare ciò:
  1. Nella riga di comando, passare a content/jcr_root .
  2. Per controllare il repository, digitate il seguente testo (sostituendo il numero di porta a 4502 e le password dell'amministratore):
    vlt --credentials admin:admin co --force http://localhost:4502/crx
    
    
    Le credenziali devono essere specificate una sola volta al momento dell'estrazione iniziale. Saranno quindi memorizzati nella directory principale all'interno .vault/auth.xml .

Verifica del funzionamento della sincronizzazione

Dopo aver estratto l'archivio e averlo sincronizzato, è necessario verificare che tutto funzioni correttamente. Un modo semplice per farlo è modificare un file .jsp e vedere se le modifiche vengono applicate dopo il commit delle modifiche.
Per verificare la sincronizzazione:
  1. Accedi a .../jcr_content/libs/foundation/components/text .
  2. Modificate qualcosa in text.jsp .
  3. Visualizzare i file modificati digitando vlt st
  4. Visualizzare le modifiche digitando vlt diff text.jsp
  5. Conferma le modifiche: vlt ci test.jsp .
  6. Ricaricate una pagina contenente un componente di testo e verificate se le modifiche sono presenti.

Assistenza per lo strumento VLT

Dopo aver installato lo strumento VLT, potete accedere al relativo file della Guida dalla riga di comando:
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
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Per informazioni su un particolare comando, digitare il comando help seguito dal nome del comando. Esempio:
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

Attività comuni eseguite in VLT

Di seguito sono riportate alcune attività comuni eseguite in VLT. Per informazioni dettagliate su ciascun comando, vedere i singoli comandi .

Estrazione di una sottostruttura

Se desiderate ad esempio estrarre solo una sottostruttura dell'archivio, /apps/geometrixx digitate quanto segue:
vlt co http://localhost:4502/crx/-/jcr:root/apps/geometrixx geo

In questo modo si crea una nuova radice di esportazione geo con una META-INF directory e jcr_root e si inseriscono tutti i file /apps/geometrixx in geo/jcr_root .

Esecuzione di un checkout filtrato

Se disponete di un filtro dell'area di lavoro esistente e desiderate utilizzarlo per il checkout, potete prima creare la META-INF/vault directory e inserire il filtro in tale area oppure specificarlo sulla riga di comando come segue:
$ vlt co --filter filter.xml http://localhost:4502/crx/-/jcr:root geo

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

Utilizzo di Importa/Esporta al posto del controllo .vlt

È possibile importare ed esportare contenuti tra un repository JCR e il file system locale senza utilizzare file di controllo.
Per importare ed esportare contenuti senza ricorrere al .vlt controllo:
  1. Configurare inizialmente la directory archivio:
    $ 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. Modificare la copia remota e aggiornare JCR:
    $ cd /projects/geometrixx
    $ vlt -v import http://localhost:4502/crx . /
    
    
  3. Modificare la copia remota e aggiornare il file server:
    $ 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
    
    

Utilizzo di VLT

Per eseguire i comandi in VLT, digitare quanto segue nella riga di comando:
vlt [options] <command> [arg1 [arg2 [arg3] ..]]  

Le opzioni e i comandi sono descritti dettagliatamente nelle sezioni seguenti.

Opzioni globali VLT

Di seguito è riportato un elenco di opzioni VLT, disponibili per tutti i comandi. Per informazioni sulle opzioni aggiuntive disponibili, consultate i singoli comandi.
Opzione
Descrizione
-Xjcrlog <arg>
Opzioni JcrLog estese
-Xdavex <arg>
Opzioni di rimozione JCR estese
--credentials <arg>
Credenziali predefinite da utilizzare
--config <arg>
Configurazione JcrFs da utilizzare
-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
--version
Stampa le informazioni sulla versione ed esce da VLT
--log-level <level>
Indica il livello di registro, ad esempio il livello log4j.
-h (--help) <command>
Stampa l'aiuto per quel particolare comando

Comandi VLT

Nella tabella seguente sono descritti tutti i comandi VLT disponibili. Per informazioni dettagliate su sintassi, opzioni disponibili ed esempi, vedere i singoli comandi.
Comando
Abbreviazione, Comando
Descrizione
export
Esporta da un repository JCR (file system vault) al file system locale senza file di controllo.
import
Importa un file system locale in un archivio JCR (vault file system).
checkout
co
Estrai un file system Vault. Utilizzate questa opzione per un archivio JCR iniziale nel file system locale. (Nota: È innanzitutto necessario estrarre il repository in subversione.
analyze
Analizza i pacchetti.
status
st
Stampa lo stato dei file di copia di lavoro e delle directory.
update
up
Importa le modifiche dall'archivio nella copia di lavoro.
info
Visualizza informazioni su un file locale.
commit
ci
Invia le modifiche dalla copia di lavoro alla directory archivio.
revert
rev
Ripristina lo stato originale del file della copia di lavoro e annulla le modifiche locali.
resolved
res
Rimuove lo stato in conflitto durante il lavoro di file o directory di copia.
propget
pg
Stampa il valore di una proprietà su file o directory.
proplist
pl
Stampa le proprietà su file o directory.
propset
ps
Imposta il valore di una proprietà su file o directory.
add
Posiziona i file e le directory sotto il controllo della versione.
delete
del o rm
Rimuove i file e le directory dal controllo della versione.
diff
di
Visualizza le differenze tra due percorsi.
console
Esegue una console interattiva.
rcp
Copia una struttura di nodi da un repository remoto a un altro.
sync
Consente di controllare il servizio di sincronizzazione dell'archivio.

Esporta

Esporta il file system Vault montato su <uri> nel file system locale in <local-path>. È possibile specificare un <percorso-jcr> facoltativo per esportare solo un sottoalbero.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-t (--type) <arg>
specifica il tipo di esportazione, piattaforma o jar.
-p (--prune-missing)
specifica se i file locali mancanti devono essere eliminati
<uri>
uri di montagna
<jcrPath>
Percorso JCR
<localPath>
percorso locale

Esempi

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

Importa

Importa il file system locale (a partire <local-path> dal file system vault in <uri> . È possibile specificare una radice <jcr-path> di importazione. Se --sync viene specificato, i file importati vengono automaticamente messi sotto controllo vault.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-s (-- sync)
mette i file locali sotto controllo archivio
<uri>
uri di montagna
<jcrPath>
Percorso JCR
<localPath>
percorso locale

Esempi

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

Checkout (co)

Esegue un check-out iniziale da un repository JCR al file system locale a partire da <uri> al file system locale in <local-path>. È inoltre possibile aggiungere un argomento <jcrPath> per estrarre una sottodirectory della struttura ad albero remota. È possibile specificare i filtri dell'area di lavoro che vengono copiati nella directory META-INF.

Sintassi

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

Opzioni

--force
forza il checkout per sovrascrivere i file locali, se già esistenti
-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
-f (--filter) <file>
specifica i filtri automatici se non ne sono definiti nessuno
<uri>
uri di montagna
<jcrPath>
(facoltativo) percorso remoto
<localPath>
(facoltativo) percorso locale

Esempi

Utilizzo di JCR Remoting:
vlt --credentials admin:admin co http://localhost:8080/crx/server/crx.default/jcr_root/

Con l’area di lavoro predefinita:
vlt --credentials admin:admin co http://localhost:8080/crx/server/-/jcr_root/

Se l'URI è incompleto, verrà espanso:
vlt --credentials admin:admin co http://localhost:8080/crx

Analizza

Analizza i pacchetti.

Sintassi

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

Opzioni

-l (--linkFormat) <format>
formato printf per i collegamenti con hotfix (nome, id, ad esempio) [CQ520_HF_%s|%s]
-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
<localPaths> [<localPaths> ...]
percorso locale

Stato

Stampa lo stato dei file di copia di lavoro e delle directory.
Se --show-update viene specificato, ogni file viene controllato rispetto alla versione remota. La seconda lettera specifica quindi quale azione verrà eseguita da un'operazione di aggiornamento.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
-u (--show-update)
visualizza informazioni di aggiornamento
-N (--non-recursive)
opera su un'unica directory
<file> [<file> ...]
file o directory per visualizzare lo stato

Aggiorna

Copia le modifiche dalla directory archivio nella copia di lavoro.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
--force
forza la sovrascrittura dei file locali
-N (--non-recursive)
opera su un'unica directory
<file> [<file> ...]
file o directory da aggiornare

Info

Visualizza informazioni su un file locale.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
-R (--recursive)
opera ricorsiva
<file> [<file> ...]
file o directory per visualizzare le informazioni

Conferma

Invia le modifiche dalla copia di lavoro alla directory archivio.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
--force
forza il commit anche se la copia remota viene modificata
-N (--non-recursive)
opera su un'unica directory
<file> [<file> ...]
file o directory da impegnare

Versione precedente

Ripristina lo stato originale del file della copia di lavoro e annulla le modifiche locali.

Sintassi

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

Opzioni

-q (--quiet)
stampa il minor numero possibile
-R (--recursive)
discendenti ricorsivamente
<file> [<file> ...]
file o directory da impegnare

Risolto

Rimuove lo stato in conflitto durante il lavoro dei file o delle directory di copia.
Questo comando non risolve in modo semantico i conflitti o rimuove i contrassegni di conflitto; elimina semplicemente i file di artifact correlati al conflitto e consente di eseguire nuovamente il commit di PATH.

Sintassi

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

Opzioni

-q (--quiet)
stampa il minor numero possibile
-R (--recursive)
discendenti ricorsivamente
--force
risolve, anche in presenza di indicatori di conflitto
<file> [<file> ...]
file o directory da risolvere

Propget

Stampa il valore di una proprietà su file o directory.

Sintassi

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

Opzioni

-q (--quiet)
stampa il minor numero possibile
-R (--recursive)
discendenti ricorsivamente
<propname>
il nome della proprietà
<file> [<file> ...]
file o directory da cui ottenere la proprietà

Proplist

Stampa le proprietà su file o directory.

Sintassi

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

Opzioni

-q (--quiet)
stampa il minor numero possibile
-R (--recursive)
discendenti ricorsivamente
<file> [<file> ...]
file o directory per elencare le proprietà da

Proset

Imposta il valore di una proprietà su file o directory.
VLT riconosce le seguenti proprietà speciali con le versioni:
vlt:mime-type
Il tipo mimetrico del file. Utilizzato per determinare se unire il file. Un tipo mimetrico che inizia con 'text/' (o un tipo mimetizzato assente) viene considerato come testo. Qualsiasi altra cosa viene trattata come binaria.

Sintassi

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

Opzioni

-q (--quiet)
stampa il minor numero possibile
-R (--recursive)
discendenti ricorsivamente
<propname>
il nome della proprietà
<propval>
il valore della proprietà
<file> [<file> ...]
file o directory su cui impostare la proprietà

Aggiungi

Posiziona i file e le directory sotto il controllo della versione, pianificandoli per l'aggiunta alla directory archivio. Saranno aggiunti al prossimo commit.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
-N (--non-recursive)
opera su un'unica directory
--force
forza l'esecuzione dell'operazione
<file> [<file> ...]
file o directory locale da aggiungere

Elimina

Rimuove i file e le directory dal controllo della versione.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato
-q (--quiet)
stampa il minor numero possibile
--force
forza l'esecuzione dell'operazione
<file> [<file> ...]
file o directory locale da eliminare

Diff.

Visualizza le differenze tra due percorsi.

Sintassi

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

Opzioni

-N (--non-recursive)
opera su un'unica directory
<file> [<file> ...]
file o directory per visualizzare le differenze da

Console

Esegue una console interattiva.

Sintassi

console -F <file>

Opzioni

-F (--console-settings) <file>
specifica il file delle impostazioni della console. Il file predefinito è console.properties.

Rcp

Copia una struttura di nodi da un repository remoto a un altro. <src> punta al nodo di origine e <dst> specifica il percorso di destinazione, dove deve esistere il nodo principale. Rcp elabora i nodi eseguendo lo streaming dei dati.

Sintassi

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

Opzioni

-q (--quiet)
Stampa il meno possibile.
-r (--recursive)
Discende in modo ricorsivo.
-b (--batchSize) <size>
Numero di nodi da elaborare prima di un salvataggio intermedio.
-t (--throttle) <seconds>
Numero di secondi di attesa dopo un salvataggio intermedio.
-u (--update)
Sovrascrivi/elimina nodi esistenti.
-n (--newer)
Rispetta le proprietà lastModified per l’aggiornamento.
-e (--exclude) <arg> [<arg> ...]
Regolazione dei percorsi sorgente esclusi.
<src>
Indirizzo del repository della struttura di origine.
<dst>
L'indirizzo del repository del nodo di destinazione.

Esempi

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

Le --exclude opzioni devono essere seguite da un'altra opzione prima degli <src> argomenti e <dst> . Esempio:
vlt rcp -e ".*\.txt" -r

Sincronizza

Consente di controllare il servizio di sincronizzazione dell'archivio. Senza argomenti, questo comando tenta di mettere la directory di lavoro corrente sotto il controllo di sincronizzazione. Se eseguito all’interno di un checkout vuoto, utilizza il rispettivo filtro e host per configurare la sincronizzazione. Se eseguito al di fuori di un checkout di convalida, registra la cartella corrente per la sincronizzazione solo se la directory è vuota.

Sintassi

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

Opzioni

-v (--verbose)
output dettagliato.
--force
forzare l'esecuzione di alcuni comandi.
-u (--uri) <uri>
specifica l'URI dell'host di sincronizzazione.
<command>
comando di sincronizzazione da eseguire.
<localPath>
cartella locale da sincronizzare.

Codici di stato

I codici di stato utilizzati da VLT sono:
  • ' ' Nessuna modifica
  • 'A' Aggiunto
  • 'C' Conflitto
  • 'D' Eliminato
  • 'I' Ignorato
  • 'M' Modificato
  • 'R' Sostituito
  • '?' l'elemento non è sotto il controllo della versione
  • '!' elemento mancante (rimosso dal comando non-svn) o incompleto
  • Elemento con versione '~' ostruito da un elemento di un tipo diverso

Impostazione della sincronizzazione di FileVault

Il servizio di sincronizzazione di archivi viene utilizzato per sincronizzare il contenuto del repository con una rappresentazione del file system locale e viceversa. Questo si ottiene installando un servizio OSGi che ascolterà le modifiche del repository e analizzerà periodicamente il contenuto del file system. Utilizza lo stesso formato di serializzazione di vault per la mappatura del contenuto del repository su disco.
Il servizio di sincronizzazione vault è uno strumento di sviluppo ed è altamente scoraggiato ad utilizzarlo su un sistema produttivo. Inoltre, il servizio può essere sincronizzato solo con il file system locale e non può essere utilizzato per lo sviluppo remoto.

Installazione del servizio tramite vlt

Il vlt sync install comando può essere utilizzato per installare automaticamente il bundle e la configurazione del servizio di sincronizzazione di volta in volta.
Il bundle viene installato di seguito /libs/crx/vault/install e il nodo di configurazione viene creato in /libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl . Inizialmente il servizio è attivato ma non sono configurate radici di sincronizzazione.
L'esempio seguente installa il servizio di sincronizzazione nell'istanza CRX accessibile dall'URI specificato.
$ vlt --credentials admin:admin sync --uri http://localhost:4502/crx install

Visualizzazione dello stato del servizio

Il status comando può essere utilizzato per visualizzare informazioni sul servizio di sincronizzazione in esecuzione. "
$ 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.

Il status comando non recupera dati dal servizio, ma legge la configurazione in /libs/crx/vault/com.day.jcr.sync.impl.VaultSyncServiceImpl .

Aggiunta di una cartella di sincronizzazione

Il register comando viene utilizzato per aggiungere una cartella da sincronizzare con la configurazione.
$ vlt sync register
Connecting via JCR remoting to http://localhost:4502/crx/server
Added new sync directory: /tmp/workspace/vltsync/jcr_root

Il register comando non attiva la sincronizzazione finché non configuri la sync-once configurazione.

Rimozione di una cartella di sincronizzazione

Il unregister comando viene utilizzato per rimuovere dalla configurazione una cartella da sincronizzare.
$  vlt sync unregister
Connecting via JCR remoting to http://localhost:4502/crx/server
Removed sync directory: /tmp/workspace/vltsync/jcr_root

Prima di eliminare la cartella, è necessario annullare la registrazione di una cartella di sincronizzazione.

Configurazione della sincronizzazione

Service configuration

Una volta che il servizio è in esecuzione, può essere configurato con i seguenti parametri:
  • vault.sync.syncroots : Uno o più percorsi di file system locali che definiscono le radici di sincronizzazione.
  • vault.sync.fscheckinterval : Frequenza (in secondi) della quale il file system deve essere analizzato per rilevare eventuali modifiche. Il valore predefinito è 5 secondi.
  • vault.sync.enabled : Flag generale che abilita/disabilita il servizio.
Il servizio può essere configurato con la console Web o con un sling:OsgiConfig nodo (con il nome com.day.jcr.sync.impl.VaultSyncServiceImpl ) nella directory archivio.
When working with AEM there are several methods of managing the configuration settings for such services; see Configuring OSGi for full details.

Sincronizza configurazione cartella

Ogni cartella di sincronizzazione memorizza configurazione e stato in tre file:
  • .vlt-sync-config.properties : file di configurazione.
  • .vlt-sync.log : file di registro contenente informazioni sulle operazioni eseguite durante la sincronizzazione.
  • .vlt-sync-filter.xml : filtri che definiscono quali porzioni del repository vengono sincronizzate. Il formato di questo file è descritto dalla sezione Esecuzione di un checkout filtrato.
Il .vlt-sync-config.properties file consente di configurare le seguenti proprietà:
disattivato Attiva o disattiva la sincronizzazione. Per impostazione predefinita, questo parametro è impostato su false per consentire la sincronizzazione.
sync-once Se non è vuoto la scansione successiva sincronizzerà la cartella nella direzione specificata, il parametro verrà cancellato. Sono supportati due valori:
  • JCR2FS : esporta tutto il contenuto nell'archivio JCR e scrive sul disco locale.
  • FS2JCR : importa tutto il contenuto dal disco nell'archivio JCR.
sync-log Definisce il nome del file di registro. Per impostazione predefinita, il valore è .vlt-sync.log

Utilizzo della sincronizzazione VLT per lo sviluppo

Per impostare un ambiente di sviluppo basato su una cartella di sincronizzazione, procedere come segue:
  1. Estrarre il repository con la riga di comando vlt:
    $ vlt --credentials admin:admin co --force http://localhost:4502/crx dev
    
    
    Potete utilizzare i filtri solo per estrarre i percorsi appropriati. Per informazioni, vedere Esecuzione di un checkout filtrato.
  2. Passate alla cartella principale della copia di lavoro:
    $ cd dev/jcr_root/
    
    
  3. Installate il servizio di sincronizzazione nell’archivio:
    $ 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. Inizializzare il servizio di sincronizzazione:
    $ 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. Modificate il file .vlt-sync-config.properties nascosto e configurate la sincronizzazione per sincronizzare il contenuto del repository:
    sync-once=JCR2FS
    
    
    Questo passaggio scarica l’intero repository in base alla configurazione del filtro.
  6. Controllare il file di registro .vlt-sync.log per vedere l'avanzamento:
    ***
    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
    ***
    
    
La cartella locale ora è sincronizzata con la directory archivio. La sincronizzazione è bidirezionale, quindi le modifiche dal repository verranno applicate alla cartella di sincronizzazione locale e viceversa.
La funzione di sincronizzazione VLT supporta solo file e cartelle semplici, ma rileva i file serializzati speciali (content.xml, dialog.xml, ecc.) e li ignora in modo invisibile. È quindi possibile utilizzare la sincronizzazione di volta in volta su un checkout di volume predefinito.