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. 32) 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"
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 des 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éé

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éé

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éé

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"db Exemple de fichier : tables.xml
Fichier "/properties/db/data.xml"dbExemple de fichier : data.xml
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 :

The Pluto Ant Tasks have been created to assist those not using maven with the assembly, deployment, and publishing of Maven

Lien vers le projet Apache : Pluto

Tâches "uportal-ant-tasks"

deploy-ear

Tâche spécifique à Tomcat pour faciliter le déploiement :

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