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).
Are you aware of other endeavours in this area? Please leave a comment.