EToolbox Rollout Manager is a tool for Adobe Experience Manger (AEM) allowing to roll out changes to multiple levels of live relationships simultaneously.
EToolbox Rollout Manager is a comprehensive AEM tool meant for AEM website content managers and QA departments. The Rollout Manager can help users roll out changes and updates across multiple levels of AEM live copies. In other words, users can synchronize content in all necessary live copies simultaneously instead of doing so manually for every individual page. Not only does Exadel Rollout Manager reduce the manual effort needed to apply all changes, but it also presents all updates through a user-friendly interface.
AEM 6.5 | AEM 6.4 | Java SE | Maven |
---|---|---|---|
6.5.5.0+ | 6.4.8.1+ | 8, 11 | 3.3.9+ |
The tool can be installed using the package or via building the project.
- Get the latest package version from https://github.com/exadel-inc/etoolbox-rollout-manager/releases
- Install the package etoolbox-rollout-manager.all-XX.zip using the Package Manager
- Ensure that the bundle EToolbox Rollout Manager - Core (etoolbox-rollout-manager.core) is in Active state.
- Ensure the nodes /content/etoolbox/rollout-manager/servlet and /apps/wcm/core/content/sites/jcr:content/actions/selection/rollout are present.
Run the following command in the project root directory to build all the modules and deploy the all
package to a local instance of AEM:
mvn clean install -PautoInstallSinglePackage
-
Go to Sites and select a page to be rolled out.
-
Click the Rollout button in the action bar.
-
Select target paths and check the Include subpages if necessary, click Rollout in the dialog.
The Rollout button is added to the Sites action bar:
The button is active if the conditions listed below are satisfied.
- Single selection.
- Selected page has live relationships.
- Parent page of the selected page must exist under at least one live relationship (i.e target) path.
Foundation UI's wait() function is used to show a wait mask before the dialog is loaded. The delay may be caused by collecting target paths and vary depending on the live copies structure complexity.
The list of live relationships is collected recursively for the selected page and transformed to target paths. First, the live relationships for the current page are fetched, then for each live relationship the process of fetching is repeated, until relationships for all levels are collected.
-
If a live copy was created with the property Exclude sub pages enabled, or the live copy the has the property Live Copy Inheritance disabled in page properties, rollout/synchronization for child pages won't be available.
Let's suppose there are a blueprint page /content/we-retail/language-masters/en and its child /content/we-retail/language-masters/en/experience. The blueprint /content/we-retail/language-masters/en has a live copy /content/we-retail/ca/en, and the child's live relationship is /content/we-retail/ca/en/experience. Presuming that the live copy /content/we-retail/ca/en has the property Live Copy Inheritance disabled, /content/we-retail/ca/en/experience won't be present in the Target paths for /content/we-retail/language-masters/en/experience.
-
If a page is in a live copy exclusions, synchronization of the page won't be available under this live copy path. In the example above if the page /content/we-retail/ca/en/experience is deleted, the path experience will be added to the exclusions set of /content/we-retail/ca/en. Thus, /content/we-retail/ca/en/experience won't be present in the Target paths for /content/we-retail/language-masters/en/experience.
The checkbox tree is built based on nested Coral.Accordion widgets in conjunction with Coral.Checkbox. The tree is scrollable.
- 3 states for a checkbox if contains children: check itself + check children > check itself + uncheck children > uncheck itself
- 2 states for a checkbox if no children: check > uncheck
- in addition, checking the current checkbox also checks all parent checkboxes, since it shouldn't be possible to rollout child path w/o rolling out parent target paths
The button allows to select or unselect all target paths. The button label is changed accordingly (Select all > Unselect all).
The Not Rolled Out label is shown if a selected page doesn't exist under a target path and will be created during a rollout process.
The Rollout button is disabled if no target paths are selected.
The option implies rolling out of all child pages along with the selected page to target paths (similarly to the Rollout page and all sub pages OOTB feature).
The message informing that the rollout process in progress is displayed after clicking the Rollout button.
The message informing about the rollout process result is displayed after completion.
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is available under the Apache License, Version 2.0.