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.