This page describes the current migration support of the data module, as of Magnolia 5.2.1.

 

Scope

What is in 5.2
  • We configure content-apps for all existing types in the data module
  • We use detail subapps to create/edit new entries
  • We also migrate default data-module-based Company type for fresh install
    • We don't migrate Contact and category, those are already migrated
    • We don't migrate RssAggregator, module is currently being migrated to its own workspace
  • We drop legacy admininterface classes and config
    • where we provide proper replacement and migration to this replacement
What is NOT in 5.2
  • We don't move content to new workspaces
  • We don't change ACLs consequently
  • We don't have an app to manage custom types

 

Migration concretes

1. Dialogs
  • (tick) We migrated Types dialog definitions to 5.0 dialogs
    • and refer to their inner form from the data-types detail subapps
2. Content apps
  • (tick) We created migration tasks for creating content apps based on dataTypes
    1. creating basic app definition with a task + appLauncherLayout entry
    2. create browser subapps (workbench)
    3. add browser "default" actions + availability (edit)
    4. create detail subapps, link to dialogs' inner form definitions
    5. add actions to create items with different types
3. Multiple hierarchical types
  • (tick) We open the right subapp based on selected item type
  • (tick) For creation, we have multiple add actions for each available item type, displayed based on action availability
4. Mixin supertypes for data nodeTypes
  • If mixins are missing, nodes are not decorated with LastUpdateContentDecorator, and lastModified properties are not updated
  • (tick) Node-types migrated:
    • dataBase - added mgnl:created, mgnl:lastModified supertypes
    • dataItem - added mgnl:activatable, mgnl:versionable supertypes
    • dataItemNode - added mgnl:activatable supertype
    • dataFolder - added mgnl:activatable supertype
5. Legacy code and configuration
  • (tick) We removed old DataModule 2.x legacy apps (as seen until Magnolia 5.1)
  • (tick) We removed legacy GUI classes and config (trees, pages)

 

Cleanup of legacy UI classes and config

ElementsAffected sourcesAffected configChanges / ReplacementMigration
Dependenciespom.xml
META-INF/magnolia/data.xml
 (minus) adminInterface 
 info.magnolia.module.data.TypeDefinition 
  • @Deprecate getIcon()
  •  configure icons in workbench nodeTypes instead
  • (question) deprecate whole class? 
 
  (minus) server.URI2RepositoryMapping.mappings.dataModuleTypeImagesno longer used 
Commandsinfo.magnolia.module.data.commands  
  • Activation commands which need to be based on itemTypes should have this property configured on the command itself.
    • This might involve using a specific command catalog for each tree that was previously configuring itemTypes.
    • The activation actions in browser subapp should then set the catalog property accordingly.
    • (warning) We should also do the same for versioning actions
    • (warning) We don't migrate this automatically
    • Ideally in the future, such behavior is driven directly by node-types (e.g. mgnl:content vs. mgnl:contentNode)
  • The data commands which activate/deactivate "All" are no longer used
    • one may configure or implement bulk actions instead
    • see info.magnolia.ui.framework.action.AbstractMultiItemAction
(warning)
 

(minus) TypeActivateCommand
(minus) TypeDeleteCommand

(minus) modules.data.commands.dataType.*

Replaced with plain activation of data/apps and appLauncherLayout

(error)
Controls(minus) info.magnolia.module.data.controls.*(minus) modules.data.controls.*Replaced with fields(tick)
 

DataButtonSet
DataUUIDButtonSet
DataMultiSelect

DataUUIDMultiSelect

 Migrator exists(tick)
 

DataFileControl

 Support of migration to UploadField is unlikely to land in 5.2(warning)
 

DataMultiValueControl
NodeNameControl
TypeIconFileControl 

 No longer required 
SaveHandler(minus) info.magnolia.module.data.save.DataSaveHandler 
  • No longer required, uses multi-value transformers instead
  • Post-save actions should be migrated to info.magnolia.ui.form.EditorCallback
(tick)
Dialogs

(minus) info.magnolia.module.data.dialogs.*

 
  • Dialogs for types are migrated to the 5.x style
  •  TypeSelectDataDialog has been replaced with multiple actions + availability in browser subapps
(tick)
  (minus) modules.data.dialogs.dataType
  • Creating data types on the fly no longer supported
    • This will be replaced with a content-app creator in the future
    • For the time being, one may still create types at runtime via groovy, and configure content apps accordingly.
(error)
Import  No changes 
Trees

(minus) info.magnolia.module.data.trees.*
(minus) mgnl-resources/js-classes/mgnl/data/DataTree.js
(minus) mgnl-resources/js-classes/mgnl/data/TypeTree.js 

(minus) modules.data.trees.*Replaced with content apps(tick)
Pages

(minus) info.magnolia.module.data.lists.DataVersionsList
(minus) info/magnolia/module/data/lists/DataAwareInbox.html

(minus) modules.data.pages.*Replaced with versioning actions in content apps(tick)
Utilinfo.magnolia.module.data.util.DataUtil @Deprecate the whole class:
  • Since 5.2, handling of multiple values is done at field level by setting property transformers
  • We no longer configure legacy dialogs for data module
  • TypeDefinitions are solely used initially for migration to content apps.
 

 

Ideas

  • Move and split app creation tasks to ui content app?
  • Do customers prefer:
    • auto-upgrade of custom datatypes with less control (e.g. icons)
    • manual upgrade of custom datatypes with more control, but via groovy
    • still defaults to all but you can pass additional config
    • can we run such a migration twice to refine resulting app
  • Dialog migration
    • i18n, where does it come from? old i18nBasename still supported?
    • missing label and description for e.g. company dialog

 

 

 

 

 

  • No labels

1 Comment

  1. What is NOT in 5.2 will be in 5.2.x?

    And what about the content if it is not moved?