Important Notes

This section presents important pieces of information about the release.

Changes in Default Configuration

The following list presents the most important changes in the default configuration of CRX repository instances between the last version CRX 2.1 and CRX 2.2.

  • Repository configuration
    • The default repository configuration changed in CRX 2.2 to make it ready for share-nothing clustering. As of CRX 2.2 the default DataStore implementation changed from org.apache.jackrabbit.core.data.FileDataStore to com.day.crx.core.data.ClusterDataStore. At the same time the default Journal implementation changed from com.day.crx.core.journal.FileJournal to com.day.crx.persistence.tar.TarJournal. Both ClusterDataStore and TarJournal are required to run a CRX share-nothing cluster. Existing repository configuration is not changed on upgrade and the repository will still use the DataStore and Journal implementation as before the upgrade.
  • Web application descriptor
    • The CRX web.xml now allows for centralized configuration of a HTTP proxy. When enabled, this proxy is used by the CRX Package Manager.

Deprecated classes

  • All non-bundle based PersistenceManager implementations have been marked as deprecated. The list of classes is: org.apache.jackrabbit.core.persistence.mem.InMemPersistenceManager, org.apache.jackrabbit.core.persistence.obj.ObjectPersistenceManager, org.apache.jackrabbit.core.persistence.xml.XMLPersistenceManager, org.apache.jackrabbit.core.persistence.db.DatabasePersistenceManager, org.apache.jackrabbit.core.persistence.db.SimpleDbPersistenceManager, org.apache.jackrabbit.core.persistence.db.MSSqlPersistenceManager, org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager, org.apache.jackrabbit.core.persistence.db.DerbyPersistenceManager, org.apache.jackrabbit.core.persistence.db.JNDIDatabasePersistenceManager
  • All BundlePersistenceManager implementations that do not use a pool of JDBC connections have been marked as deprecated. The list of classes is: org.apache.jackrabbit.core.persistence.bundle.BundleDbPersistenceManager, org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager, org.apache.jackrabbit.core.persistence.bundle.H2PersistenceManager, org.apache.jackrabbit.core.persistence.bundle.MSSqlPersistenceManager, org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager, org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager, org.apache.jackrabbit.core.persistence.bundle.Oracle9PersistenceManager, org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager if you are using any of the above classes in the configuration, then please consider replacing them with the pooled version: org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager, org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager, org.apache.jackrabbit.core.persistence.pool.H2PersistenceManager, org.apache.jackrabbit.core.persistence.pool.MSSqlPersistenceManager, org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager, org.apache.jackrabbit.core.persistence.pool.OraclePersistenceManager, org.apache.jackrabbit.core.persistence.pool.Oracle9PersistenceManager, org.apache.jackrabbit.core.persistence.pool.PostgreSQLPersistenceManager
  • The interface org.apache.jackrabbit.api.XASession has been deprecated. Instead of casting the session to a XASession, the CRX session now implemented XAResource directly. That is, there is no need anymore for the XASession.

Shared libraries

CRX requires two shared libraries to be present in the classloader of the servlet engine or the application server. One is the JCR API packaged in jcr-2.0.jar and the second one is crx-shared.jar, which contains extensions to the JCR API and a JNDI implementation. CRX 2.2 requires an updated version of the crx-shared.jar to work properly. When upgrading from a previous version, please make sure the crx-shared.jar from CRX 2.2 is used before deploying the CRX 2.2 web application.

Important Notes

Please note that there are no groups defined in CRX default installation.

Versions of External Libraries

Day CRX directly includes Apache Jackrabbit as a set of external libraries. Please see the section on product changes in 3rd-party modules to learn more about exact versions used in CRX 2.1.

Product Compatibility

This section presents compatibiltiy of CRX 2.2 with other products.

CQ from Adobe

CQ 5.4

CRX 2.2 is released as a part of CQ 5.4, and thus explicitly supported.

CQ 5.3

The repository in CQ 5.3 installation can be upgraded to CRX 2.2.

CQ 5.3 can also to be upgraded to CQ 5.4, which contains CRX 2.2.

CQ 5.1-5.2.1 and CQ 3.x-4.x

These versions of CQ5 have to be upgraded to CQ 5.4. Repository upgrade to CRX 2.2 is not supported.

CRX from Adobe

CRX 2.1

See Repository Upgrade documentation.

Upgrade: CRX 2.0 is only available embedded in CQ 5.3. As such, it can be upgraded to CRX 2.1 only indirectly, see Upgrading CQ 5.3 to CRX 2.1.

CRX 1.x

Upgrade: See Upgrading to CRX 2.1 for upgrade instructions. As CRX 2.1 is a major release, it is generally recommended to upgrade your repository to the latest CRX 1.x version first (CRX 1.4.2.PS1), and then upgrade it to CRX 2.1.

Remote connection / virtual repository mount. RMI in CRX 2 does not support connecting between mixed versions of the JCR API. You can use WebDAV / DAVEx Remoting instead to mount workspaces from CRX 1.x repositories into CRX 2.x primary workspaces.

This recommendation is particularly relevant to connector integration between CRX 2.x (and CQ 5 version based on CRX 2, namely CQ 5.3) and Day JCR Connectors, which require CRX 1.x as a framework. For such an use case the following setup for Virtual Repository mount is recommended:

  • WebDAV remoting server in CRX 1.x connector instance upgraded to the latest version 1.6 from Jackrabbit
  • Token authentication in CRX 2.1 instance must be turned off for virtual repository mapping to work

Upgrading WebDAV remoting server in CRX 1.3.x. The WebDAV remoting support in CRX 1.3.x does not have all the features expected (by default) by the WebDAV remoting client in CRX 2.x. The easiest way to set up a WebDAV remoting connection from CRX 2.x to CRX 1.3.x is to use the latest Jackrabbit 1.6.x jars to upgrade the WebDAV support in the CRX 1.3.x instance.

Here's how to do this:

Download the following jars (for example from within the jackrabbit-webapp war that's available on the Jackrabbit download page) and place them in the server/runtime/0/_crx/WEB-INF/lib/ directory:

  • jackrabbit-api-1.6.x.jar
  • jackrabbit-jcr-commons-1.6.x.jar
  • jackrabbit-jcr-server-1.6.x.jar
  • jackrabbit-webapp-1.6.x.jar
  • jackrabbit-webdav-1.6.x.jar
  • commons-fileupload-1.2.1.jar

In server/runtime/0/_crx/WEB-INF/web.xml, replace the existing JCRWebdavServer servlet configuration with the following:

<servlet>
<servlet-name>JCRWebdavServer</servlet-name>
<servlet-class>org.apache.jackrabbit.j2ee.JcrRemotingServlet</servlet-class>
<init-param>
<param-name>resource-path-prefix</param-name>
<param-value>/server</param-value>
</init-param>
<init-param>
<param-name>missing-auth-mapping</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>

Also in server/runtime/0/_crx/WEB-INF/web.xml, add the following servlet configuration:

<servlet>
<servlet-name>JackrabbitRepositoryAccessServlet</servlet-name>
<servlet-class>org.apache.jackrabbit.j2ee.RepositoryAccessServlet</servlet-class>
<init-param>
<param-name>repository-name</param-name>
<param-value>crx</param-value>
</init-param>
<init-param>
<param-name>java.naming.provider.url</param-name>
<param-value>http://jcr.day.com</param-value>
</init-param>
<init-param>
<param-name>java.naming.factory.initial</param-name>
<param-value>com.day.util.jndi.provider.MemoryInitialContextFactory</param-value>
</init-param>
<load-on-startup>10</load-on-startup>
</servlet>

Restart the CRX 1.3.x instance.

You can then create a virtual repository connection to the updated CRX 1.3.x instance using configuration like this:

/etc/virtual-repositories/virtual-crx/mnt/crx132
  - address=crx.default@http://<host>:<port>/crx/server

for example:

/etc/virtual-repositories/virtual-crx/mnt/crx132/
    - address=crx.default@http://localhost:7788/crx/server
    + .params
        - enabled=true    
        -org.apache.jackrabbit.spi2dav.uri=http://localhost:7788/crx/server
 
Restart the crx 2.1 instance. The content from the mounted CRX 1.3.x instance should be visible.

JCR Connectors and Adapters from Adobe

JCR Connector for SharePoint 2007

Compatible. Install the connector content package from PackageShare in version at least 2.0.1, which can be installed into CRX 2.x repositories (the initially released version 2.0.0 of the SharePoint connector / initial content package works with CRX 1.4.2 repositories).

JCR Connectors Based on CRX 1.x

Other JCR connectors are based on CRX 1.x framework, and are compatible with CRX 2.1 through remote virtual repository mounting.

You can mount the connector JCR mapping of a 3rd party repository (EMC Documentum, OpenText Livelink, etc) into CRX 2.1 repository by following these steps:

  • Install connector into the supported version of CRX (usually, CRX 1.3.2) according to connector documentation
  • Upgrade WebDAV remoting server in the connector instance to the latest version from Jackrabbit 1.3.
  • In CRX 2.1 instance
    • Turn off the token authentication in CRX login module configuration. This is required for virtual repository mapping to work.
    • Configure virtual repository mount point to your connector instance via WebDAV remoting.

For the last two steps follow the instructions in Compatibility with CRX 1.x above.

JCR Connector for EMC Documentum 5.x

To connect to Documentum connector v 2.0 (based on CRX 1.3.2) via WebDAV remoting, the following setting should be added to the connector workspace.xml file

  • dm_type should be added to the deniedObjects list

Integration with Microsoft FAST ESP Search Engine

For integrating CQ5 sysems with Microsoft FAST ESP search engine, the recommended approach is to use the FAST Connector module built on top of CQ5 replication agent architecture. It is available as FeaturePack, please contact Custom Engineering department for more information.

Other Tools

Day plugins for Eclipse have been updated to work with CRX 2.x repositories. Please see www.day.com/eclipse for more information and instructions.

 

CRX Feature for Eclipse. This set of plugins provide Eclipse users with the ability to browse and edit repository content, JCR tree, from within Eclipse IDE. We appreciate that there has been customer interest in this feature, and we have updated it to work with CRX 2.x repositories.

Day Servlet Engine Feature for Eclipse (deprecated). This feature provides Eclipse users with the ability to manage the Day Servlet Engine (CQSE) from Eclipse WTP module. With CQ5 and CRX embedding parts of CQ5 Platform (Apache Sling and Apache Felix), most of application development is now done in the CQ5 Platform (OSGi bundles, Sling scripts, Java libraries), not in the CRX repository web application.

As such, this feature entered a maintenance-only phase, and will not be updated for the new releases any more.

Apache Jackrabbit Compatibility

The drop-in, source-code compatibility with Apache Jackrabbit has been maintained by CRX since version CRX 1.4. CRX 2.2 is compatible with Apache Jackrabbit 2.2.