Magnolia 5.6 reached end of life on June 25, 2020. This branch is no longer supported, see End-of-life policy.
The Content Importer module allows you to bootstrap content from the file system into the JCR. The module adds bootstrapping capabilities for light modules. You can import content during development, distribution and deployment of light modules. For example, import sample content for a new template so authors can immediately see how the template works.
Magnolia monitors the bootstrap directory on the file system. When Magnolia detects a change it sends a Pulse task to the superuser account. The superuser can then import the content. This allows you to import content in a controlled way, ensuring that no existing content is overridden by accident.
To demonstrate how content import works, we bootstrap a cruise-manager
page into the /travel/about/careers
section in the Pages app.
To create a bootstrap file for testing, create a page in the Pages app, export it and save the file to a temporary location on your computer. Next, delete the page in the Pages app and then add the file to your bootstrap directory on the file system. See Importing and exporting JCR data for bootstrapping for more.
Here's how bootstrapping files from the file system works in the UI:
An XML file is added to the bootstrap directory. See Setting the bootstrap directory.
Example : Add website.travel.about.careers.cruise-manager.xml
to /webapps/magnoliaAuthor/modules/data
.
└─<magnoliaAuthor> └─modules └─data └─website.travel.about.careers.cruise-manager.xml
A message is logged to the user:
INFO info.magnolia.content.observer.TaskCreatorWatcherCallback 01.11.2016 13:18:48 -- File change detected at 'C:\Users\Ruth\magnolia\magnolia-enterprise-5.5\apache-tomcat -8.5.5\webapps\magnoliaAuthor\modules\data\website.travel.about.careers.cruise-manager.xml', pulse task has been sent.
cruise-manager
page in the Pulse.superuser
assigns himself the task and clicks Import to import the content into the corresponding workspace in the repository. He can also Reject or Abort the import.magnolia.properties
file.For content import to work the bootstrap directory MUST be set. Observation will not take place until the property is added.
The bootstrap directory is set in the magnolia.properties
file.
The bootstrap directory can reside anywhere on the file system and can be named anything you like.
To set the bootstrap directory add the magnolia.content.bootstrap.dir
property to magnolia.properties
.
Example: Setting the bootstrap directory as a subdirectory of the resources directory.
# The directory to expose file system resources from magnolia.resources.dir=${magnolia.home}/modules ...... # The directory to import file system XML files from magnolia.content.bootstrap.dir=${magnolia.resources.dir}/data
Subdirectories of the bootstrap directory are also monitored. You can structure your bootstrap files within the bootstrap directory.
The module is configured in /modules/content-importer
.
No configuration changes are required unless you customize the implementation.
The Content Import Request task displays in the Tasks tab in the Pulse.
This task is configured in /modules/content-importer/tasks
.
Node name | Value |
---|---|
content-importer | |
tasks | |
content | |
users | |
superuser | superuser |
eric | eric |
groups | |
travel-demo-editors | travel-demo-editors |
viewMapping | |
taskView | content-importer:content |
title | Content Import Request |
Properties:
tasks | optional Tasks folder. |
| required Task name. |
| optional Users who can view and assign tasks. This property has been introduced with Magnolia 5.6.6. Until then only
|
| optional User groups who can view and assign tasks. |
| optional Message view displayed in detail view. |
| required
|
| optional Task title. |
The Content Import Request message view displays when the user opens a task.This view is mapped to the Content Import Request task in the taskView
property (above).
The Import (approve
) action uses a custom action implementation class that is responsible for importing the bootstrap file into the JCR. With this exception, it is a standard message view definition.
The content
message view is configured in /modules/content-importer/messageViews/content
.
Node name | Value |
---|---|
content-importer | |
messageViews | |
content | |
form | |
actions | |
approve | |
availability | |
class | info.magnolia.ui.admincentral.shellapp.pulse.task.action.ResolveTaskActionDefinition |
decision | approve |
icon | icon-publish |
implementationClass | info.magnolia.content.action.BootstrapAction |
confirmRejection | |
retry | |
claim | |
archive | |
abort | |
actionbar |
Properties:
messageViews | optional Message views folder. | ||||||||||
| required Message view name. | ||||||||||
| required Form definition node. Text fields (read only):
| ||||||||||
| required Actions definition node. | ||||||||||
| optional Configured actions:
| ||||||||||
| required Action bar definition. |