The Import-Export Addon
This page explains the structure of the Import/Export functionality in XperienCentral. It is a combination of XperienCentral code and add-on code that defines the functionality. The following add-ons are used:
- The Connector API add-on. This consists of the following modules:
- Connector API (
wmsconnectorapi
) - Connector-Command (
wmsconnectorcommand
) - Connector-ContentItem (
wmacontentitemconnector
) - Connector-IntegrationTest (
wmaconnectorintegrationtest
) - Connector-Layouts (
wmaconnectorlayouts
) - Connector-Release (
wmaconnectorapi-release
)
- Connector API (
For importing and exporting content, only the API and the Content Item and Layouts modules are used.
- The Modular Content add-on. This consists of the following modules:
- Modular Content Core and API (
wmamodularcontent
) - Modular Content Command (
wmamodularcontentcommand
) - Modular Content ExtensionExample
- Modular Content Import and Export (
wmamodularcontentimportexport
) - Modular Content Integration Test (
wmamodularcontentintegrationtest
) - Modular Content Panel (
wmamodularcontentpanel
) - Modular Content Release (
wmamodularcontent-release
)
- Modular Content Core and API (
For importing and exporting content, only the core and API and Import and Export and Panel modules are used.
The current import/export functionality satisfies the following requirements:
- The ability to import and export Pages, Media items and Page Sections
- The ability to import and export Layouts.
- The ability to import and export Modular Content definitions like templates, content types and lists.
- The ability to import and export the Modular Content and Layout elements on a content item canvas (default elements are already supported).
For importing and exporting Layouts, Modular Content definitions and XperienCentral content items, the following structure was created:
(diagram is made in https://app.diagrams.net/ and can be loaded using Diagram for future changes)
Exporting content is performed in XperienCentral in a number of different panels — there is no central point where all export actions can be performed. You can export content items separately to a ZIP file (via bulk actions in Advanced Search). Layouts and Modular Content definitions are exported in separate ZIP files from the Layouts and Modular Content panels respectively. This various export ZIP files, on the other hand, are all upload in a centralized import panel which analyses the export file and calls the import functionality for each specific specific ZIP type.
In order to facilitate this functionality, a provider Interface (ExtensibilityImportExportProvider
) is defined and a service uses the Import functionality. This service must implement the analysis of the uploaded ZIP file for the Wizard (the import panel) and the import of the uploaded content (the last step of the Wizard). If a new custom Import/Export is needed, you can define a new service that implements this interface and define your own extensibility ProviderId. Create your own export ZIP type with your own ID. The Wizard will then search the platform for a service that implements the interface that has the extensibility ID that is defined in your export ZIP.
The Wizard has a that analyzes the ZIP file that is uploaded. This step must also be implemented in your service. The analyze step returns a default bean (Connector API) that can be filled with your own analysis results and with the steps that define the flow in the Wizard. The questions and answers in the steps are also defined there. The Wizard uses these steps to construct the flow to the last overview step where the import is performed. If you want user-specific import choices, you can define them in these steps.