=======================================================================
Welcome to Apache Jackrabbit FileVault <http://jackrabbit.apache.org/>
=======================================================================

The FileVault introduces a JCR repository to filesystem mapping. The mapping is exposed by and API and used by the 
_CRX Content Packaging_  that allows to create portable packages of repository content.
The Vault Command Line Interface aka _vlt_ that provides a subversion like utility to work and develop with repository content.

Apache Jackrabbit FileVault is a project of the Apache Software Foundation.

Building FileVault
===================

You can build FileVault like this:

    mvn clean install

You need Maven 2.0.9 (or higher) with Java 5 (or higher) for the build.
For more instructions, please see the documentation at:

   http://jackrabbit.apache.org/building-jackrabbit.html

License (see also LICENSE.txt)
==============================

Collective work: Copyright 2013 The Apache Software Foundation.

Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Mailing Lists
=============

To get involved with the Apache Jackrabbit project, start by having a
look at our website and joining our mailing lists. For more details about
Jackrabbit mailing lists as well as links to list archives, please see:

   http://jackrabbit.apache.org/mailing-lists.html

Latest development
==================

The latest FileVault source code is available via Subversion at

   https://svn.apache.org/repos/asf/commons/filevault/trunk

or with ViewVC at

   https://svn.apache.org/viewvc/commons/filevault/trunk

To checkout the main Jackrabbit source tree, run

   svn checkout https://svn.apache.org/repos/asf/commons/filevault/trunk filevault

Credits
=======

See http://jackrabbit.apache.org/jackrabbit-team.html for the list of 
Jackrabbit committers and main contributors.
