Glassfish/Jackrabbit

Cette page a été rédigée il y a fort fort longtemps, et n'a pas tellement été mise à jour.

 

Vous savez, moi je ne crois pas qu'il y ait de bonne ou de mauvaise page. Moi, si je devais résumer mon wiki aujourd'hui avec vous, je dirais que c'est d'abord des rencontres. Des gens qui m'ont tendu la main, peut-être à un moment où je ne pouvais pas, où j'étais seul chez moi. Et c'est assez curieux de se dire que les hasards, les rencontres forgent une destinée... Parce que quand on a le goût de la chose, quand on a le goût de la chose bien faite, le beau geste, parfois on ne trouve pas l'interlocuteur en face je dirais, le miroir qui vous aide à avancer. Alors ça n'est pas mon cas, comme je disais là, puisque moi au contraire, j'ai pu ; et je dis merci au wiki, je lui dis merci, je chante le wiki, je danse le wiki... je ne suis qu'amour ! Et finalement, quand des gens me disent « Mais comment fais-tu pour avoir cette humanité ? », je leur réponds très simplement que c'est ce goût de l'amour, ce goût donc qui m'a poussé aujourd'hui à entreprendre une construction logicielle... mais demain qui sait ? Peut-être simplement à me mettre au service de la communauté, à faire le don, le don de soi.

Cet article décrit comment déclarer une ressource de type javax.jcr.Repository dans l’annuaire JNDI de Glassfish. Il s’agit en l’occurrence de pointer vers un serveur Jackrabbit (deployment model 3). La version Jackrabbit utilisée est 1.3.

  • Copier les librairies nécessaires à un client Jackrabbit dans le répertoire GLASSFISH_HOME/lib

  • jcr-1.0.jar, jackrabbit-api-1.3.jar, jackrabbit-classloader-1.3.jar, jackrabbit-core-1.3.jar, jackrabbit-jcr-commons-1.3.jar, jackrabbit-jcr-rmi-1.3.jar, jackrabbit-text-extractors-1.3.jar, commons-collections-3.1.jar, slf4j-log4j12-1.0.jar, concurrent-1.3.4.jar, lucene-core-2.0.0.jar

  • Dans la console d’administration de Glassfish, sélectionner le menu Resources → JNDI → Custom Resources

  • Ajouter une ressource JNDI (bouton New…​)

  • JNDI Name = jcr/myRepository

  • Resource Type = javax.jcr.Repository

  • Factory Class = org.apache.jackrabbit.rmi.client.ClientRepositoryFactory

Il faut maintenant configurer l’application web pour pointer vers la ressource créée précédemment :

Fichier web.xml

<resource-ref>
  <description>Repository JackRabbit</description>
  <res-ref-name>jcr/repository</res-ref-name>
  <res-type>javax.jcr.Repository</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

Fichier sun-web.xml

<resource-ref>
  <res-ref-name>jcr/repository</res-ref-name>
  <jndi-name>jcr/myRepository</jndi-name>
</resource-ref>

Après redémarrage de Glassfish, la ressource JCR peut être récupérée via un lookup JNDI :

InitialContext ctx = new InitialContext();
Repository repository = (Repository) ctx.lookup("java:comp/env/jcr/repository");