Groovy script for batch importing XML-Files into the JCR of Magnolia (CMS)

Der Importierer der JCR Tools ist sehr beschränkt. Man kann nur eine einzige Datei importieren und muss immer aufs Neue den dazu passenden Workspace auswählen. Bei vielen Dateien kann dies ganz schön nerven und lange dauern. Deshalb habe ich mal eben ein Skript geschrieben. Es importiert automatisch alle in einem Ordner enthaltenen XML-Dateien in den richtigen Workspace.

import info.magnolia.importexport.DataTransporter
import javax.jcr.ImportUUIDBehavior
import groovy.io.FileType

def list = []
def dir = new File('/home/marc/EOS_01112018/')
dir.eachFileRecurse (FileType.FILES) { file ->
  list << file
}

list.each {
  path = it.path
  fileName = it.name
  print 'fileName = ' + fileName
  // currently path may not contain "(" and "."
  int indexOf = fileName.lastIndexOf(" (")
  if (indexOf < 0) indexOf = fileName.indexOf(".")
  workspace = fileName.substring(0, indexOf)
  println ' workspace = ' + workspace


hm = ctx.getJCRSession(workspace)
workspaceRoot = hm.getRootNode()
    
xmlFile = new File(path)
DataTransporter.importFile(xmlFile, workspace, '/', false,
ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW, true, true)
    
}



Als Freiberufler (Freelancer) arbeite ich seit 2013 mit Magnolia (CMS). Vorher lag mein Schwerpunkt bei OpenCMs und Escenic.