Pages enfant
  • a) Architecture tâches ANT (esup 4)

Vous regardez une version antérieure (v. /wiki/pages/viewpage.action?pageId=257949796) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 40) afficher la version suivante »

Le but de cette page est de décrire le package afin de mieux en maitriser son fonctionnement. Deux niveaux de documentation sont rédigés ci-dessous :

  • Description des commandes ANT du package et de leurs objectifs
  • Détails sur les briques techniques utilisées

Description sommaire

  • Les tâches en gras sont les tâches principales. Les tâches en gris sont des tâches secondaires ;
  • Dans les schémas, les numéros représentent l'ordre d'appel.


     

Tâche ANT

Description sommaire

initportal

Exécute toutes les tâches nécessaires au déploiement du portail et prépare la base de données du portail :

  1. Fait appel à la tâche "deploy-ear"
  2. Fait appel à la tâche "initdb"

initdb

Supprime toutes les tables et prépare la base de données du portail :

  1. Fait appel à la tâche "db"
  2. Fait appel à la tâche "db-hibernate"
  3. Fait appel à la tâche "db-import"

db-update

Met à jour une base de données existante pour passer à la version supérieure :

  1. Fait appel à la tâche "db-hibernate-update"

db

Charge certaines tables et données :

  1. Charge le fichier des tables "/properties/db/tables.xml"
  2. Charge le fichier des données "/properties/db/data.xml"
  3. À l'aide des deux fichiers précédemment chargés, créé un script de création de tables en faisant appel à la méthode "db" de la classe "portalShellBuildHelper" du package
  4. Fait appel à la tâche "up-shell" avec comme paramètre le script précédemment créé
db-hibernate

Supprime et créé les tables gérées par Hibernate :

  1. Fait appel à la tâche "db-hibernate-portal"
  2. Fait appel à la tâche "db-hibernate-raw-events"
  3. Fait appel à la tâche "db-hibernate-aggr-events"
db-hibernate-update

Effectue les modifications de la base de données (dans le cas des montées de version du portail) pour le portail et les schémas d'évènements :

  1. Fait appel à la tâche "db-hibernate-portal-update"
  2. Fait appel à la tâche "db-hibernate-raw-events-update"
  3. Fait appel à la tâche "db-hibernate-aggr-events-update"
db-hibernate-portal

Supprime et créé les tables gérées par Hibernate pour le portail :

  1. Créé un script de suppression de tables en faisant appel à la méthode "hibernateDrop" de la classe "portalShellBuildHelper" du package
  2. Complète le script avec la création de tables en faisant appel à la méthode "hibernateCreate" de la classe "portalShellBuildHelper" du package
  3. Fait appel à la tâche "up-shell" avec comme paramètre le script précédemment créé
db-hibernate-raw-events

Supprime et créé les tables gérées par Hibernate  pour le stockage des évènements bruts (à usage statistique) du portail :

  1. Fait appel à la tâche "db-hibernate-portal" avec comme paramètre "databaseQualifier" la valeur "RawEventsDb"
db-hibernate-aggr-events

Supprime et créé les tables gérées par Hibernate  pour le stockage des évènements agrégés (à usage statistique) du portail :

  1. Fait appel à la tâche "db-hibernate-portal" avec comme paramètre "databaseQualifier" la valeur "AggrEventsDb"
db-hibernate-portal-update

Effectue les changements demandés (sur la base de données du portail - lors des montées de version) pour le schéma du portail :

  1. Créé un script de modification de base en faisant appel à la méthode "hibernateUpdate" de la classe "portalShellBuildHelper" du package
  2. Fait appel à la tâche "up-shell" avec comme paramètre le script précédemment créé
db-hibernate-raw-events-update

Effectue les modifications de la base de données (dans le cas des montées de version du portail) pour le stockage des évènements bruts du portail :

  1. Fait appel à la tâche "db-hibernate-portal-update" avec comme paramètre "databaseQualifier" la valeur "RawEventsDb"
db-hibernate-aggr-events-update

Effectue les modifications de la base de données (dans le cas des montées de version du portail) pour le stockage des évènements élaborés du portail :

  1. Fait appel à la tâche "db-hibernate-portal-update" avec comme paramètre "databaseQualifier" la valeur "AggrEventsDb"

db-import

Importe le contenu de fichier XML par défaut dans la base de données :

  1. Fait appel à la tâche "db-import-required"
  2. Si la variable "noDefaultData" n'est pas valuée, fait appel à la tâche "db-import-default"
  3. Si la variable "noQuickstartData" n'est pas valuée, fait appel à la tâche "db-import-quickstart"

En fonction de la tâche, les fichiers d'un repertoire uportal-war/src/main/data/***_entities (cf. ci-dessous) seront importées en base de données. Ces répertoires contiennent des données qui seront importées en base lors de l'import. Ces données correspondent à des fichiers XML contenant les valeurs par défaut à entrer dans la base et nécessaires au bon démarrage d'uPortal 4.
Les fichiers XML des répertoires "entities" sont répartis dans des dossiers pour plus de lisibilité mais sont tous traités, et appellent des scripts Cernunnos qui géreront l'import de données.
Il est possible de jouer sur les données importées en modifiant les fichiers XML ou directement les scripts Cernunnos pour modifier les données importées en base.

Pour plus d'informations sur le fonctionnement de Cernunnos :
https://wiki.jasig.org/display/UPM30/Cernunnos+Overview

http://code.google.com/p/cernunnos/

db-import-required

Importe en base de données les entités requises :

  1. Fait appel à la tâche "data-import" avec comme répertoire des données le répertoire "uportal-war/src/main/data/required_entities"
db-import-default

Importe en base de données les entités par défaut :

  1. Fait appel à la tâche "data-import" avec comme répertoire des données le répertoire "uportal-war/src/main/data/default_entities"
db-import-quickstart

Importe en base de données les entités de "démarrage rapide" :

  1. Fait appel à la tâche "data-import" avec comme répertoire des données le répertoire "uportal-war/src/main/data/quickstart_entities"

deployPortletApp

Déploie le portlet (dans le conteneur de servlet) dont le .war est précisé en paramètre :

  1. Assemble le portlet à l'aide de la tâche "AssembleTask" de pluto
  2. Fait appel à la tâche "fastWarDeploy" avec comme paramètre le portlet

deploy-ear

Déploie le portail, les librairies et les portlets dans le conteneur de servlet :

  1. Si demandé (cleanShared à true), fait appel à la tâche "clean-shared"
  2. Ajoute "uportal-ant-tasks/pom.xml" à la liste des dépendances maven
  3. Créé le répertoire "shared/lib" à la racine de tomcat
  4. Déploie l'ear dans tomcat (à l'aide de la tâche précédemment chargée dans uportal-ant-tasks)

clean-shared

Supprime le contenu du répertoire "shared/lib" de tomcat (supprime les librairies partagées) :

  1. Purge le répertoire concerné

deploy-war

Déploie la webapp uPortal dans le conteneur de servlet :

  1. Fait appel à la tâche "fastWarDeploy" avec comme paramètre le war de uPortal

fastWarDeploy

Déploie le .war en paramètre dans le conteneur de servlet :

  1. Si spécifié (removeExisting à true), supprime le .war existant
  2. Copie le .war dans le conteneur de servlet (extractWars à false) ou extrait le .war à côté des autres webapp (extractWars à true).

Note : Techniquement le traitement est différent sous Windows et sous Centos.

data-export

Exporte toutes les données vers un fichier XML :

  1. Créé un script de sélection de données en faisant appel à la méthode "dataExport" de la classe "portalShellBuildHelper" du package
  2. Fait appel à la tâche "up-shell" avec comme paramètre le script précédemment créé

Exemple : ant data-export -dir=some/export/directory

data-import

Importe en base de données le ou les fichier(s) XML en paramètre :

  1. Créé un script d'insertion en base en faisant appel à la méthode "dataImport" de la classe "portalShellBuildHelper" du package
  2. Fait appel à la tâche "up-shell" avec comme paramètre le script précédemment créé

Exemple 1 : ant data-import -Ddir=some/directory
Exemple 2 : ant data-import -Dfile=some/path/to/xml

data-delete

Supprime les données spécifiées (Type et Id en paramètre) :

  1. Créé un script de suppression de la base en faisant appel à la méthode "dataDelete" de la classe "portalShellBuildHelper" du package
  2. Fait appel à la tâche "up-shell" avec comme paramètre le script précédemment créé

Exemple : ant data-delete -Dtype=MATABLE -Dsysid=MONIDTECHNIQUE

up-shell

Exécute le script en paramètre :

  1. Exécute la classe "PortalShell" et donne le script en paramètre (délègue l'exécution du script)

Description détaillée

Brique

Utilisation

Description

Fichier "/properties/db/tables.xml"

Fichier "/properties/db/data.xml"

db

Fichiers de définition des tables / données du portail. Data-import n'a pas été utilisé car les deux fichiers sont intimement liés, l'un concerne la structure des tables et ne peut donc pas être utilisé par data-import. De plus, DBLoader a été choisi pour effectuer cette tâche (DBLoader prend en entrée un fichier de structure et un fichier de données).

Exemple de fichier : tables.xml, data.xml

Lien vers la documentation des properties uPortal : https://wiki.jasig.org/display/UPM/Properties

Classe "portalShellBuildHelper"

db / db-hibernate-portal
db-hibernate-portal-update
data-export / data-import
data-delete

Classe utilitaire d'exécution de scripts :

Lien vers l'API :
http://developer.jasig.org/projects/uportal/4.0.6/apidocs/org/jasig/portal/shell/PortalShellBuildHelper.html

Cernunnos est également utilisé pour réaliser les imports / exports de la base de données :
https://wiki.jasig.org/display/UPM30/Cernunnos+Overview
http://code.google.com/p/cernunnos/

Répertoire "uportal-war/src/main/data/required_entities"db-import-required

Répertoire contenant les données des entités obligatoires :

Exemple de répertoire : required_entities

Répertoire "uportal-war/src/main/data/default_entities"db-import-default

Répertoire contenant les données des entités par défaut :

Exemple de répertoire : default_entities

Répertoire "uportal-war/src/main/data/quickstart_entities"db-import-quickstart

Répertoire contenant les données d'exemples d'entités pour un démarrage rapide :

Exemple de répertoire : quickstart_entities

Tâche "AssembleTask" de plutodeployPortletApp

Tâche ant assimilant le packaging et le déploiement à celui de maven :

Lien vers le projet Apache : Pluto

Tâches "uportal-ant-tasks"

deploy-ear

Tâche spécifique à Tomcat pour faciliter le déploiement de l'EAR dans tomcat:

Lien vers la documentation de l'API : TomcatEarDeployerTask

Maven

deploy-ear / deploy-war
deployPortletApp / fastWarDeploy

Maven permet la gestion et l'automatisation du déploiement d'uPortal :

http://fr.wikipedia.org/wiki/Apache_Maven

Portlet 

Composant que l'utilisateur peut afficher où il veut dans la vue personnalisée de son portail :

http://fr.wikipedia.org/wiki/Portlet

Note sur la méthode de génération des schémas
Logiciel utilisé : grand-ui-0.7.2 (fichier en PJ => https://www.esup-portail.org/download/attachments/257949796/grand-ui-0.7.2.7z?api=v2)
Il faut donner le fichier build.xml en entrée

Notes : 
- Le logiciel ne fonctionne que sur machine 32 bits
- Il est préférable de travailler sur un copie du build.xml (afin de supprimer les "depends='prodPrompt'") afin de ne pas polluer le schéma
  • Aucune étiquette