uri: http://dev.day.com/microsling/content/blogs/main/fudbusting2.html
posted 02 January 2008 by Michael Marth
filed under jcr fud busting
CMSWatch has commented on JCR and how important it is, that content repositories can be accessed through various languages. I wholeheartedly agree. However, they also write:
But if the API mandates the use of one particular language (such as Java), the Holy Grail of universality immediately takes a hit. Not everyone uses Java, or wants to.
The API itself does not mandate a particular language (if anything, you might have troubles with type conversions). In fact there are a number of projects for integration of JCRs and other languages.
Integration of a JSR-170 compliant repository and a language other than Java can come in 3 flavours (that I am aware of):
Implementation of of the API in another language, i.e. implementation of the spec
Accessing a Java-based JSR-170 implementation through an adapter that maps Java and another language
Accessing a Java-based JSR-170 implementation through REST (i.e. http)
The first route is taken by the open source cms Typo3. In the upcoming version 5 Typo 3 will use its own PHP-based implementation of a JSR-170 compliant content repository. More information about this approach is available here:
Presentation A Content Repository for TYPO3 5.0
Presentation Gimme Five! The road to TYPO3 5.0 "Phoenix"
Interview with David Nuescheler on Typo 3 and content repositories that was recorded at the Typo 3 Developer Days
The second approach has been chosen by another popular open source cms: Midgard. While Midgard is written PHP it makes makes its content available through the JCR API. JNI is used for the integration.
Further examples of this approach are
Getting access to a JCR from .Net (C#) has been described here
The Java Content Repository Ice Connector allows access to a JCR from C#, VB, C++, Python, PHP.
The PHP-Java-Bridge has been used in the Typo 3 project recently to get access to a Java-based JCR from PHP (before the port mentioned above).
The third way of cross-language access to a JCR is to access the repository via a RESTful API. This is implemented for example in microjax. In microjax the language of choice is Javascript and the data exchange format is JSON.
Are you aware of other endeavours in this area? Please leave a comment.