What is Package Manager in AEM?
The package manager is a component of AEM that allows users to create, install, uninstall, and manage packages.
Packages can be created using the Package Manager UI or by using the AEM Package Manager API.
When creating a package, the user selects the content, code, and/or configuration that they want to include, and specifies any dependencies between packages. The package is then saved as a .zip file, which can be installed on other AEM instances.
What are these packages used in Package Manager?
A package is a self-contained unit of content, code, or configuration that can be easily installed or removed from an AEM instance using the package manager. Packages are typically used to deploy new features, updates, or fixes to an AEM instance, or to migrate content or configurations between instances.
How do they work?
When a user creates a package in AEM, the Package Manager uses SLING to locate and select the content, code, and configuration files that are included in the package.
It then uses OSGi to manage the creation of the package archive file and the associated metadata files.
Once the package is created, the user can upload it to an AEM instance using the Package Manager interface or API.
The Package Manager then uses SLING to extract the files from the package and locate the appropriate locations in the repository to install the content, code, and configurations.
During the installation process, the Package Manager uses OSGi to manage the installation of any required dependencies and ensure that the installation is completed successfully.
Finally, the Package Manager uses Apache Jackrabbit to manage the storage and versioning of the installed content in the repository.
When and why do we need it?
Here is a list of scenarios where I have seen packages used most often:
— Installing authored content from one instance to another.
— Code sync.
— Replication of issues in higher env to lower environment or local.
— Migrating config which you have not added in code to lower or higher environment
Creating a package and pushing it to your code.
Now, we created a proxy component in the last article, let’s push that to our code through the package manager.
— Go to /crx/packmgr/index.jsp
— Create a new package by clicking on “Create Package”.
— Give it any name and version ( optional).
— Now once it is created, click on the package and click on “Edit”.
— Go to “filter” tab and click “Add Filter”.
— Now add the path where you have made your changes.