<?xml version="1.0" encoding="UTF-8"?>
<ajxp_plugin label="CONF_MESSAGE[Caching Driver]" description="CONF_MESSAGE[Setup the caching system]" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="file:../core.ajaxplorer/ajxp_registry.xsd">
    <class_definition classname="Pydio\Cache\Core\CoreCacheLoader" filename="plugins/core.cache/CoreCacheLoader.php"/>
    <client_settings>
        <resources>
            <i18n namespace="core.cache" path="plugins/core.cache/i18n"/>
        </resources>
    </client_settings>
    <server_settings>
        <global_param type="plugin_instance:cache" name="UNIQUE_INSTANCE_CONFIG" group="CONF_MESSAGE[Cache Store Instance]"
                      default="cache.doctrine" label="CONF_MESSAGE[Instance]" description="CONF_MESSAGE[Choose the configuration plugin]" mandatory="false"/>
        <global_param group="CONF_MESSAGE[Cache Store Instance]" name="CORE_CACHE_DISABLE_NODES" type="boolean" label="CONF_MESSAGE[Disable Nodes Caching]"
                      description="CONF_MESSAGE[Cache files and folders data in memory. Depending on the amount of data and on the caching method used (remote cache), this can be disabled.]" default="false"/>
    </server_settings>
    <registry_contributions>
        <actions>
            <action name="cache_service_expose_stats">
                <rightsContext adminOnly="true" noUser="false" read="true" userLogged="only" write="true"/>
                <processing>
                    <serverCallback methodName="exposeCacheStats" restParams="/namespace"/>
                </processing>
            </action>
            <action name="cache_service_clear_cache">
                <rightsContext adminOnly="true" noUser="false" read="true" userLogged="only" write="true"/>
                <processing>
                    <serverCallback methodName="clearCacheByNS" restParams="/namespace"/>
                </processing>
            </action>
            <action name="clear_cache_key" skipSecureToken="true">
                <processing>
                    <serverCallback methodName="clearCacheKey" restParams="/namespace"/>
                </processing>
            </action>
        </actions>
        <hooks>
            <serverCallback methodName="loadNodeInfoFromCache" hookName="node.info.start"/>
            <serverCallback methodName="cacheNodeInfo" hookName="node.info.end"/>
            <serverCallback methodName="clearNodeInfoCache" hookName="node.change" defer="true"/>
            <serverCallback methodName="clearNodeInfoCache" hookName="node.meta_change" defer="true"/>
            <serverCallback methodName="onWorkspaceUpdate" hookName="workspace.after_update" defer="true"/>
            <serverCallback methodName="onWorkspaceDelete" hookName="workspace.after_delete" defer="true"/>
        </hooks>
    </registry_contributions>
</ajxp_plugin>
