Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 20/03/2014 17:53:22

François Jannin
Guest
From: Toulouse
Registered: 21/10/2010
Posts: 35

Désactiver le cache inputData

Bonjour,

J'utilise un RequestParametersInputData qui permet de dynamiser le contenu d'une page en fonction de paramètres HTTP.
Cet inputData est déclaré dans un fichier inputdata.xml :

<input-data-collection>
        <input-data>org.ametys.web.inputdata.SitemapInputData</input-data>
        <input-data>org.ametys.web.tags.inputdata.FilteredContentsInputData</input-data>
        <input-data>org.ametys.web.tags.inputdata.FilteredPagesInputData</input-data>
         <input-data>[b]com.anwrt.inpt.siteweb.inpt.RequestParametersInputData[/b]</input-data>
</input-data-collection>

Cela fonctionnait à l'époque mais ne fonctionne plus dans les dernières versions d'Ametys :
Les paramètres sont biens pris en comptes et présents dans l'inputData à la première génération (premier accès à la page), mais ensuite l'inputData ne bouge plus, même si les paramètres ne sont plus envoyées, ils demeurent dans l'inputData, et donc adieu le côté dynamique.

Il semble que l'inputData soit mis en cache, et j'ai vu cette feature dans le jar ametys-web-3.4.1.jar :

<feature name="inputdata.cache">
        <config>
            <param-ref id="page.element.cache.disabled"/>
        </config>
        <components>
            <component class="org.ametys.web.cache.pageelement.PageElementCache" 
                       role="org.ametys.web.cache.pageelement.PageElementCache/inputData"
                       logger="org.ametys.web.cache.pageelement.PageElementCache.inputData"/>
        </components>
        <extensions>
            <extension point="org.ametys.cms.observation.ObserverExtensionPoint"
                       id="org.ametys.web.cache.pageelement.InvalidatePageElementCacheObserver" 
                       class="org.ametys.web.cache.pageelement.InvalidatePageElementCacheObserver">
                <cache>org.ametys.web.cache.pageelement.PageElementCache/inputData</cache>
                <policies>org.ametys.web.cache.pageelement.PageElementCachePolicyExtensionPoint/inputData</policies>
            </extension>
        </extensions>
    </feature>

Peux-t-on désactiver le cache InputData en commentant ou en modifiant le paramétrage de cette extension ?
Merci pour toute piste ou avis.

Last edited by François Jannin (21/03/2014 10:35:52)

Offline

#2 21/03/2014 13:32:39

Cédric Damioli
Ametys Product Manager
From: Toulouse
Registered: 10/08/2010
Posts: 293

Re: Désactiver le cache inputData

On peut tout à fait désactiver le cache par parties (case à cocher dans la conf de l'admin), mais ce n'est pas recommandé.

Depuis la 3.4, les InputData ont une méthode isCacheable que vous avez forcément du implémenter, sinon ça ne compile plus. Cette méthode permet, en fonction de la page et du contexte courant, de déterminer si le résultat de l'inputdata doit être mis en cache ou pas.

Offline

#3 21/03/2014 16:57:14

François Jannin
Guest
From: Toulouse
Registered: 21/10/2010
Posts: 35

Re: Désactiver le cache inputData

Merci Cédric, j'ai testé en pre-prod et les deux solutions  fonctionnent !

J'ai opté pour la seconde solution et J'ai recompilé ma classe avec la méthode manquante.

Offline

Board footer

Powered by FluxBB