Bonjour Frédéric,

Bonjour,

Bravo à Anyware pour la réactivité !

Pour  les   requêtes  effectuées  en  XQuery,   tu  peux  utiliser
XQueryGenerator qui  est cacheable avec un  paramètre optionnel de
durée de validité.

Je le cherchais dans les sources Cocoon...
Donc, dans Exist, c'est déjà ça, new ExpiresValidity().

> Attention à  getLastModified(), cela  n'est pas  satisfaisant pour
> une XQuery car pour calculer la date de modification on est obligé
> de  rééxecuter la  XQuery.

Vu la quantité d'informations qu'ils maintiennent, il peuvent probablement faire mieux. J'ai poussé sur la liste Exist en espérant un commit pour avoir un getLastModified() au niveau d'une collection.

En ce cas, si la collection de contexte d'une xquery n'a pas changé, les résultats seront les mêmes ?

Là   je   n'ai   pas   trop   compris,   pourquoi   as-tu   besoin
de   récupérer   user  et   password   alors   qu'ils  sont   déjà
configurés    correctement   dans    cocoon.xconf   sur    <driver
class="org.exist.xmldb.DatabaseImpl"...>?

Dans le contexte Sitemap, inutile, tout fonctionnne.

Cependant, pour certaines opérations, il est nécessaire de pouvoir récupérer en JAVA une Collection xmldb (pour par exemple un service UserManagement)

Comme XMLDBSource à tout le nécessaire pour récupérer une collection, selon les informations qu'aura autorisé un administrateur dans un cocoon.xconf, et ne sachant pas lire en JAVA un cocoon.xconf, j'ai trouvé cette solution pratique (pour être franc, j'ai seulement recompilé avec "public" au lieu de "protected")

> Attention  aussi quand  l'application
> accède à eXist par le réseau, getLastModified() a alors le coût de
> transport et le coût de consultation  de la base de données XML, y
> compris quand  tu accèdes  simplement à  un document  sans requête
> XQuery ou XPath.

En effet, je n'y avais pas pensé. Je fonctionnne en local, mais s'il fallait être générique, il faudrait alors un truc du genre aller voir le lastModified toutes les secondes s'il s'agit d'une "RemoteCollection".


>>  *  Faut il  fabriquer un  TimeStampValidity à  chaque fois  que
>>  getValidity() est appelé ?
>
> Oui, cette  méthode n'est appellée  à nouveau que quand  la source
> n'est plus valide.

OK, donc pour ça c'est bon.

> En effet  difficile de l'intégrer  à Cocoon  si ça n'est  pas dans
> l'interface.

Normal.


--
Frédéric Glorieux (AJLSM, http://ajlsm.com)

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:[EMAIL PROTECTED]
Autres commandes : mailto:[EMAIL PROTECTED]

Répondre à