Commercial support available from Openmind.

Magnolia CRX Connector module is an implementation of the provider interface of Magnolia EE which enables it to use Content Repository Extreme (CRX) as a data source.

CRX is a commercial repository implementation by Day Software AG. For more information see CRX - Content Application Platform.

Download

Download the CRX Connector module from Nexus repository.

Installing

CRX Connector is an enterprise module. To install the module:

  • Copy magnolia-crx-VERSION.jar to WEB-INF/lib
  • Remove jackrabbit-xxx.jars since it will be available together with other CRX API jars in shared libraries of the container.
  • You need to make sure that you have CRX API jars and JNDI jars in the proper place to ensure that they can be shared between CRX and other applications like Magnolia in this context (please refer to CRX documentation). FIND LINK

Uninstalling

See the general module uninstalling instructions and advice.

Configuration

Modify WEB-INF/config/default/repositories.xml to use magnolia-CRX provider.

<!-- magnolia default repository -->
 <Repository name="magnolia" provider="info.magnolia.crx.ProviderImpl" loadOnStartup="true">
 .......
     <param name="contextFactoryClass"      value="com.day.util.jndi.provider.MemoryInitialContextFactory" />
     <param name="providerURL" value="http://jcr.day.com" />
     <param name="bindName" value="crx" />
     <workspace name="website" />
     <workspace name="config" />
     <workspace name="users" />
     <workspace name="userroles" />
     .......
 </Repository>

*As you can see you need to configure :*

  1. contextFactoryClass, this is always the same unless you decide to use your own jndi provider
  2. providerURL, this must match to the URL as registered by your crx server (by default its http://jcr.day.com)
  3. bindName, as registered by CRX

Sharing repository between multiple apps

If you are sharing single CRX instance to host multiple magnolia repositories you need to configure unique workspace name across all instances.
To do so, configure in repositories.xml

You can share single repository between any number of "unrelated" magnolia instances. Its not possible to share single repository for Author and Public or any other stages in between.

<RepositoryMapping>
     <Map name="website" repositoryName="magnolia" workspaceName="legalWebsite" />
     <Map name="config" repositoryName="magnolia" workspaceName="legalConfig" />
     ...
 </RepositoryMapping>
 
 <!-- magnolia default repository -->
 <Repository name="magnolia" provider="info.magnolia.crx.ProviderImpl" loadOnStartup="true">
 .......
     <workspace name="legalWebsite" />
     <workspace name="legalConfig" />
     <workspace name="legalUsers" />
     <workspace name="legalUserroles" />
     .......
 </Repository>
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))