Outils pour utilisateurs

Outils du site


public:import:specs_custom_import

Personnalisation de l'import

Objectif

L’utilisateur doit pouvoir ajouter ou modifier les modules d'imports de TXM.

Les modules d'imports de TXM sont principalement codés en Groovy (ils utilisent quelques outils qui sont codés en Java) ce qui permet en théorie de les modifier sans avoir à recompiler tout ou partie de TXM.

Hors dans TXM version actuelle (0.7.8) les scripts Groovy sont livrés dans la Toolbox uniquement sous une forme compilée et de fait ne sont pas directement accessibles pour être lus ou modifiés.

Le JAR de la Toolbox contient effectivement les sources des scripts mais ils ne sont pas encore utilisables.

Dans TXM 0.7.8, seuls les scripts d'appel des modules d'import sont accessibles sous forme Groovy.

Solution

Un module d'import de TXM est composé de :

  • un script xxxLoader.groovy qui se trouve dans le répertoire $TXMHOME/scripts/import
    • ce script appelle des scripts secondaires correspondant aux phases de l'import : IMPORTER, ANNOTATE, COMPILER et PAGER
      • ces scripts appellent d'autres scripts secondaires comme le tokenizer, l'injecteur de metadonnées, etc.
  • une entrée de menu principal “Fichier > Import > xxx” qui ouvre l'éditeur formulaire d'import avec le script xxxLoader.groovy
    • l'import se lance par le formulaire

Commande d'import personnalisée

Par macro

On peut exécuter un script d'import à l'aide d'une macro qui reproduit ce que fait la commande ExecuteScriptImport.

La macro “ExecuteImportScript” a été intégrée au setup TXM 0.7.8 (INSERT DATE HERE) et se trouve dans le répertoire de macro “import”

Intégrée

Ajouter un nouveau mode d’exécution à la commande RCP (org.txm.rcpapplication.commands.ExecuteScriptImport) qui lance les scripts xxxLoader.groovy.

Par défaut cette commande attend un paramètre (org.txm.rcpapplication.commands.commandParameter3) dont la valeur est le nom du fichier Groovy du répertoire $TXMHOME/scripts/import a exécuter.

En cas d'absence du paramètre, la commande doit demander à l'utilisateur de sélectionner un script Groovy.

La commande peut alors être disponible à partir du menu “Fichier > Import > Autre…” en fin de choix.

Modifier un module d'import

En éditant les fichiers Groovy du répertoire $TXMHOME/scripts/groovy/user/org/importer/ il est possible de modifier le comportement d'une sous classe du module d'import.

Par exemple, on peut changer le tokeniseur du module d'import TXT en modifiant le fichier $TXMHOME/scripts/groovy/users/org/txm/txt/importer.groovy :

remplacer les lignes suivantes (ligne 219 à 231) :

println("Tokenizing "+txmDir.listFiles().length+" files")
		for (File pfile : txmDir.listFiles()) {
			print "."
			File tfile = new File(tokenizedDir, pfile.getName());

			SimpleTokenizerXml tokenizer = new SimpleTokenizerXml(pfile, tfile, lang);
			tokenizer.setStartTag("text")
			if (!tokenizer.process()) {
				println("Failed to tokenize file "+pfile)
				tfile.delete()
			}
		}
		println ""

par

for (File pfile : txmDir.listFiles()) {
			print "."
			File tfile = new File(tokenizedDir, pfile.getName());

			MONTOKENIZER tokenizer = new MONTOKENIZER(pfile, tfile, lang);
			if (!tokenizer.process()) {
				println("Failed to tokenize file "+pfile)
				tfile.delete()
			}
		}
		println ""
public/import/specs_custom_import.txt · Dernière modification: 2019/03/26 17:18 par matthieu.decorde@ens-lyon.fr