Follow the sections below to AEM as a Cloud Service Code Refactoring plugin for the Adobe I/O CLI.
With the increase in number of code refactoring tools (with different set of installation, setup requirements and Input/Output formats), the complexity of using these tools has also elevated.
aio-cli-plugin-aem-cloud-service-migration
plugin unifies the code refactoring tools which refactor
customers code, repository structure, and configurations on user's local machine.
-
The Adobe I/O CLI AEM Cloud Service Migration Plugin is the main AEM as a Cloud Service source migration Adobe I/O CLI plugin.
-
The AEM Cloud Service Source Migration Packages is the base library providing the underlying code refactoring tools.
Following tool packages are currently available:
- Dispatcher Converter tool :
@adobe/aem-cs-source-migration-dispatcher-converter
- Repository Modernizer tool :
@adobe/aem-cs-source-migration-repository-modernizer
- Dispatcher Converter tool :
- Node.js 10.0+
- Adobe I/O CLI
-
Install aio-cli core libraries
$ npm install -g @adobe/aio-cli
-
Install AEM cloud service migration aio plugin
$ npm install -g @adobe/aio-cli-plugin-aem-cloud-service-migration
-
Link AEM cloud service migration plugin with aio
$ aio plugins:install @adobe/aio-cli-plugin-aem-cloud-service-migration
-
When you run
$ aio aem-migration --help
, you should be able to seeaem-cloud-service-migration
as an available plugin with its sub-commands.
$ aio plugins:update
Once the necessary dependencies are installed:
- Add the necessary configurations for executing a particular tool. Refer to config for more details.
- Execute the required tool via the
aio
command. - Check the
target
folder for refactored code or configurations, summary report and tool execution logs.
Follow the sections below to learn about commands and their execution.
This command executes all the source refactoring tools.
Refer to config for more details.
USAGE
$ aio aem-migration:all
OPTIONS
-t, --type=ams|on-premise [default: on-premise] the type of AEM provisioning (ams or on-prem)
--help show help
DESCRIPTION
Available migration tools :
* dispatcher-converter
* repository-modernizer
EXAMPLES
$ aio aem-migration:all
$ aio aem-migration:all -t=ams
$ aio aem-migration:all -t=on-premise
Refer to Code :src/commands/aem-migration/all.js
This command converts an existing dispatcher configurations into AEM as a Cloud Service compatible dispatcher configurations.
Refer to config for more information.
USAGE
$ aio aem-migration:dispatcher-converter
OPTIONS
-t, --type=ams|on-premise [default: on-premise] the type of AEM provisioning (ams or on-prem)
--help show help
DESCRIPTION
Configuring existing on-Premise or Adobe Managed Services (AMS) Dispatcher configurations to AEM as a Cloud
Service compatible Dispatcher configuration.
AEM as a Cloud Service has defined rules which are to be followed while configuring Dispatcher for AEM instances.
Dispatcher Converter reads on-Premise or Adobe Managed Services (AMS) Dispatcher configurations and changes them
to AEM as a Cloud Service compatible dispatcher configurations.
EXAMPLES
$ aio aem-migration:dispatcher-converter
$ aio aem-migration:dispatcher-converter -t=ams
$ aio aem-migration:dispatcher-converter -t=on-premise
Refer to Code: src/commands/aem-migration/dispatcher-converter.js.
This command restructures an existing projects packages into AEM as a Cloud Service compatible packages.
Refer to config for more info.
USAGE
$ aio aem-migration:repository-modernizer
OPTIONS
--help show help
DESCRIPTION
AEM requires a separation of content and code, which means a single content package cannot deploy to both /apps
and runtime-writable areas (for example, /content , /conf , /home , or anything not /apps ) of the repository.
Instead, the application must separate code and content into discrete packages for deployment into AEM.
Repository Modernizer automates the separation of such packages into :
* ui.apps package, or Code Package
* ui.content package, or Content Package
* all (container) package that includes the above packages as embeds.
EXAMPLE
$ aio aem-migration:repository-modernizer
Refer to Code: src/commands/aem-migration/repository-modernizer.js
Follow the steps below to add a new command:
-
Create a new javascript file, named after the command, in
src/commands/aem-migration
. -
Use the contents of
src/commands/aem-migration/dispatcher-converter.js
as a starting point for your command, paying particular attention to the command'sflags
,args
, anddescription
. Refer to https://oclif.io for additional information and features. -
Ensure that the file's exports include an object with a property matching the command name.
Contributions are welcomed! Read the Contributing Guide for more information.
This project is licensed under the Apache V2 License. Refer to LICENSE for more information.
Please follow the Issue template to report issues or to request enhancements.