Магнолия Groovy Access Taskmanager - PullRequest
       7

Магнолия Groovy Access Taskmanager

0 голосов
/ 28 марта 2019

Я бы хотел получить доступ к диспетчеру задач в Magnolia CMS из скрипта Groovy. Причина - архивировать старые задачи в системе (наполовину автоматически).

То, что я пробовал, выглядит примерно так:

import info.magnolia.task.*
import info.magnolia.jcr.predicate.NodeTypePredicate;
import info.magnolia.importexport.DataTransporter

repository = "tasks"
nodeType = "mgnl:task"

session = ctx.getJCRSession(repository)
collection = NodeUtil.collectAllChildren(session.getRootNode(), new NodeTypePredicate(nodeType))


collection.each { node->
  println(node)
  println(node.name)
  taskManager.archiveTask(node.name);
  println "node done"
}

Но менеджер задач, конечно, не известен. Как я могу получить к нему доступ, используя Groovy?

1 Ответ

1 голос
/ 29 марта 2019

Все компоненты, такие как менеджеры, реестры и другие, как правило, вводятся и доступны в Магнолии через контейнеры.

Либо вы можете превратить ваш скрипт в класс и позволить guice создать его экземпляр для вас, либо вы можете использовать ярлык для получения экземпляра нужного компонента из контейнера guice, например:

tasksManager = Components.getComponent(TasksManager.class)

...