cogHelper to convert terminal pages into Nested Pages.
Recommended
TypeXAR
CategoryApplication
Developed by

Guillaume Delhumeau

Active Installs107
Rating
Rate!
8 Votes
LicenseGNU Lesser General Public License 2.1
Installable with the Extension Manager

Description

This application help you to convert all your existing pages into Nested Pages. Thanks to this, all your pages will be able to have children.

This application is currently an alpha version, released for tests purpose, and is not ready for production.

Also note that there's an issue at the moment when renaming pages having a lot of revisions/attachments since that takes a lot of memory and you could get an OutOfMemory. This issue is not strictly related to this migrator since it's a general issue but you may hit it when using it. The way to work around the issue is currently to give more memory to the JVM. In the future we need to fix the copy and rename features of XWiki so that they scale better.

A more complete documentation have been written, which also explain why you need to migrate your pages. See NestedPagesMigration. And if you're wondering if you need to run this migrator or not, check this FAQ entry.

In order to not break existing hierarchy of pages, based on the parent/child relationship, this application moves the pages under its parent. So the parent/child relationship is replaced by a real location hierarchy.

You should upgrade your wiki to a version handling Nested Pages before using this application. It has been designed for XWiki 7.4.2+.

This is what the application looks like:

You can access it by going to the "NestedPagesMigration" page, or by clicking on the "Nested Pages Migration" icon on the application panel (the left bar, by default).

Options

Simple Options

Exclude pagesExclude a list of pages.
Excluded spacesExclude a list of spaces.
Included spacesOnly pages containing in this list of spaces will be converted

Advanced Settings

These options are hidden by default. You can keep them unchanged since they will fit in most of the cases.

Exclude hidden pagesCheck this option if you want to exclude hidden pages, that usually contain technical data, from the migration.
Exclude pages having a classCheck this option to not convert pages holding a class, because it can break applications based on these classes.
Do not move childrenConvert pages into Nested Pages (so they can have children) without moving them under their parent. The old hierarchy will not be preserved.
Add redirectionAdd a redirection in the old location to the new one.
Convert preferencesPreserve the preferences of the page that could change otherwise since of their new location.
Convert RightsPreserve the preferences of the page that could change otherwise since of their new location. This option does not currently work and is there for test purpose.
Exclude classesExclude pages holding some objects.

Note: you can select the classes to exclude by clicking on the "excluded classes" field:
excludedClasses.png

Breakages Detection (since 0.7)

The migrator can help you to decide if it's worth the effort of migrating your pages. It lists the pages that have their initial parent lost and for which it would be good to run the migrator on.

Example: If "Animals.Cat" had its parent field set to "Species.Mammal", it means that the breadcrumb is not showing that information anymore and that migration should be performed (since its hierarchical parent is Animals.WebHome).

All you need to do is to click on the "Detect Breakages". Note: the options (page exclusions, included spaces, etc...) are take into account so the detection will not be on the whole wiki.

BreakageList.png

Note: if A.WebHome has the parent Home.WebHome, and if A.B has A.WebHome for parent, then A.WebHome will be listed (since it will no longer have Home.WebHome without the migration) but A.B will not (because A.WebHome will remain the parent). However, the fact that Home.WebHome is the "grandfather" of A.B is lost too. You should remember this when you look at the results.

In other words, the Home.WebHome > A.WebHome > A.B hierarchy is lost but not listed by the tool.

Plan

Example of generated plan:
plan.png

The plan is a tree, and you can open/close each branch by clicking on it. You can exclude pages from the conversion by clicking on the "exclude page" button. This action will recompute the plan except if you have enabled "Do not move children".

You can also set the parent of a page, manually. Then, the plan is computed again because it the results can be changed a lot.

Prerequisites & Installation Instructions

We recommend using the Extension Manager to install this extension (Make sure that the text "Installable with the Extension Manager" is displayed at the top right location on this page to know if this extension can be installed with the Extension Manager). Note that installing Extensions when being offline is currently not supported and you'd need to use some complex manual method.

You can also use the following manual method, which is useful if this extension cannot be installed with the Extension Manager or if you're using an old version of XWiki that doesn't have the Extension Manager:

  1. Log in the wiki with a user having Administration rights
  2. Go to the Administration page and select the Import category
  3. Follow the on-screen instructions to upload the downloaded XAR
  4. Click on the uploaded XAR and follow the instructions
  5. You'll also need to install all dependent Extensions that are not already installed in your wiki

Release Notes

v0.7

  • Closed NPMIG-46 Add an evaluation tool for the NP Migrator, to allow deciding if migration needs to be done or not

v0.6

  • Closed NPMIG-48 Hard to understand the plan is actually an expandable tree
  • Closed NPMIG-49 Hide complex settings by default

v0.5.2

  • Closed NPMIG-41 Error message at a click on the edit icon of EXCLUDE CLASSES
  • Closed NPMIG-47 Set parent button does not allow to remove a parent (make a page top-level)

v0.5.1

  • Closed NPMIG-42 Nested spaces migrator does not protect against XWIKI-13402
  • Closed NPMIG-44 Error when a user have intentionally duplicated a document

v0.5

  • Closed NPMIG-37 Add an entry in the Applications Panel to make it easy to use
  • Closed NPMIG-43 Some documents are partially duplicated after a crash during the execution of the migrator

v0.4.3

  • Closed NPMIG-34 NPE in PreferencesMigrationPlanCreator#getPreferenceValueAfter()

v0.4.2

  • Closed NPMIG-28 Don't display the migration events in Activity Stream
  • Closed NPMIG-32 Display stacktraces of errors in the logs
  • Closed NPMIG-33 Add a "clean plan" feature
  • Closed NPMIG-35 The tree cannot be expanded in some circumstances

v0.4.1

  • Closed NPMIG-29 Error when there is a cyclic parent/child relationship
  • Closed NPMIG-30 Improve the performances of the display of the logs in the UI

v0.4

  • Closed NPMIG-21 Implement the execution of the plan
  • Closed NPMIG-22 Add a security checkpoint in the UI
  • Closed NPMIG-24 Display the logs in the UI
  • Closed NPMIG-26 Add an option to not compute preferences or rights migration
  • Closed NPMIG-27 The list of pages to be converted is wrong

v0.3

  • Closed NPMIG-13 Links in the migration plan should open new windows
  • Closed NPMIG-14 Add an "exclude space" button in the plan
  • Closed NPMIG-15 Add the ability to unselect some actions from the plan
  • Closed NPMIG-16 Add some exclusions by default.
  • Closed NPMIG-17 Handle page rights
  • Closed NPMIG-18 Handle page preferences
  • Closed NPMIG-19 Exclude XWiki.XWikiPreferences

v0.2.1

  • Closed NPMIG-10 Progress bar is not displayed in XWiki 7.4.x
  • Closed NPMIG-11 Computed plan is never displayed on XWiki 7.4.x
  • Closed NPMIG-12 WebPreferences are still concerned by the plan

v0.2

  • Closed NPMIG-2 Don't migrate WebPreferences
  • Closed NPMIG-3 Handle the case where 2 different pages could have the same target
  • Closed NPMIG-4 Handle non terminal pages that should be under their parent
  • Closed NPMIG-5 Handle collisions with existing documents
  • Closed NPMIG-6 Compute the plan asynchronously
  • Closed NPMIG-7 Handle when XWiki cannot load a document
  • Closed NPMIG-8 Handle when the parent is in an other wiki
  • Closed NPMIG-9 Add the ability to manually set a parent

v0.1.1

  • Fix a dependency problem.
  • Better description in pom.xml files.

v0.1

  • First version.

Dependencies

Dependencies for this extension (org.xwiki.contrib:application-nestedpagesmigrator-ui 0.7):

Tags:
Created by Guillaume Delhumeau on 2016/01/19 17:37
    

Get Connected