Ce guide traite de la migration technique de votre application Ametys CMS d'une version 4.2.x à 4.3.0.
Reportez-vous également au guide de migration graphique et au guide de migration des données.
Reportez-vous au tableau de compatibilité des plugins et incrémentez les versions de vos plugins (prendre pour chaque plugin la version la plus récente compatible 4.3)
Le fichier WEB-INF/param/scripts.xml permet de définir ses propres fonctions de scripts pouvant être exécutées depuis la console de script.
Le format XML de ce fichier a changé en 4.3. Si vous possédez votre propre fichier, vous devez donc le migrer vers le format 4.3.
Reportez-vous à la page Editeur de script
Pour que l'import des contenus d'une archive fonctionne, le workflow des contenus (de tout type) doit contenir l'action avec id=0.
Vérifiez que les fichiers de workflow se trouvant dans le répertoire WEB-INF/param/workflows contiennent bien cette action et si non, ajoutez-là dans la section <initial-actions> comme dans l'exemple ci-dessous :
<action id="0" name="plugin.default-workflow:WORKFLOW_ACTION_CREATE"> <results> <unconditional-result old-status=" " status=" " step="1" /> </results> </action>
Les mots clés suivants sont réservés et ne peuvent plus être utilisés comme nom de champs dans vos types de contenus :
creator, icon-small, workflow-step, rowBodyLoaded, creationDate, lastMajorValidationDate, contributorDisplay, site, contributor, lastValidationDate, rowBodyContent, firstValidationDate, workflow-step-id, icon-glyph, icon-decorator, name, lastModified, id, workflow-icon-small.
Si vos types de contenus déclarent un champ nommé avec un de ces mots réservés, votre application ne démarre pas, un log d'erreur précisera quel champs rentre en conflit avec cette liste.
Vous devrez alors :
Si le conflit concerne l'attribut "site", le guide migration des données fournit un exemple de script pour migrer ce champ "site" vers un autre attribut "location".
Dans un type de contenu, si une vue (metadata-set) référence un attribut (metadata-ref) qui n'est pas défini par ce type, une exception est lancée et Ametys démarre en mode sans échec.
Dans ce cas, il suffit de supprimer ces références dans les vues concernées.
Le menu "Table de référence" exclus désormais les tables de référence "privées".
Si vos tables de références n'apparaissent plus dans ce menu c'est qu'elles sont certainement déclarées comme "privé" alors qu'elles ne le devraient pas.
Recherchez dans la définition de vos types de contenus, les types contenant l'étiquette <cms:tag>reference-table</cms:tag>.
Pour chacun d'eux, supprimez l'étiquette privée <cms:tag>private</cms:tag> si elle s'y trouve alors que vous souhaitez accéder à vos tables de référence via le menu "Table de référence".
Si votre application possède ces propres plugins (hormis les plugins default-** et welcome), vous devrez vérifier toutes les "feature" qui en désactivent d'autres. Pour cela, recherchez dans les fichiers plugin.xml de ces plugins le mot clé "deactivates" :
<feature name="..." deactivates="..."> [...] </feature>
Dans certains cas, le comportement souhaité n'est pas une désactivation (deactivates) mais une surcharge (overrides). Chaque cas devra être étudié et éventuellement modifié.
Les fichiers de logs sont désormais encodés en UTF-8.
Ouvrez le fichier WEB-INF/log4j.xml (et éventuellement WEB-INF/log4.xml.deliver) des applications CMS et site et ajoutez:
<appender ...> <param name="Encoding" value="UTF-8" /> <!-- à faire sur tous les <appender> en début d'appender --> ... </appender>
Par ailleurs, fin d'être en mesure de suivre les migrations automatiques (nouveauté 4.3), il est conseillé de mettre le niveau de log du point d'extension concerné en INFO dans le fichier WEB-INF/log4j.xml (et WEB-INF/log4j.deliver.xml le cas échéant) :
<appender name="migration" class="org.apache.log4j.rolling.RollingFileAppender"> <param name="Encoding" value="UTF-8" /> <rollingPolicy class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> <param name="FileNamePattern" value="${ametys.home.dir}/logs/migration-%d.log"/> </rollingPolicy> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %-5p [%c] (%t;%X{requestURI}) %m%n"/> </layout> <filter class="org.ametys.core.util.AmetysExceptionFilter"/> </appender> <category name="org.ametys.core.migration.MigrationExtensionPoint" additivity="false"> <priority value="info"/> <appender-ref ref="migration"/> </category>
Cette manipulation doit être faite sur l'application CMS et sur l'application SITE
Si votre application est une application Ametys ODF, suivez le guide de migration de la version 4.1 à la version 4.3 de l'ODF
Suivant les plugins Ametys que vous utilisez, vous devez suivre les migrations techniques et/ou graphiques propres à chaque plugin :
Le serveur Solr doit être réinstallé.
Télécharger la version 4.3 http://releases.ametys.org/release/org.ametys/solr-app/4.3.x/4.3.0/zips/
Vérifier que le fichier setenv-solr.sh positionne Java 11 dans SOLR_JAVA_HOME (ou la jvm par défaut qui serait java11)
Après redémarrage du serveur Solr puis Ametys, lancez une indexation totale.