You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2015/04/02 09:13:58 UTC

svn commit: r1670829 [5/7] - in /jackrabbit/site/trunk: ./ attic/ attic/cgi-bin/ attic/content/ attic/lib/ attic/templates/ cgi-bin/ content/ lib/ src/ src/site/ src/site/markdown/ src/site/resources/ src/site/resources/css/ src/site/resources/images/ ...

Added: jackrabbit/site/trunk/src/site/markdown/jackrabbit-web-application.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/jackrabbit-web-application.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/jackrabbit-web-application.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/jackrabbit-web-application.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,36 @@
+Title: Jackrabbit Web Application
+This is the Web Application component of the Apache Jackrabbit project.
+This component provides servlets used to access a Jackrabbit repository:
+* [RepositoryAccessServlet.java](http://jackrabbit.apache.org/api/1.4/org/apache/jackrabbit/j2ee/RepositoryAccessServlet.html)
+* [LoggingServlet.java](http://jackrabbit.apache.org/api/1.4/org/apache/jackrabbit/j2ee/LoggingServlet.html)
+* [RepositoryStartupServlet.java](http://jackrabbit.apache.org/api/1.4/org/apache/jackrabbit/j2ee/RepositoryStartupServlet.html)
+
+In addition, the project contains 2 different WebDAV servlets:
+* [SimpleWebdavServlet.java](http://jackrabbit.apache.org/api/1.4/org/apache/jackrabbit/webdav/simple/SimpleWebdavServlet.html)
+* [JCRWebdavServerServlet.java](http://jackrabbit.apache.org/api/1.4/org/apache/jackrabbit/webdav/jcr/JCRWebdavServerServlet.html)
+
+All servlets are configured in the [web.xml](https://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-webapp/src/main/webapp/WEB-INF/web.xml)
+ of the jackrabbit-webapp. It provides a good overview of the available
+options.
+
+<a name="JackrabbitWebApplication-SimpleWebdavServer"></a>
+### Simple Webdav Server
+
+Adds WebDAV support (DAV 1,2 and DeltaV) to your jackrabbit repository.
+
+The servlet configuration goes along with a [config.xml](https://svn.apache.org/repos/asf/jackrabbit/trunk/jackrabbit-webapp/src/main/webapp/WEB-INF/config.xml)
+ that provides additional configuration options for the WebDAV resources
+including import and export behaviour for both resources and their
+properties, mime type and nodetype mappings and simple item filters.
+
+<a name="JackrabbitWebApplication-JCRWebdavServer"></a>
+### JCR Webdav Server
+
+A servlet used to remote JSR170 calls via webDAV.
+
+IMPORTANT: Please note, that this servlet is not intended to provide common
+WebDAV support to the repository. Instead the primary goal is to remote
+JSR170 calls.
+
+For the corresponding JCR client see JCR to SPI and the _SPI to WebDAV_
+contribution inside the Jackrabbit sandbox.

Added: jackrabbit/site/trunk/src/site/markdown/jackrabbit-webdav-library.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/jackrabbit-webdav-library.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/jackrabbit-webdav-library.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/jackrabbit-webdav-library.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,22 @@
+Title: Jackrabbit WebDAV Library
+This is the WebDAV Library component of the Apache Jackrabbit project. This
+component provides interfaces and common utility classes used for building
+a WebDAV server or client.
+
+The following RFCs have been integrated:
+* [RFC 4918](http://www.webdav.org/specs/rfc4918.html)
+ (WebDAV - HTTP Extensions for Distributed Authoring, obsoleting RFC 2518)
+* [RFC 3253](http://www.webdav.org/specs/rfc3253.html)
+ (DeltaV - Versioning Extensions to WebDAV)
+* [RFC 3648](http://www.webdav.org/specs/rfc3648.html)
+ (Ordered Collections Protocol)
+* [RFC 3744](http://www.webdav.org/specs/rfc3744.html)
+ (Access Control Protocol)
+* [RFC 5323](http://www.webdav.org/specs/rfc5323.html)
+ (WebDAV SEARCH; previously DASL - DAV Searching and Locating)
+* [draft-ietf-webdav-bind](http://greenbytes.de/tech/webdav/draft-ietf-webdav-bind-latest.html)
+ (Binding Extensions to Web Distributed Authoring and Versioning (WebDAV))
+
+In addition this library defines (unspecified)
+* Observation
+* Bundling multiple request with extensions to locking

Added: jackrabbit/site/trunk/src/site/markdown/jcr--api.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/jcr--api.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/jcr--api.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/jcr--api.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,46 @@
+Jackrabbit is a complete, and fully compliant implementation of  the Content Repository API for Java Technology (JCR) and therefore its primary API is defined by JCR. For a developer this means that most operations required are defined by the JCR API. The classes and interfaces within Apache Jackrabbit are only needed when accessing functionality that is not specified in JCR.
+
+Beyond the JCR API Jackrabbit features numerous extensions and administrational features that are needed to run a repository  but are not (yet) specified by JCR. (see [Jackrabbit Architecture])
+
+See the javadoc documentation of the JCR API and Apache Jackrabbit releases:
+
+* [JCR 2.0|http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/]
+* [Apache Jackrabbit 2.2|http://jackrabbit.apache.org/api/2.2/]
+* [Apache Jackrabbit 2.1|http://jackrabbit.apache.org/api/2.1/]
+* [Apache Jackrabbit 2.0|http://jackrabbit.apache.org/api/2.0/]
+
+* [JCR 1.0|http://www.day.com/maven/jsr170/javadocs/jcr-1.0/]
+* [Apache Jackrabbit 1.6|http://jackrabbit.apache.org/api/1.6/]
+* [Apache Jackrabbit 1.5|http://jackrabbit.apache.org/api/1.5/]
+* [Apache Jackrabbit 1.4|http://jackrabbit.apache.org/api/1.4/]
+* [Apache Jackrabbit 1.3|http://jackrabbit.apache.org/api/1.3/]
+* [Apache Jackrabbit 1.2|http://jackrabbit.apache.org/api/1.2.3/]
+* [Apache Jackrabbit 1.0|http://jackrabbit.apache.org/api-1/]
+
+h2. JSR-170 Levels
+
+The Content Repository API for Java Technology (JSR-170) is split into different Levels of compliancy, to allow Repository Vendors to gradually adopt JSR-170 and to avoid that the overhead is unnecessarily high for repository vendors that only want to expose portions of their repository functionality through a JSR-170 compliant Interface.   JSR-170 specifies a Level 1, a Level 2 and a set of advanced repository  feature blocks. Jackrabbit is fully JSR-170 compliant and therefore supports Level 1, Level 2 and all the optional blocks.
+
+h3. Level 1 : Ease of Adoption, Covering many usecases
+
+The Scope of Level 1 of JSR-170 to cover a large number of simple  Applications, that need to search repositories and need to read  from repositories. Level 1 specifies a read-only API that allows to  introspect Node and Property-types and offers hierarchical read access to content stored in a repository. 
+
+{center}!level-1.jpg!{center}
+
+Level 1 of JSR-170 is geared to allow people to write  applications such as search and display Portlets,  CMS-Templates, Reports, Exports or other applications  that harvest, search, present or display information  from one or multiple repositories.
+
+h3. Level 2 : Writeable Repository
+
+Level 2 of JSR-170 specifies all the writing  capabilities need to bi-directionally interact with a content repository in a fine and coarse grained  fashion.
+
+{center}!level-2.jpg!{center}
+
+Applications written against Level 2 of JSR-170 include management applications or generally speaking any  application that generates data, information or content for both structured and unstructured information.
+
+h3. Advanced Options
+
+On top of Level 1 or Level 2 a number of functional  block serve for more advanced repository functionality. This includes functions like: Versioning,  (JTA) Transactions, Query using SQL, Explicit  Locking and Content Observation.
+
+{center}!level-adv.jpg!{center}
+
+A fully JSR-170 compliant repository like Jackrabbit encompasses all the functionalities and therefore lends itself as general purpose, off-the-shelf  infrastructure for Content-, Document- and Source Code Management or for just about any  other application that persists content.
\ No newline at end of file

Added: jackrabbit/site/trunk/src/site/markdown/jcr-client-application-howto.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/jcr-client-application-howto.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/jcr-client-application-howto.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/jcr-client-application-howto.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,60 @@
+Title: JCR client application HOWTO
+This document describes the common configuration and initialization code of
+a client application that uses a JCR content repository. The application
+setup does not depend on the underlying deployment model, implementation,
+or configuration of the content repository.
+
+The instructions in this document apply to a J2EE web application that uses
+JNDI to access the content repository. It should however be easy to modify
+the instructions for other container environments.
+
+<a name="JCRclientapplicationHOWTO-J2EEwebapplicationinstructions"></a>
+## J2EE web application instructions
+
+Follow the steps below to access a JNDI-bound content repository within a
+J2EE web application. Example code is included after this overview. See the
+deployment model howtos for instructions on how to create the JNDI bindings
+for the standard deployment models.
+
+1. Place the JCR API jar in the WEB-INF/lib subdirectory of your web
+application.
+1. Declare the JNDI address under which you will request the repository
+instance in the deployment descriptor.
+1. Code your application to use the resource.
+
+Note that that none of your code or configuration needs to depend on the
+underlying repository implementation or deployment model. All those details
+are handled by the container and can easily be changed without modifying
+your application. Just make sure that you have documented the JCR
+repository level and optional features your application requires so that
+your application can be deployed in an appropriate environment.
+
+<a name="JCRclientapplicationHOWTO-Step2-Deploymentdescriptor"></a>
+### Step 2 - Deployment descriptor
+
+Add the following snippet in your web.xml deployment descriptor to declare
+your application's use of a content repository resource.
+
+
+    <resource-env-ref>
+      <description>Content Repository</description>
+      <resource-env-ref-name>jcr/repository</resource-env-ref-name>
+      <resource-env-ref-type>javax.jcr.Repository</resource-env-ref-type>
+    </resource-env-ref>
+
+
+Note that the java:comp/env/jcr subcontext is the preferred naming context
+for JCR content repository resources.
+
+<a name="JCRclientapplicationHOWTO-Step3-Javacode"></a>
+### Step 3 - Java code
+
+Use the following Java code snippet to get a reference to the configured
+content repository instance.
+
+
+    InitialContext context = new InitialContext();
+    Context environment = (Context) context.lookup("java:comp/env");
+    Repository repository = (Repository) environment.lookup("jcr/repository");
+
+

Added: jackrabbit/site/trunk/src/site/markdown/jcr.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/jcr.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/jcr.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/jcr.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,10 @@
+Title: JCR
+The JCR API library is a core dependency for most of the [Jackrabbit components](jackrabbit-components.html)
+. The *jcr-1.0.jar* file contains all the [javax.jcr interfaces|http://www.day.com/maven/jsr170/javadocs/jcr-1.0/]
+ specified by [JSR 170|http://jcp.org/en/jsr/detail?id=170]
+.
+
+The JCR API library is available under the [Day Spec License](http://www.day.com/maven/jsr170/licenses/day-spec-license.htm)
+ and can be downloaded either from the [JCP web site|http://jcp.org/aboutJava/communityprocess/final/jsr170/index.html]
+ or the [central Maven repository|http://repo1.maven.org/maven2/javax/jcr/jcr/1.0/]
+.

Added: jackrabbit/site/trunk/src/site/markdown/mailing-lists.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/mailing-lists.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/mailing-lists.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/mailing-lists.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,84 @@
+Title: Mailing Lists
+Mailing lists are the primary communication channel of the Apache
+Jackrabbit project. See the Apache [mailing list](http://www.apache.org/foundation/mailinglists.html)
+ and [email contribution|http://www.apache.org/dev/contrib-email-tips.html]
+ pages for general information about mailing list usage and the expected
+behaviour on the mailing lists.
+
+The following lists are used by the Apache Jackrabbit project:
+
+<table>
+<tr><th> Mailing list </th><th> Address </th><th> Subscribe </th><th> Unsubscribe </th></tr>
+<tr><td> Jackrabbit Announcements List </td><td> [announce@jackrabbit.apache.org](mailto:announce@jackrabbit.apache.org.html)
+ </td><td> [subscribe</td><td>mailto:announce-subscribe@jackrabbit.apache.org?subject=subscribe]
+ </td><td> [unsubscribe</td><td>mailto:announce-unsubscribe@jackrabbit.apache.org?subject=unsubscribe]
+ </td></tr>
+<tr><td> Jackrabbit Users List </td><td> [users@jackrabbit.apache.org](mailto:users@jackrabbit.apache.org.html)
+ </td><td> [subscribe</td><td>mailto:users-subscribe@jackrabbit.apache.org?subject=subscribe]
+ </td><td> [unsubscribe</td><td>mailto:users-unsubscribe@jackrabbit.apache.org?subject=unsubscribe]
+ </td></tr>
+<tr><td> Jackrabbit Development List </td><td> [dev@jackrabbit.apache.org](mailto:dev@jackrabbit.apache.org.html)
+ </td><td> [subscribe</td><td>mailto:dev-subscribe@jackrabbit.apache.org?subject=subscribe]
+ </td><td> [unsubscribe</td><td>mailto:dev-unsubscribe@jackrabbit.apache.org?subject=unsubscribe]
+ </td></tr>
+<tr><td> Jackrabbit Commits List </td><td> [commits@jackrabbit.apache.org](mailto:commits@jackrabbit.apache.org.html)
+ </td><td> [subscribe</td><td>mailto:commits-subscribe@jackrabbit.apache.org?subject=subscribe]
+ </td><td> [unsubscribe</td><td>mailto:commits-unsubscribe@jackrabbit.apache.org?subject=unsubscribe]
+ </td></tr>
+</table>
+
+See the [ezmlm user manual](http://www.ezmlm.org/ezman/ezman1.html)
+ and especially the sections on [subscribing|http://www.ezmlm.org/ezman/ezman1.html#ss1.3]
+ and [unsubscribing|http://www.ezmlm.org/ezman/ezman1.html#ss1.4]
+ for instructions on how to use the Jackrabbit mailing lists.
+
+<a name="MailingLists-Troubleunsubscribing?"></a>
+## Trouble unsubscribing?
+
+If you have trouble unsubscribing from Jackrabbit mailing lists, you
+probably have subscribed some other address than the one you're trying to
+unsubscribe. To find out the address you are subscribed with, look for a
+*Return-Path* header in the source of one of the messages you've received
+from the mailing list. It should contain something like
+*listname-return-1234-your.address=example.com@jackrabbit.apache.org*
+which means that you're subscribed with *your.address@example.com*. You
+can turn that into an unsubscription request by replacing the "return-1234"
+part (the numbers change per message) with "unsubscribe", like this:
+*listname-unsubscribe-your.address=example.com@jackrabbit.apache.org*.
+Send a message to that address to unsubscribe.
+
+{note}
+Please do not send unsubscription requests directly to the normal mailing
+list addresses. If you have trouble unsubscribing and the above
+instructions don't work, you can ask [dev-owner@jackrabbit.apache.org](mailto:dev-owner@jackrabbit.apache.org.html)
+ for help.
+{note}
+
+<a name="MailingLists-Mailinglistarchives"></a>
+## Mailing list archives
+
+The Jackrabbit mailing lists are archived in many places that provide
+different features for browsing and searching the archives.
+
+<table>
+<tr><th> Archive site </th><th> Jackrabbit Archives </th></tr>
+<tr><td>  Apache	</td><td> [announce](http://mail-archives.apache.org/mod_mbox/jackrabbit-announce/)
+ [users</td><td>http://mail-archives.apache.org/mod_mbox/jackrabbit-users/]
+ [dev</td><td>http://mail-archives.apache.org/mod_mbox/jackrabbit-dev/]
+ [commits</td><td>http://mail-archives.apache.org/mod_mbox/jackrabbit-commits/]
+ </td></tr>
+<tr><td> Gmane </td><td> [users](http://dir.gmane.org/gmane.comp.apache.jackrabbit.user)
+ [dev</td><td>http://dir.gmane.org/gmane.comp.apache.jackrabbit.devel]
+ </td></tr>
+<tr><td> The Mail Archive </td><td> [users](http://www.mail-archive.com/users@jackrabbit.apache.org)
+ [dev</td><td>http://www.mail-archive.com/dev@jackrabbit.apache.org]
+ </td></tr>
+<tr><td> Nabble </td><td> [users](http://www.nabble.com/Jackrabbit---Users-f14897.html)
+ [dev</td><td>http://www.nabble.com/Jackrabbit---Dev-f371.html]
+ </td></tr>
+<tr><td> MarkMail </td><td> [All Jackrabbit lists](http://jackrabbit.markmail.org/)
+ </td></tr>
+</table>
+
+The raw list archives are also available as compressed mbox files at
+http://jackrabbit.apache.org/mail/.

Added: jackrabbit/site/trunk/src/site/markdown/mapping-atomic-fields.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/mapping-atomic-fields.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/mapping-atomic-fields.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/mapping-atomic-fields.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,141 @@
+Title: Mapping Atomic Fields
+The field-descriptor maps a bean attribute based on a Java primitive	   
+   type into a JCR property. By default, the persistence manager uses	   
+    the correct mapping in function of the attribute type (see below	   
+   the section "Supported Types").
+
+Based on our model defined here,	   the following field-descriptor
+maps the bean field "title"	      (String type) into the JCR property
+"my:title".
+
+<a name="MappingAtomicFields-SupportedTypes"></a>
+## Supported Types
+
+ It is not necessary to specify the type in the field-descriptor.	   
+The Persistence Manager uses the java introspection to get	    
+information on each atomic field.
+
+    <table>
+    <tr><th> Java Type </th><th> Jcr Type </th></tr>
+    <tr><td> String </td><td> STRING </td></tr>
+    <tr><td> Boolean, boolean </td><td> BOOLEAN </td></tr>
+    <tr><td> Double, double </td><td> DOUBLE </td></tr>
+    <tr><td> Integer, int </td><td> DOUBLE </td></tr>
+    <tr><td> Long, long </td><td> LONG </td></tr>
+    <tr><td> byte\[\](\.html)
+     </td><td> BINARY </td></tr>
+    <tr><td> java.io.InputStream </td><td> BINARY </td></tr>
+    <tr><td> java.util.Calendar </td><td> LONG (corresponding to Calendar.getTimeInMillis() </td></tr>
+    <tr><td> java.sql.Timestamp </td><td> LONG (corresponding to Timestamp.getTime() </td></tr>
+    <tr><td> java.util.Date </td><td> LONG (corresponding to java.util.Date.getTime() </td></tr>
+    </table>
+
+ Due to some issues with Jackrabbit (mainly with xpath queries),	  
+Calendar, Timestamp and date are converted into JCR LONG.	    We plan
+to add other converters for those types in the next release.
+
+<a name="MappingAtomicFields-UsingAnotherAtomicTypeConverter"></a>
+## Using Another Atomic Type Converter
+
+The OCM framework gives you the freedom to choose another kind of	  
+mapping for atomic fields. For example, you can convert 	
+java.util.Date bean field into a JCR Date type instead of a	     JCR
+Long type. This can be done by writing your own atomic type	    
+converter class.
+
+Let's start with a simple example. If you want to use a mapping 	 
+strategy which convert a boolean bean field into a JCR Long type,	   
+you have to make the following steps:
+
+<a name="MappingAtomicFields-Specifytheconverterclassinthefielddescriptor"></a>
+### Specify the converter class in the field descriptor
+
+
+    <class-descriptor
+        className="org.apache.jackrabbit.ocm.testmodel.Atomic"
+        jcrType="nt:unstructured">
+      <field-descriptor
+          fieldName="int2boolean" 
+          jcrName="int2boolean"
+          converter="org.apache.jackrabbit.ocm.persistence.atomic.Int2BooleanTypeConverterImpl"
+      />
+    </class-descriptor>
+
+
+<a name="MappingAtomicFields-Implementtheconverterclass"></a>
+### Implement the converter class
+
+Use the interface org.apache.jackrabbit.ocm.persistence.atomic.AtomicTypeConverter
+
+    package org.apache.jackrabbit.ocm.persistence.atomic;
+    
+    import javax.jcr.Value;
+    import javax.jcr.ValueFactory;
+    
+    import org.apache.jackrabbit.ocm.exception.IncorrectAtomicTypeException;
+    import org.apache.jackrabbit.ocm.persistence.atomictypeconverter.AtomicTypeConverter;
+    
+    /**
+     * This is a simple converter which convert a boolean field value into a jcr long property.
+     *
+     * @author <a href="mailto:christophe.lombart@gmail.com">Christophe Lombart</a>
+     */
+    public class Int2BooleanTypeConverterImpl implements AtomicTypeConverter
+    {
+      /**
+       *
+       * @see org.apache.jackrabbit.ocm.persistence.atomictypeconverter.AtomicTypeConverter#getValue(java.lang.Object)
+       */
+      public Value getValue(ValueFactory valueFactory, Object propValue)
+      {
+        if (propValue == null)
+        {
+          return null;
+        }
+        boolean value = ((Boolean) propValue).booleanValue();
+        int jcrValue = 0;
+    
+        if (value)
+        {
+          jcrValue = 1;
+        }
+        return valueFactory.createValue(jcrValue);
+      }
+    
+    
+        /**
+         *
+         * @see org.apache.jackrabbit.ocm.persistence.atomictypeconverter.AtomicTypeConverter#getObject(javax.jcr.Value)
+         */
+      public Object getObject(Value value)
+        {
+          try
+          {
+    	long jcrValue = value.getLong();
+    	if (jcrValue == 1)
+    	{
+    	   return new Boolean(true);
+    	}
+    	else
+    	{
+    	   return new Boolean(false);
+    	}
+        }
+        catch (Exception e)
+        {
+          throw new IncorrectAtomicTypeException("Impossible to convert the value : " + value.toString()  , e);
+        }
+        }
+    
+      /**
+       *
+       * @see org.apache.jackrabbit.ocm.persistence.atomictypeconverter.AtomicTypeConverter#getStringValue(java.lang.Object)
+       */
+      public String getStringValue(Object object)
+      {
+    
+        return ((Boolean) object).booleanValue() ? "1" : "0";
+      }
+    
+    }
+

Added: jackrabbit/site/trunk/src/site/markdown/mapping-bean-fields.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/mapping-bean-fields.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/mapping-bean-fields.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/mapping-bean-fields.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,164 @@
+Title: Mapping Bean Fields
+ The bean-descriptor maps a bean attribute into one JCR node	       (or
+a set of properties). Generally, this attribute is an		object
+based on a custom class.
+
+ Based on our model defined here,	    the following bean-descriptor
+is used to map the bean field		"pageInfo" (PageInfo class) into
+the JCR node called "pageInfo".
+
+ The PageInfo class has a corresponding class-descriptor in the 	 
+mapping file. By this way, the Persistence Manager can map each 	 
+PageInfo attributes. It is not necessary to specify the type in 	 
+the bean-descriptor. The Persistence Manager uses the Java	    
+introspection to get information on the each bean fields.
+
+<a name="MappingBeanFields-TheJCRStructure"></a>
+## The JCR Structure
+
+Following our example, the resulting JCR structure is:
+
+
+    /mysite/page1
+      /mysite/page1/pageInfo
+           my:title = "This is my page title"
+           my:description = "This is my page description"
+      ... other subnodes for page1 ...
+
+
+By default, the persistence manager will create a subnode	   
+(/mysite/page1/pageInfo) for the bean-descriptor pageInfo.
+
+<a name="MappingBeanFields-UsingAnotherBeanConverter"></a>
+## Using Another Bean Converter
+
+The OCM framework gives you the freedom to choose another kind		 
+of mapping for bean fields. For example, you can use a custom		
+bean converter to access to the parent node (see the next	    
+section below).
+
+This can be done by writing your own bean converter class and		
+reference this class in the bean-descriptor.
+
+<a name="MappingBeanFields-PredefinedBeanConverters"></a>
+### Predefined Bean Converters
+
+ Here is the list of existing custom  bean converters:
+ 
+    <table>
+    <tr><th> Custom Bean Converter Class </th><th> Description </th></tr>
+    <tr><td>
+    org.apache.jackrabbit.ocm.persistence.beanconverter.impl.ParentBeanConverterImpl
+    </td><td> Map a bean field to the parent node. it is used to access to the	   
+         parent object in read-only mode. See below the example based on	   
+           a Folder object. </td></tr>
+    <tr><td>
+    org.apache.jackrabbit.ocm.persistence.beanconverter.impl.InlineBeanConverterImpl
+    </td><td> Bean converter used to map some node properties into one nested	   
+        bean field. The corresponding bean field is not associated to a	   
+          subnode. </td></tr>
+    </table>
+
+If you want to use one of this bean converter, you have to	    
+reference it into a bean-field descriptor.
+
+The following descriptor bean-descriptor contains a reference to	  
+its parent folder (parentFolder attribute). Now the CmsObjectImpl	   
+object has an attribute (parentFolder) that contains a reference	  
+to the parent node.
+
+
+    <class-descriptor 
+        className="org.apache.jackrabbit.ocm.testmodel.inheritance.impl.CmsObjectImpl" 
+        jcrType="my:cmsobjectimpl" >
+      <field-descriptor fieldName="path" path="true" />
+      <field-descriptor fieldName="name" jcrName="my:name" id="true" />
+      <bean-descriptor 
+        fieldName="parentFolder" 
+        converter="org.apache.jackrabbit.ocm.persistence.beanconverter.impl.ParentBeanConverterImpl" 
+      />
+    </class-descriptor>
+
+
+<a name="MappingBeanFields-BuildingyourownBeanConverters"></a>
+### Building your own Bean Converters
+
+Here is the different steps used to create a new bean converter :
+
+First, specify the converter class in the bean descriptor:
+
+
+    <class-descriptor 
+        className="org.apache.jackrabbit.ocm.testmodel.inheritance.impl.CmsObjectImpl" 
+        jcrType="my:cmsobjectimpl" >
+      <bean-descriptor 
+        fieldName="parentFolder" 
+        converter="org.apache.jackrabbit.ocm.persistence.beanconverter.impl.ParentBeanConverterImpl" 
+      />
+    </class-descriptor>
+
+
+Then, implement the converter class (based on the interface	     
+org.apache.jackrabbit.ocm.persistence.beanconverter.BeanConverter).
+
+Your bean converter class can also extends the class	      
+AbstractBeanConverterImpl to have a default implementation for		
+some methods.
+
+    import javax.jcr.Node;
+    import javax.jcr.Session;
+    
+    import org.apache.commons.logging.Log;
+    import org.apache.commons.logging.LogFactory;
+    import org.apache.jackrabbit.ocm.exception.JcrMappingException;
+    import org.apache.jackrabbit.ocm.exception.PersistenceException;
+    import org.apache.jackrabbit.ocm.exception.RepositoryException;
+    import org.apache.jackrabbit.ocm.mapper.Mapper;
+    import org.apache.jackrabbit.ocm.mapper.model.BeanDescriptor;
+    import org.apache.jackrabbit.ocm.mapper.model.ClassDescriptor;
+    import org.apache.jackrabbit.ocm.persistence.atomictypeconverter.AtomicTypeConverterProvider;
+    import org.apache.jackrabbit.ocm.persistence.beanconverter.BeanConverter;
+    import org.apache.jackrabbit.ocm.persistence.objectconverter.ObjectConverter;
+    /**
+     *
+     * Bean converter used to access to the parent object.
+     *
+     *
+     * @author <a href="mailto:christophe.lombart@gmail.com">Lombart Christophe </a>
+     *
+     */
+    public class ParentBeanConverterImpl extends AbstractBeanConverterImpl implements BeanConverter {
+    
+      private final static Log log = LogFactory.getLog(ParentBeanConverterImpl.class);
+    
+      public ParentBeanConverterImpl(Mapper mapper, ObjectConverter objectConverter, AtomicTypeConverterProvider atomicTypeConverterProvider)
+      {
+        super(mapper, objectConverter, atomicTypeConverterProvider);
+      }
+    
+      public void insert(Session session, Node parentNode, BeanDescriptor beanDescriptor, ClassDescriptor beanClassDescriptor, Object object, ClassDescriptor parentClassDescriptor, Object parent)
+          throws PersistenceException, RepositoryException, JcrMappingException {
+    
+          // Add code to insert the object
+      }
+    
+      public void update(Session session, Node parentNode, BeanDescriptor beanDescriptor, ClassDescriptor beanClassDescriptor, Object object, ClassDescriptor parentClassDescriptor, Object parent)
+          throws PersistenceException, RepositoryException, JcrMappingException {
+    
+          // Add code to update the object
+      }
+    
+      public Object getObject(Session session, Node parentNode, BeanDescriptor beanDescriptor, ClassDescriptor beanClassDescriptor, Class beanClass, Object parent)
+          throws PersistenceException, RepositoryException,JcrMappingException {
+    
+          // Add code to retrieve the object
+      }
+    
+      public void remove(Session session, Node parentNode, BeanDescriptor beanDescriptor, ClassDescriptor beanClassDescriptor, Object object, ClassDescriptor parentClassDescriptor, Object parent)
+    	    throws PersistenceException,  RepositoryException, JcrMappingException {
+    
+          // Add the code to remove the object
+      }
+    
+    }
+

Added: jackrabbit/site/trunk/src/site/markdown/mapping-collection-fields.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/mapping-collection-fields.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/mapping-collection-fields.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/mapping-collection-fields.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,80 @@
+Title: Mapping Collection Fields
+The collection-descriptor maps a collection attribute into JCR nodes or in
+a multivalue property.
+
+Based on our model defined here, the following collection-descriptor is
+used to map the "paragraphs" field into the JCR node called "paragraphs".
+
+
+    <class-descriptor
+        className="org.apache.jackrabbit.ocm.testmodel.Page"
+        jcrType="my:page">
+      <collection-descriptor
+          fieldName="paragraphs" jcrName="paragraphs"
+          elementClassName="org.apache.jackrabbit.ocm.testmodel.Paragraph" />
+      <!-- other field, bean and collection mapping here !-->
+    </class-descriptor>
+    
+    <class-descriptor
+        className="org.apache.jackrabbit.ocm.testmodel.Paragraph"
+        jcrType="my:paragraph">
+      <field-descriptor fieldName="path" path="true" />
+      <field-descriptor fieldName="text" jcrName="my:text"/>
+    </class-descriptor>
+
+
+The collection-descriptor contains the elementClassName attribute which
+specify the collection element class. A class descriptor for the element
+class has also to be defined.
+
+<a name="MappingCollectionFields-TheJCRStructure"></a>
+## The JCR Structure
+
+Following our example, the resulting JCR structure is:
+
+
+    /mysite/page1
+      /mysite/page1/paragraphs
+        /mysite/page1/paragraphs/collection-element1
+          my:text = "This is the content of para1"
+        /mysite/page1/paragraphs/collection-element2
+          my:text = "This is the content of para2"
+      ... other subnodes for page1 ...
+
+
+By default, the persistence manager will create a subnode
+(/mysite/page1/paragraphs). This one will contains the different
+paragraphs.
+
+As explained in the following sections, it is possible to map to another
+JCR structure. It is also possible to use another name for the jcr node
+names (see above).
+
+<a name="MappingCollectionFields-SupportedCollectionandMapTypes"></a>
+## Supported Collection and Map Types
+
+The OCM framework is supporting the following java types:
+
+* *Collections* Collection, List, Set, ArrayList, Vector, HashSet
+* *Maps* Map, HashMap
+
+<a name="MappingCollectionFields-UsingAnotherCollectionorMap"></a>
+## Using Another Collection or Map
+
+It is possible to support other Collection or Map types with the
+ManageableCollection interface.
+
+<a name="MappingCollectionFields-UsingAnotherCollectionConverter"></a>
+## Using Another Collection Converter
+
+TODO
+
+<a name="MappingCollectionFields-PredefinedCollectionConverters"></a>
+## Predefined Collection Converters
+
+TODO
+
+<a name="MappingCollectionFields-BuildingyourownCollectionConverters"></a>
+## Building your own Collection Converters
+
+TODO

Added: jackrabbit/site/trunk/src/site/markdown/mapping-stategies.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/mapping-stategies.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/mapping-stategies.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/mapping-stategies.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,142 @@
+Title: Mapping Stategies
+We are calling "Mapping strategy" the algorithm used by the Persistence
+Manager to map a Java class into JCR nodes and/or properties.
+
+<a name="MappingStategies-TheObjectModel"></a>
+## The Object Model
+
+In order to explain the basic mapping strategies, we will use the following
+simple object model :
+
+* A page contains a path (of course), a pageInfo and a collection of
+paragraphs.
+* The PageInfo class contains the title and the page description. We are
+using the pageInfo here to see all mapping features (see the
+bean-descriptors). In real application, this class is not necessary :-)
+* Each paragraph contains a path and a text field.
+
+{center}!sample-model-doc.png!{center}
+
+This object model could be too simple for real applications and it is just
+used here to simplify the description of the different mapping strategies.
+
+<a name="MappingStategies-TheJavaClasses"></a>
+## The Java Classes
+
+Based on that object model, we can define the following Java classes:
+
+**Page.java**
+
+    public class Page
+    {
+      String path;
+      PageInfo pageInfo;
+      Collection paragraphs;
+    
+      /*  Add here the getter and setter methods */
+    
+      public void addParagraph(Paragraph paragraph)
+      {
+        if (paragraphs == null)
+        {
+          paragraphs = new ArrayList();
+        }
+    
+        paragraphs.add(paragraph);
+      }
+    }
+
+**PageInfo.java**
+
+    public class PageInfo
+    {
+      String path;
+      String title;
+      String description;
+    
+      /*  Add here the getter and setter methods */
+    
+    }
+
+
+**Paragraph.java**
+    
+    public class Paragraph
+    {
+      private String path;
+      private String text;
+    
+      /* Add here the getter and setter methods */
+    
+    }
+
+
+<a name="MappingStategies-TheJCRStructure"></a>
+## The JCR Structure
+
+Here is the resulting JCR structure if the page is stored on the path
+"/mysite/mypage1" and contains 2 paragraphs:
+
+
+    /mysite/page1
+      /mysite/page1/pageInfo
+        my:title = "This is my page title"
+        my:description = "This is my page description"
+      /mysite/page1/paragraphs
+        /mysite/page1/paragraphs/paragraph1
+          my:text = "This is the content of para1"
+        /mysite/page1/paragraphs/paragraph2
+          my:text = "This is the content of para2"
+
+ 
+It is possible to have another kind of jcr structure by using other mapping
+strategies. See the sections [Mapping Atomic Fields](mapping-atomic-fields.html)
+, [Mapping Bean Fields]
+, [Mapping Collection Fields]
+ to get more information on that.
+
+<a name="MappingStategies-TheClassDescriptors"></a>
+## The Class Descriptors
+
+When you decide to map a bean class, you have to create a new class
+descriptor entry in the Persistence Manager descriptor file. Let's start
+with the simplest class-descriptor:
+
+This class descriptor maps the class
+"org.apache.jackrabbit.ocm.testmodel.Paragraph" into the JCR type
+"nt:unstructured". Each field-descriptor maps one bean field into a JCR
+property. For example, the first field descriptor maps the java bean field
+"text" into the jcr property called "myjcrtext". The second
+field-descriptor is a specific case because it maps the jcr node path into
+a bean field called "path" (see below the section "The Path Field").
+
+You can find more information on the field-descriptors in the page [Mapping Atomic Fields](mapping-atomic-fields.html)
+.
+
+It is also possible to map a bean class to a particular JCR node type by
+specifying the desired type in the attribute jcrType. The following
+class-descriptor map the class
+"org.apache.jackrabbit.ocm.testmodel.Paragraph" into the node type
+"my:paragraph".
+
+Here are the class-descriptors required to map the classes Page, PageInfo
+and Paragraph:
+
+In order to use correctly our example class with Apache Jackrabbit, you
+should import the following node type definitions with the Jackrabbit API.
+
+Of course, node types "my:Page" and "my:PageInfo" are also required.
+
+We are currently building a node type management tools which can import the
+node types from the class-descriptors.
+
+<a name="MappingStategies-ThePathField"></a>
+## The Path Field
+
+Each mapped class contains a mandatory field called the "path field". It
+contains the JCR path associated to the object. For example, the following
+descriptor specify the bean field "myPath" as the path field.
+
+
+    <field-descriptor fieldName="myPath" path="true" />
+

Added: jackrabbit/site/trunk/src/site/markdown/navigation.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/navigation.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/navigation.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/navigation.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,34 @@
+Title: Navigation
+* Apache Jackrabbit 
+** [Welcome](welcome-to-apache-jackrabbit.html)
+** [Downloads](downloads.html)
+** [Articles](articles.html)
+** [FAQ](frequently-asked-questions.html)
+** [Jackrabbit Wiki](http://wiki.apache.org/jackrabbit/FrontPage)
+** [Jackrabbit History](jackrabbit-history.html)
+* Documentation 
+** [Getting Started](getting-started-with-apache-jackrabbit.html)
+** [Standalone Server](standalone-server.html)
+** [Jackrabbit Components](jackrabbit-components.html)
+** [First Hops](first-hops.html)
+** [JCR & API](jcr--api.html)
+** [Jackrabbit Architecture](jackrabbit-architecture.html)
+** [Deployment Models](deployment-models.html)
+** [Jackrabbit Configuration](jackrabbit-configuration.html)
+** [Node Types](node-types.html)
+** [Object Content Mapping](object-content-mapping.html)
+* Development 
+** [Jackrabbit Team](jackrabbit-team.html)
+** [Jackrabbit Roadmap](jackrabbit-roadmap.html)
+** [Building Jackrabbit](building-jackrabbit.html)
+** [Mailing Lists](mailing-lists.html)
+** [Issue Tracker](issue-tracker.html)
+** [Source Repository](source-repository.html)
+** [Continuous Integration](continuous-integration.html)
+** [Website](website.html)
+** [Creating Releases](creating-releases.html)
+** [Attribution](supporting-software-attribution.html)
+* Apache Software Foundation 
+** [Introduction](http://www.apache.org/foundation/how-it-works.html)
+** [Sponsorship](http://www.apache.org/foundation/sponsorship.html)
+** [Current Sponsors](http://www.apache.org/foundation/thanks.html)

Added: jackrabbit/site/trunk/src/site/markdown/news-archive.md
URL: http://svn.apache.org/viewvc/jackrabbit/site/trunk/src/site/markdown/news-archive.md?rev=1670829&view=auto
==============================================================================
--- jackrabbit/site/trunk/src/site/markdown/news-archive.md (added)
+++ jackrabbit/site/trunk/src/site/markdown/news-archive.md Thu Apr  2 07:13:56 2015
@@ -0,0 +1,547 @@
+<!--
+   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.
+-->
+News Archive
+============
+This is an archive of all the Apache Jackrabbit news posted to the home
+page. The news are listed in reverse chronological order.
+
+## News in 2013
+
+#### December 13th, 2013: Apache Jackrabbit Oak 0.13 released
+Jackrabbit Oak 0.13 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### December 9th, 2013: Apache Jackrabbit 2.7.3 released
+Apache Jackrabbit 2.7.x is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### December 2nd, 2013: Apache Jackrabbit 2.6.5 released
+Apache Jackrabbit 2.6.5 is a patch release that contains fixes and improvements over previous Jackrabbit 2.6.x. See the downloads page for more details.
+
+#### November 28th, 2013: Apache Jackrabbit Oak 0.12 released
+Jackrabbit Oak 0.12 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### November 21st, 2013: Apache Jackrabbit Oak 0.11 released
+Jackrabbit Oak 0.11 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### November 8th, 2013: Apache Jackrabbit 2.7.2 released
+Apache Jackrabbit 2.7.x is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### October 24th, 2013: Apache Jackrabbit 2.6.4 released
+Apache Jackrabbit 2.6.4 is a patch release that contains fixes and improvements over previous Jackrabbit 2.6.x.
+
+#### October 24th, 2013: Apache Jackrabbit 2.4.5 released
+Apache Jackrabbit 2.4.5 is a patch release that contains fixes and improvements over previous Jackrabbit 2.4.x. See the downloads page for more details.
+
+#### October 9th, 2013: Apache Jackrabbit Oak 0.10 released
+Jackrabbit Oak 0.10 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### September 31th, 2013: Apache Jackrabbit FileVault 3.0.0 released
+Jackrabbit FileVault 3.0.0 is the first release of the recently donated repository content synchronization tool.
+
+#### September 20th, 2013: Apache Jackrabbit Oak 0.9 released
+Jackrabbit Oak 0.9 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### September 16th, 2013: Apache Jackrabbit 2.7.1 released
+Apache Jackrabbit 2.7.x is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### Aug 1st, 2013: Apache Jackrabbit 2.6.3 released
+Apache Jackrabbit 2.6.3 is a patch release that contains fixes and improvements over previous Jackrabbit 2.6.x. This release also contains a security fix.
+
+#### May 29th, 2013: Apache Jackrabbit 2.6.2 released
+Apache Jackrabbit 2.6.2 is a patch release that contains fixes and improvements over previous Jackrabbit 2.6.x.
+
+#### May 20th, 2013: Apache Jackrabbit Oak 0.7 released
+Jackrabbit Oak 0.7 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### May 13th, 2013: Apache Jackrabbit 2.6.1 released
+Apache Jackrabbit 2.6.1 is a patch release that contains fixes and improvements over previous Jackrabbit 2.6.x.
+
+#### May 13th, 2013: Apache Jackrabbit 2.4.4 released
+Apache Jackrabbit 2.4.4 is a patch release that contains fixes and improvements over previous Jackrabbit 2.4.x.
+
+#### May 13th, 2013: Apache Jackrabbit 2.7.0 released
+Apache Jackrabbit 2.7.x is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### February 13th, 2013: Apache Jackrabbit 2.6.0 released
+Apache Jackrabbit 2.6 is an incremental feature release based on and compatible with earlier stable Jackrabbit 2.x releases.
+
+#### February 7th, 2013: Apache Jackrabbit 2.5.3 released
+Apache Jackrabbit 2.5 is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### February 7th, 2013: Apache Jackrabbit Oak 0.6 released
+Jackrabbit Oak 0.6 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+## News in 2012
+
+#### October 4th, 2012: Apache Jackrabbit 2.2.13 released
+Apache Jackrabbit 2.2.13 is a patch release that contains fixes and improvements over previous 2.2.x releases. See the downloads page for more details.
+
+#### October 1st, 2012: Apache Jackrabbit Oak 0.5 released
+Jackrabbit Oak 0.5 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### September 24th, 2012: Apache Jackrabbit 2.5.2 released
+Apache Jackrabbit 2.5 is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### September 4th, 2012: Apache Jackrabbit 2.4.3 released
+Apache Jackrabbit 2.4.3 is a patch release that contains fixes and improvements over previous Jackrabbit 2.4.x.
+
+#### August 14th, 2012: Apache Jackrabbit Oak 0.4 released
+Jackrabbit Oak 0.4 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### August 6th, 2012: Apache Jackrabbit 2.5.1 released
+Apache Jackrabbit 2.5 is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### June 10th, 2012: Apache Jackrabbit 2.4.2 released
+Apache Jackrabbit 2.4.2 is a patch release that contains fixes and improvements over previous Jackrabbit 2.4.x.
+
+#### June 10th, 2012: Apache Jackrabbit OCM 2.0.0 released
+Apache Jackrabbit OCM 2.0.0 is release that contains fixes and improvements over Jackrabbit OCM 1.5. Apart from the test classes, it does not depend on Apache Jackrabbit core, but only on the JCR 2.0 specification. See the downloads page for more details.
+
+#### July 5th, 2012: Apache Jackrabbit Oak 0.3 released
+Jackrabbit Oak 0.3 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### June 2nd, 2012: Apache Jackrabbit 2.5.0 released
+Apache Jackrabbit 2.5 is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### May 7th, 2012: Apache Jackrabbit Oak 0.2.1 released
+Jackrabbit Oak 0.2.1 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### April 23rd, 2012: Apache Jackrabbit 2.2.12 released
+Apache Jackrabbit 2.2.12 is a patch release that contains fixes and improvements over previous 2.2.x releases.
+
+#### April 3rd, 2012: Apache Jackrabbit 2.4.1 released
+Apache Jackrabbit 2.4.1 is a patch release that contains fixes and improvements over Jackrabbit 2.4.0.
+
+#### April 3rd, 2012: Apache Jackrabbit Oak 0.1 released
+Jackrabbit Oak 0.1 is to be considered alpha-level software. Use at your own risk with no stability or compatibility guarantees.
+
+#### February 9th, 2012: Apache Jackrabbit 2.4.0 released
+Apache Jackrabbit 2.4 is an incremental feature release based on and compatible with earlier stable Jackrabbit 2.x releases. Jackrabbit 2.4.x releases are considered stable and targeted for production use.
+
+#### February 7th, 2012: Apache Jackrabbit 2.2.11 released
+Apache Jackrabbit 2.2.11 is a patch release that contains fixes and improvements over previous 2.2.x releases.
+
+#### January 24th, 2012: Apache Jackrabbit 2.3.7 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### January 2nd, 2012: Apache Jackrabbit 2.3.6 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### January 2nd, 2012: Apache Jackrabbit 2.3.6 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from
+Jackrabbit trunk, with a focus on new features and other improvements.
+See the [downloads page](downloads#v23.html)
+
+## News in 2011
+
+#### December 16th, 2011: Apache Jackrabbit 2.3.5 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from
+Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### November 29th, 2011: Apache Jackrabbit 2.3.4 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from
+Jackrabbit trunk, with a focus on new features and other improvements. 
+
+#### November 22nd, 2011: Apache Jackrabbit 2.2.10 released
+Apache Jackrabbit 2.2.10 is patch release that contains fixes and
+improvements over previous 2.2.x releases.  See the [downloads page|Downloads#v22]
+ for more details.
+
+#### November 15th, 2011: Apache Jackrabbit 2.3.3 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from
+Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### November 2nd, 2011: Apache Jackrabbit 2.3.2 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from
+Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### October 3rd, 2011: Apache Jackrabbit 2.3.0 released
+Apache Jackrabbit 2.3 is an unstable series of releases cut directly from
+Jackrabbit trunk, with a focus on new features and other improvements.
+
+#### October 3rd, 2011: End of life of Jackrabbit 1.x
+The 1.6.5 patch release marks the end of active maintenance of Jackrabbit
+1.x. All users are encouraged to upgrade to the more recent Jackrabbit 2.x
+versions.
+
+#### October 3rd, 2011: Apache Jackrabbit 2.2.9, 2.1.6, 2.0.5 and 1.6.5 released
+These patch releases contain fixes and improvements over previous releases.
+
+#### August 23, 2011: Apache Jackrabbit 2.2.8 released
+Apache Jackrabbit 2.2.8 is patch release that contains fixes and
+improvements over previous 2.2.x releases. 
+
+#### June 7, 2011: Apache Jackrabbit 2.2.7 released
+Apache Jackrabbit 2.2.7 is patch release that contains fixes and
+improvements over previous 2.2.x releases.
+
+#### June 7, 2011: Apache Jackrabbit 2.1.5 released
+Apache Jackrabbit 2.1.5 is patch release that fixes issues reported against
+previous releases.
+
+#### March 18, 2011: Apache Jackrabbit 2.2.5 released
+Apache Jackrabbit 2.2.5 is patch release that contains fixes and
+improvements over previous 2.2.x releases.
+
+#### February 15, 2011: Apache Jackrabbit 2.2.4 released
+Apache Jackrabbit 2.2.4 is patch release that contains fixes and
+improvements over previous 2.2.x releases.
+
+#### January 26, 2011: Apache Jackrabbit 2.2.2 released
+Apache Jackrabbit 2.2.2 is patch release that contains fixes and
+improvements over previous 2.2.x releases.
+
+#### January 11, 2011: Apache Jackrabbit 2.2.1 released
+Apache Jackrabbit 2.2.1 is patch release that contains fixes and
+improvements over Jackrabbit 2.2.0.
+
+
+## News in 2010
+
+#### December 15, 2010: Apache Jackrabbit 2.2.0 released
+Jackrabbit 2.2 is an incremental feature release based on the earlier 2.x releases.
+
+#### December 7, 2010: Apache Jackrabbit 2.1.3 released
+Apache Jackrabbit 2.1.3 is a bug fix release that fixes issues reported
+against previous versions.
+
+#### October 31, 2010: Apache Jackrabbit 2.1.2 released
+Apache Jackrabbit 2.1.2 is a bug fix release that fixes issues reported
+against previous versions.
+
+#### October 31, 2010: Apache Jackrabbit 2.0.3 released
+Apache Jackrabbit 2.0.3 is a bug fix release that fixes issues reported
+against previous versions. See the [downloads page](downloads#v20.html)
+for more details.
+
+#### October 12, 2010: Apache Jackrabbit 1.6.4 released
+Apache Jackrabbit 1.6.4 is a bug fix release that fixes issues reported
+against earlier Jackrabbit 1.6.x versions.
+
+#### August 11, 2010: Apache Jackrabbit 2.1.1 released
+Apache Jackrabbit 2.1.1 is a bug fix release that fixes issues reported
+against the earlier Jackrabbit 2.1.0 version.
+
+#### June 6, 2010: Apache Jackrabbit 1.6.2 released
+Apache Jackrabbit 1.6.2 is a bug fix release that fixes issues reported
+against earlier Jackrabbit 1.6.x versions.
+
+#### June 6, 2010: jackrabbit-core 1.4.12 released
+The jackrabbit-core 1.4.12 maintenance release is targeted to users who
+are not yet ready to upgrade to the more recent Jackrabbit releases, but
+who still need fixes to reported inconsistency problems.
+
+#### April 22, 2010: Apache Jackrabbit 2.1.0 released
+Jackrabbit 2.1 is an incremental feature release based on the earlier 2.0
+release.
+
+#### January 27, 2010: Apache Jackrabbit 2.0.0 released
+Apache Jackrabbit 2.0.0 is a fully compliant and production-ready
+implementation of JCR 2.0.
+
+#### January 21, 2010: Apache Jackrabbit 1.6.1 released
+Apache Jackrabbit 1.6.1 is a bug fix release that fixes issues reported
+against Jackrabbit 1.6.0.
+
+#### January 18, 2010: Apache Jackrabbit 2.0 beta6 released
+This is a beta release of Apache Jackrabbit 2.0. This release is a fully compliant implementation of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The beta status of this release means that some parts of the
+implementation are not yet ready for normal production use.
+
+#### January 11, 2010: Apache Jackrabbit 2.0 beta5 released
+This is a beta release of Apache Jackrabbit 2.0. This release is a fully compliant implementation of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The beta status of this release means that some parts of the
+implementation are not yet ready for normal production use.
+
+## News in 2009
+
+#### December 12, 2009: Apache Jackrabbit 2.0 beta4 released
+This is a beta release of Apache Jackrabbit 2.0. This release is a fully compliant implementation of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The beta status of this release means that some parts of the
+implementation are not yet ready for normal production use.
+
+#### November 25, 2009: Apache Jackrabbit 2.0 beta3 released
+This is a beta release of Apache Jackrabbit 2.0. This release is a fully compliant implementation of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The beta status of this release means that some parts of the
+implementation are not yet ready for normal production use.
+
+#### October 30, 2009: Apache Jackrabbit 2.0 beta1 released
+This is a beta release of Apache Jackrabbit 2.0. This release is a fully compliant implementation of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The beta status of this release means that some parts of the
+implementation are not yet ready for normal production use.
+
+#### September 23, 2009: jackrabbit-core 1.4.11 released
+The jackrabbit-core 1.4.11 patch release is targeted to users who are not
+yet ready to upgrade to the more recent Jackrabbit releases, but who still
+need the XPath formatting fix from issue [JCR-2052](https://issues.apache.org/jira/browse/JCR-2052)
+.
+
+#### September 23, 2009: Apache Jackrabbit 2.0 alpha11 released
+This is an alpha release of Apache Jackrabbit 2.0. This release implements a pre-release version of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The purpose of this alpha release is to allow people to test and review
+the new JCR 2.0 features before they are finalized.
+
+#### September 15, 2009: jackrabbit-core 1.4.10 released
+The jackrabbit-core 1.4.10 patch release is targeted to users who are not
+yet ready to upgrade to the more recent Jackrabbit releases, but who still
+need the clustering performance improvement from issue [JCR-1988](https://issues.apache.org/jira/browse/JCR-1988).
+
+#### August 26, 2009: Apache Jackrabbit 2.0 alpha9 released
+This is an alpha release of Apache Jackrabbit 2.0. This release implements a pre-release version of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The purpose of this alpha release is to allow people to test and review
+the new JCR 2.0 features before they are finalized.
+
+#### August 18, 2009: Apache Jackrabbit 2.0 alpha8 released
+This is an alpha release of Apache Jackrabbit 2.0. This release implements a pre-release version of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The purpose of this alpha release is to allow people to test and review
+the new JCR 2.0 features before they are finalized.
+
+#### August 11, 2009: Apache Jackrabbit 1.6.0 released
+Apache Jackrabbit 1.6.0 is an incremental feature release. While
+remaining compatible with previous releases, Jackrabbit 1.6 introduces a
+number of new features, improvements and fixes to known issues. See the [downloads page](downloads#v16.html) for more details.
+
+#### August 10, 2009: Apache Jackrabbit 2.0 alpha7 released
+This is an alpha release of Apache Jackrabbit 2.0. This release implements a pre-release version of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The purpose of this alpha release is to allow people to test and review
+the new JCR 2.0 features before they are finalized.
+
+#### August 3, 2009: Apache Jackrabbit 1.5.7 released
+Apache Jackrabbit 1.5.7 is a bug fix release that fixes issues reported
+against previous releases. This release is fully compatible with the
+earlier 1.5.x releases.
+
+#### July 14, 2009: Apache Jackrabbit 2.0 alpha4 released
+This is an alpha release of Apache Jackrabbit 2.0. This release implements a pre-release version of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The purpose of this alpha release is to allow people to test and review
+the new JCR 2.0 features before they are finalized.
+
+#### July 3, 2009: Apache Jackrabbit 2.0 alpha3 released
+This is the second alpha release of Apache Jackrabbit 2.0. This release implements a pre-release version of the JCR 2.0 API, specified by the Java Specification Request 283 ([JSR 283](http://jcp.org/en/jsr/detail?id=283)). The purpose of this alpha release is to allow people to test and review
+the new JCR 2.0 features before they are finalized.
+
+#### June 4, 2009: Apache Jackrabbit 2.0 alpha1 released
+The first alpha release of Apache Jackrabbit 2.0 implements the Proposed
+Final Draft (PFD) version of the JCR 2.0 API, that is being specified by
+the Java Specification Request 283 (JSR 283). The purpose of this alpha
+release is to allow people to test and review the new JCR 2.0 features
+before they are finalized.
+
+#### June 4, 2009: Apache Jackrabbit 1.5.6 released
+Apache Jackrabbit 1.5.6 is a bug fix release that fixes issues reported
+against previous releases. This release is fully compatible with the
+earlier 1.5.x releases.
+
+#### April 28, 2009: Apache Jackrabbit 1.5.5 released
+Apache Jackrabbit 1.5.5 is a bug fix release that fixes issues reported
+against previous releases. The jackrabbit-jcr2spi component contains also
+some other improvements over previous releases. This release is fully
+compatible with the earlier 1.5.x releases.
+
+#### April 7, 2009: Apache Jackrabbit 1.5.4 released
+Apache Jackrabbit 1.5.4 is a bug fix release that fixes issues reported
+against previous releases. This release is fully compatible with the
+earlier 1.5.x releases.
+
+#### March 3, 2009: jackrabbit-core 1.4.9 released
+This release is targeted to users who are not yet ready to upgrade to the
+more recent Jackrabbit 1.5.x releases, but who still need some of the more
+important recent fixes and improvements, especially related to query
+performance. See the [downloads page](downloads.html)
+for more details.
+
+#### February 27, 2009: Apache Jackrabbit 1.5.3 released
+Apache Jackrabbit 1.5.3 is a bug fix release that fixes issues reported
+against previous releases. This release is fully compatible with the
+earlier 1.5.x releases.
+
+#### January 29, 2009: Michael D&uuml;rig joins the Jackrabbit team as a committer
+The Jackrabbit PMC recently decided to offer Michael committership based
+on his contributions especially to the SPI layer. Michael accepted, and as
+of today he is a committer and a PMC member of the Apache Jackrabbit
+project. See the [Jackrabbit Team](jackrabbit-team.html)
+page for the rest of our team.
+
+
+#### January 29, 2009: jackrabbit-core 1.4.8 released
+This release fixes a number of minor issues.
+
+#### January 20, 2009: Apache Jackrabbit 1.5.2 released
+Apache Jackrabbit 1.5.2 is a security and bug fix release that fixes
+issues reported against previous releases. This release is fully compatible
+with the earlier 1.5.0 release. See the [downloads page](downloads.html)
+for more details.
+
+*Note: CVE-2009-0026: Cross site scripting issues in webapp (JCR-1925)
+The search.jsp and swr.jsp pages in the Jackrabbit webapp are vulnerable
+to script injection. This release fixes the issue by properly escaping all
+user input.*
+
+*This issue affects both the Jackrabbit 1.4 and 1.5.0 releases. If you are
+unable to upgrade to 1.5.2 at this point, you can work around this issue by
+disabling the search.jsp and swr.jsp pages in the Jackrabbit webapp.*
+
+
+#### January 20, 2009: jackrabbit-core 1.4.7 released
+This release fixes a number of minor issues.
+
+
+## News in 2008
+
+#### December 8, 2008: Apache Jackrabbit 1.5.0 released
+Apache Jackrabbit 1.5 is an incremental feature release. While remaining
+compatible with previous releases, Jackrabbit 1.5 introduces a number of
+new features, improvements and fixes to known issues.
+
+#### October 7, 2008: jackrabbit-core 1.4.6 released
+This release fixes a number of minor issues.
+
+#### October 2, 2008: jackrabbit-classloader 1.4.1 released
+This release contains fixes to a number of issues.
+
+#### September 30, 2008: jackrabbit-jcr-server 1.4.1 released
+This release fixes a number of minor issues.
+
+#### October 7, 2008: jackrabbit-core 1.4.6 released
+This release fixes a number of minor issues.
+
+#### October 2, 2008: jackrabbit-classloader 1.4.1 released
+This release contains fixes to a number of issues.
+
+#### September 30, 2008: jackrabbit-jcr-server 1.4.1 released
+This release fixes a number of minor issues.
+
+#### June 9, 2008: jackrabbit-core 1.4.5 released
+This release fixes various issues, including a change to some default persistence manager configuration settings ([JCR-1562](https://issues.apache.org/jira/browse/JCR-1562)). 
+Users who are relying on the default username, password, or schema name
+settings for database-based persistence should check their configuration
+when upgrading to this release.
+
+#### May 9, 2008: jackrabbit-core 1.4.4 released
+This release fixes the custom persistence manager regression ([JCR-1556](https://issues.apache.org/jira/browse/JCR-1556)) introduced in the 1.4.3 patch release. Also two database data store fixes
+are included.
+
+#### May 8, 2008: jackrabbit-core 1.4.3 released
+This release contains fixes to a number of issues and adds functionality
+to help recovery from repository inconsistencies.
+
+#### May 8, 2008: Apache Jackrabbit 1.3.4 released
+Apache Jackrabbit 1.3.4 is a patch release from the 1.3 maintenance
+branch. This release is targeted to users who are not yet ready to upgrade
+to the more recent Jackrabbit 1.4 release, but who still need some of the
+more important recent fixes and improvements.
+See the [downloads page](downloads.html)
+for more details.
+
+#### April 9, 2008: jackrabbit-jcr-rmi 1.4.1 released
+This release contains fixes to a number of issues.
+
+#### April 2, 2008: jackrabbit-jcr-commons 1.4.2 released
+This release contains fixes to a number of issues.
+
+#### March 27, 2008: JCR community gathering in Amsterdam on April 8th
+The first JCR community gathering in Amsterdam on April 8th was
+officially announced. This JCR meetup event is targeted to everyone
+interested in the JCR standard and applications built using JCR. All JCR
+users and developers are welcome to participate. See the [wiki page](http://wiki.apache.org/jackrabbit/JcrMeetupApril2008)
+for more information.
+
+#### March 26, 2008: jackrabbit-core 1.4.2 released
+This release contains fixes to a number of issues, most notably the
+concurrent modification exception reported in JCR-1359 and two concurrent
+versioning deadlocks reported in JCR-1462 and JCR-1480.
+
+#### February 20, 2008: jackrabbit-core 1.4.1 released
+This release fixes a binary property regression ([JCR-1346](https://issues.apache.org/jira/browse/JCR-1346)) as well as other issues reported against the Apache Jackrabbit 1.4
+release. Unlike previous Jackrabbit releases, this release only contains a
+single component.
+
+#### January 15, 2008: Apache Jackrabbit 1.4 released
+Apache Jackrabbit 1.4 is an incremental feature release. While remaining
+compatible with previous releases, Jackrabbit 1.4 introduces a number of
+new features, improvements and fixes to known issues. The most notable new
+features in this releases are the new object mapping and service provider
+components for JCR. The Jackrabbit content repository implementation has
+been enhanced with a new storage model for binary content, a much improved
+query and indexing system, and many fixes and improvements especially for
+concurrent access. Many smaller improvements and bug fixes are also
+included all over the codebase.
+
+## News in 2007
+
+#### October 8, 2007: Apache Jackrabbit 1.3.3 released 
+From the release notes: "Apache Jackrabbit 1.3.3 is patch release with
+bug fixes for features like concurrent versioning, journaling, and JCR API
+tests." 
+
+#### July 31, 2007: Apache Jackrabbit 1.3.1 released
+From the release notes: "Apache Jackrabbit 1.3.1 is patch release with
+bug fixes and improvements for clustering, query, and other features." 
+
+#### April 25, 2007: Apache Jackrabbit 1.3 released
+From the release notes: "Apache Jackrabbit 1.3 an incremental feature
+release. The most notable changes in this release are support for query
+result highlighting, performance improvements thanks to a new bundle
+persistence manager, and a new classloader component for loading Java
+classes from a content repository. Many smaller improvements and bug fixes
+are also included." 
+
+#### March 11, 2007: Apache Jackrabbit 1.2.3 released
+From the release notes: "Apache Jackrabbit 1.2.3 is patch release with
+bug fixes for issues like correctly reporting the number of access
+controlled query results and proper cleanup after indexing PDF documents." 
+
+#### February 21, 2007: Apache Jackrabbit 1.2.2 released
+From the release notes: "Apache Jackrabbit 1.2.2 is a patch release that
+fixes a few issues reported since the 1.2.1 release and adds two clustering
+improvements." 
+
+#### January 23, 2007: Apache Jackrabbit 1.2.1 released
+From the release notes: "Apache Jackrabbit 1.2.1 is an incremental
+release that introduces a number of new features, improvements, and bug
+fixes. The most notable changes in this release are the introduction of a
+clustering feature and various query improvements." 
+
+## News in 2006
+
+#### December 4, 2006: Apache Jackrabbit 1.1.1 released
+From the release notes: "Apache Jackrabbit 1.1.1 is a patch release that
+fixes a number of issues, see the included change history for details. No
+new features or configuration changes have been introduced since the 1.1
+release." 
+
+#### October 12, 2006: Apache Jackrabbit 1.1 released
+From the release notes: "Apache Jackrabbit 1.1 is an incremental release
+that fixes a number of issues and introduces some new features. The most
+notable changes in this release include the removal of the Apache Xerces
+dependency and an improved item state cache." 
+
+#### June 2, 2006: Apache Jackrabbit 1.0.1 released
+From the release notes: "Apache Jackrabbit 1.0.1 is a patch release that
+fixes a number of issues, see the included change history for details. No
+new features or configuration changes have been introduced since the 1.0
+release." 
+
+#### April 8, 2006: Apache Jackrabbit 1.0 released
+From the release notes: "Apache Jackrabbit 1.0 is a fully conforming and
+stable JSR-170 implementation. Developed from the same source tree as the
+JSR-170 reference implementation, the 1.0 release implements the full JCR
+API, including level 1, level 2, and all the optional features like
+versioning, transactions, and observation." 
+
+#### March 15, 2006: Apache Jackrabbit graduates from the Incubator
+The ASF board of directors approved a resolution to create the Apache
+Jackrabbit top level project (TLP). This finalizes the incubation process
+for Jackrabbit and makes it an official ASF project. 
+
+#### February 14, 2006: Jackrabbit 0.9 released
+From the release notes: "The version 0.9 release is the first official
+release of the Jackrabbit project. The goal of this release is to provide a
+tested and packaged version of Jackrabbit for users who have so far been
+using custom snapshots. This release also provides a well defined baseline
+for the upcoming Jackrabbit version 1.0." See the downloads page for more
+details. 
+