Migration 1.5 vers 1.6

Pour les exploitants qui ont personnalisé des workflows en 1.5, la migration de ori-oai-workflow 1.5 vers 1.6 nécessite quelques manipulations.

Les configurations ont en effet été restructurées en 1.6 pour plus de souplesse et pour faciliter le travail de l'exploitant / intégrateur.

Le cas de la migration de l'application ori-oai-workflow du site UNIT www.unit.eu est illustré ci-dessous.

Vous pouvez aussi vous inspirer du fichier example-spring-migration.xml (dont il est question à l'étape 2) qui a permis de verser les fiches de l'Université de Rennes1 produites par les workflows 1.5 locaux dans les workflows 1.6.

Etape 1 : restructuration des configurations spécifiques

La version 1.6 apporte la possibilité de configurer l'ensemble de son workflow (processus, type de métadonnées, catégories, groupes, rôles, permissions) dans un répertoire spécifique. Cela permet d'intégrer, maintenir et partager plus facilement ses configurations spécifiques.

UNIT avait modifié les configurations du workflow des ressources pédagogiques, workflow nommé "easy", avant la 1.6. Dans les versions antérieures à la 1.6, ce workflow comportait 3 états ("privé", "en attente de publication" et "publié").
UNIT l'avait modifié comme suit : ajout d'un quatrième état "archivé" ; quelques changements dans le processus du workflow ; configuration de groupes spécifiques à UNIT.

Restructuré selon la 1.6, le dossier correspondant au workflow UNIT (les spécificités UNIT pour ori-oai-workflow) est donné dans l'espace de collaboration. Vous trouverez toutes les infos et les pointeurs sur cette page.
Ce dossier correspond à la retranscription de toutes les configurations personnalisées par UNIT dans les versions précédentes.

Pour plus de précisions sur le correspondance des fichiers de configuration entre v1.5 et v1.6, vous pouvez vous reporter à la documentation suivante.

Etape 2 : fichier spring-migration.xml

La majorité des modifications entre la 1.5 et la 1.6 correspond en fait à une réorganisation de l'arborescence des dossiers et fichiers de configuration.

Parallèlement, les modifications touchent aussi la syntaxe de description des rôles et permissions : la syntaxe basée sur les puissances de 2 a été abandonnée en 1.6, pour laisser place à l'usage de simples chaines de caractères.
Les noms identifiants les workflows et les types de métadonnées ont aussi évolué.

Ainsi lors de l'étape 1, on aura fait attention de prendre en compte les rôles et permissions avec la nouvelle syntaxe, de modifier si besoin les noms identifiants les workflow / type de métadonnées.


La 2ème étape consiste donc à préparer cette modification au niveau de la base de données.

Pour ce faire, la migration 1.5 -> 1.6 se base sur un fichier de configuration (conf/properties/spring/spring-migration.xml) qui gère un mapping présentant les correspondances nécessaires.
Il est à reconfigurer pour votre migration en fonction de votre workflow.

Voici ce que contient celui d'UNIT :

<?xml version="1.0" encoding="UTF-8" ?>


<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
						http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
						http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

	<bean id="migrationService"
		class="org.orioai.workflow.services.migrations.MigrationService">
		<property name="wfDao" ref="wfDao" />
		<property name="userProfilDao" ref="userProfilDao" />
		<property name="indexingInfoDao" ref="indexingInfoDao" />
		<property name="genericDao" ref="genericDao" />
		<property name="xmlUtilsService" ref="xmlUtilsService" />
		<property name="xslTransformService" ref="xslTransformService" />
		<property name="migration15To16" ref="migration15To16" />
	</bean>


	<bean id="migration15To16" class="org.orioai.workflow.services.migrations.Migration15To16">

		<property name="workflows">
			<props>
				<prop key="easy">unit_lom</prop>
				<!-- <prop key="very_easy">dc_easy</prop> -->
			</props>
		</property>

 		<property name="metadataTypes">
			<props>
				<prop key="ressource_pedago">ressource_pedago_easy</prop>
				<!-- <prop key="document">dc_very_easy</prop> -->
			</props>
		</property>

		<property name="permissions">
			<props>
				<prop key="1">UNIT_LOM_ADMINISTRATION</prop>
				<prop key="2">UNIT_LOM_READ</prop>
				<prop key="4">UNIT_LOM_WRITE</prop>
				<prop key="8">UNIT_LOM_CREATE</prop>
				<prop key="16">UNIT_LOM_DELETE</prop>
				<prop key="32">UNIT_LOM_MODERATE</prop>
				<prop key="64">UNIT_LOM_CREATE_FORM</prop>
				<prop key="128">UNIT_LOM_FORM</prop>
				<prop key="256">UNIT_LOM_USE_DOC_FORM</prop>
				<prop key="512">UNIT_LOM_USE_RIGHTS_FORM</prop>
				<prop key="1024">UNIT_LOM_USE_TECHNICAL_FORM</prop>
				<prop key="2048">UNIT_LOM_USE_ENTITY_FORM</prop>
				<prop key="4096">UNIT_LOM_MANAGE_FORM</prop>
			</props>
		</property>
		<property name="roles">
			<props>
				<prop key="1">UNIT_LOM_AUTHENTICATED</prop>
				<prop key="2">UNIT_LOM_OWNER</prop>
				<prop key="4">UNIT_ANNOTATION_MODERATOR UNIT_LOM_MODERATOR</prop>
				<prop key="8">UNIT_LOM_ENTITY_MODERATOR</prop>
				<prop key="16">UNIT_LOM_RIGHTS_MODERATOR</prop>
				<prop key="32">UNIT_LOM_TECHNICS_MODERATOR</prop>
				<prop key="64">UNIT_LOM_ARCHIVER</prop>
				<prop key="128">UNIT_LOM_ADMINISTRATOR</prop>
				<prop key="256">UNIT_LOM_OWNER_PLUS</prop>
			</props>
		</property>
	</bean>


</beans>


A chaque puissance de 2 utilisée dans la configuration 1.5, on a associé la ou les chaines de caractères utilisées (fonction des affectations des permissions et rôles).

La mise à jour du nom du workflow est possible via le mapping suivant :

 		<property name="workflows">
			<props>
				<prop key="easy">unit_lom</prop>
				<!-- <prop key="very_easy">dc_easy</prop> -->
			</props>
		</property>

En effet afin de rester indépendant des autres configurations fournies par défaut dans ori-oai-workflow 1.6, UNIT a décidé de changer le nom du workflow. Le workflow utilisé se nommait "easy", il a finalement était renommé (cf workflows.xml) en "unit_lom".

Un changement similaire des metaDataTypes a été jugé nécessaire, pour les mêmes raisons:

 		<property name="metadataTypes">
			<props>
				<prop key="ressource_pedago">ressource_pedago_easy</prop>
				<!-- <prop key="document">dc_very_easy</prop> -->
			</props>
		</property>

Etape 3 : migration effective

Une fois le fichier "spring-migration.xml" finalisé (la procédure sera d'autant plus longue que l'on utilise plus de workflows/types de métadonnées), on passe à la migration effective de ori-oai-workflow-spring (au niveau des données).

Avant de procéder à cette dernière étape, on s'assurera d'avoir une sauvegarde de la base de données ori-oai-workflow (on aura par sécurité aussi sauvegardé tout le répertoire ori-oai-workflow 1.5 source utilisé jusque-là pour déployer ori-oai-workflow).

On lance donc simplement

ant upgrade

depuis le répertoire source ori-oai-workflow 1.6 contenant nos configurations spécifiques 1.6.
Cela a pour conséquence de modifier la base de données au mieux et de mettre à jour l'index local d'ori-oai-workflow à la suite .

  • No labels