Fichier runtime.xml

Le fichier runtime.xml est obligatoirement présent dans le répertoire WEB-INF/param de l'application back-office (cms) et de l'application front-office (site).

Il définit principalement le choix des extensions "simples". En tant qu'intégrateur vous serez certainement amené à modifier ce fichier, soit manuellement, soit au travers de l'outil "Plugins et Workspaces" accessible depuis l'interface d'administration  (voir Gestion des plugins et des workspaces).

C'est dans ce fichier que vous définirez notamment :

  • le gestionnaires des utilisateurs (base SQL, LDAP, statique, ...)
  • le gestionnaires des groupes (base SQL, LDAP, statique, ...)
  • le mode d'authentification (basic, CAS, Jcif, ...)
  • le gestionnaires des droits (à plat, hiérarchique, ...)

Application back-office (cms)

Voici ci-après un exemple de fichier runtime.xml pour l'application CMS :

<runtime xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ametys.org/Runtime/2.0/runtime.xsd">
    
    <application>
        <version>3.4.0</version>
        <date>20120808T1714 GMT</date>
    </application>
    
	<plugins>
        <exclude>
            <feature>core/runtime.sqlmap</feature>
            <feature>core/runtime.core.has_right_sitemap_components</feature>
            ...
        </exclude>
    </plugins>

    <workspaces default="web"/>
    
    <extensions>
        <org.ametys.runtime.authentication.CredentialsProvider>org.ametys.runtime.plugins.core.authentication.FormBased</org.ametys.runtime.authentication.CredentialsProvider>
        <org.ametys.runtime.user.UsersManager>org.ametys.runtime.plugins.core.user.CoreModifiableCredentialsAwareJdbc</org.ametys.runtime.user.UsersManager>
        <org.ametys.runtime.group.GroupsManager>org.ametys.runtime.plugins.core.group.ModifiableJdbcCore</org.ametys.runtime.group.GroupsManager>
		<org.ametys.runtime.right.RightsManager>org.ametys.runtime.plugins.web.right.WebHierarchicalProfileBased</org.ametys.runtime.right.RightsManager>
		...
	</extensions>

</runtime>

On y retrouve :

  • Le numéro de version et la date de livraison (format ISO8601) de l'application dans la balise <application>
    Ces informations sont affichées dans le pied de page de la partie administration.



    La balise <version> peut contenir la valeur @VERSION@ afin d'être renseignée automatiquement par un script lors d'une livraison. De même <date> peut contenir @DATE@

  • La liste des features (fonctionnalités) à désactiver dans <plugins> et <exclude>
    Par exemple, dans le cadre d'une application web, la feature "link-resolver" apportée par le plugin "cms" et permettant de résoudre les liens, doit être désactivée pour utiliser celle du plugin "web" (qui permet de résoudre plus de types de liens). Cette feature est donc exclue: <feature>cms/link-resolver</feature>

     <plugins>
            <exclude>
                <feature>core/runtime.sqlmap</feature>
                <feature>core/runtime.core.has_right_sitemap_components</feature>
                <feature>workflow/workflow-store</feature>
                <feature>cms/link-resolver</feature>
                <feature>cms/content-clientside-targetfactory</feature>
                <feature>cms/userinterface.rights.assignment.tool</feature>
                <feature>cms/org.ametys.cms.content.global.consistency</feature>
                <feature>cms/org.ametys.cms.content.consistency.scheduler</feature>
                <feature>cms/userinterface.content</feature>
                <feature>cms/docbookUpdateHandler</feature>
            </exclude>
    </plugins>
    



  • Le workspace par défaut : <workspaces default="web"/>. Ne modifiez pas cette information !

  • Le choix des points d'extension dit "simples" dans la balise <extensions>. Un point d'extension simple est un point d'extension pour lequel une seule implémentation peut être active. Il faut donc choisir celle qui sera utilisée.
    Le gestionnaire des utilisateurs est un exemple de point d'extension simple.



    Dans le fichier, le choix d'un point d'extension s'écrit de la manière suivante :

    <identifiant_du_point_d_extension>identifiant_de_l_extension_choisie</identifiant_du_point_d_extension>
    


    Rendez-vous sur la page Référence des points d'extensions pour connaitre la liste des points d'extension simples et leur rôle.

 

  • Éventuellement, une classe java à exécuter au démarrage de l'application dans la balise <initClass>

Application front-office (site)

Les règles vues ci-dessus sont également valables pour le fichier runtime.xml de l'application front-office. Ce dernier est cependant plus léger car le site contient moins de points d'extension.

Chaque fichier runtime.xml d'une application site doit déclarer la classe d'initialisation org.ametys.site.Init pour la bonne initialisation de l'application (cette classe java permet de vider le cache statique du site).

Le workspace par défaut est le workspace "site".

Voici ci-après un exemple de fichier runtime.xml pour l'application front-office:

<runtime  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:noNamespaceSchemaLocation="http://ametys.org/Runtime/2.0/runtime.xsd">
    
    <application>
        <version>@VERSION@</version>
        <date>@DATE@</date>
    </application>
    
    <initClass>org.ametys.site.Init</initClass>
    
    <plugins>
        <locations>
            <location>modules</location>
        </locations>
        <exclude>
            <feature>core/runtime.sqlmap</feature>
            <feature>core/runtime.datasource.core</feature>
            <feature>core/runtime.authentication.impl.formbased</feature>
        </exclude>
    </plugins>
    
    <workspaces default="site"/>
    
    <extensions>
        <org.ametys.runtime.authentication.CredentialsProvider>org.ametys.site.plugins.site.authentication.FormBased</org.ametys.runtime.authentication.CredentialsProvider>
        <org.ametys.runtime.user.UsersManager>org.ametys.templates.demo.user.Static</org.ametys.runtime.user.UsersManager>
		<org.ametys.runtime.plugins.core.userpref.DefaultUserPreferencesStorage>org.ametys.runtime.plugins.core.userpref.EmptyUserPreferencesStorage</org.ametys.runtime.plugins.core.userpref.DefaultUserPreferencesStorage>
    </extensions>
</runtime>