Hi,
We have multiple sites and each site has its own set of code base. But they are being deployed to the same AEM environment. Currently, we are maintaining the same core components for all sites. Now, one of the site is in the need to upgrade the core components. Is there any possibility that we can maintain different versions for different sites without any conflict in the same instance?
Thanks,
Solved! Go to Solution.
Topics help categorize Community content and increase your ability to discover relevant content.
Views
Replies
Total Likes
The core component code (the sling models themselves) is structured in a way, that components are versioned; major changes to a component result in a new version of it, and you can use all versions next to each other. And as your components are based on specific versions of the core components, you should be able the core components package version without breaking compatibility.
See also the docs: https://experienceleague.adobe.com/docs/experience-manager-core-components/using/versions.html?lang=...
(On the java side you cannot have multiple versions of the core components installed, but even the latest version of the core components still support the oldest component versions.)
Hi @rbhavanam
As per the documentation and open feature request multiple versions of core component support is there in AEMaaCS, but while checking the sling documentation the feature is considered as experimental.
You can check via Support ticket or through CSE whether this feature can be enabled or used.
If not then you can try to create bundles with different symbolic names but providing the same packages.
Please check the below URLS
https://sling.apache.org/documentation/bundles/osgi-installer.html#multi-version-support-1
https://github.com/adobe/aem-core-wcm-components/issues/1343
The WCM core components have been developed, so that multiple versions can be hosted at a time.
It would be a good reference. Example: Image component
https://experienceleague.adobe.com/docs/experience-manager-core-components/using/introduction.html?l...
https://github.com/adobe/aem-core-wcm-components
Hi @aanchal-sikka ,
I am not looking to extend a particular component. We wanted to maintain multiple versions for the entire core components library.
Thanks,
Hi @rbhavanam!
As mentioned by @aanchal-sikka, it is possible to use different versions of the Core Components. This is made possible by the Component Versioning pattern of the Core Components. You'll make sure that your implementation makes use of the Proxy Component pattern to point to the according version of a component.
Hope that helps!
Just trying to understand your question better. So you have multiple site using say core components version 2.0.0 and one of the site wants to move to 3.0.0 to make use of the newest features/components available from 3.0.0.
In this case, instead of trying to run multiple version of Core components in the AEM instance, I would validate and check what are the major changes in version 2.0.0 vs 3.0.0.
AEM core component designed be always backward compatible by introducing versioning of the components.
You should be good to upgrade to the required newest version without any issues. But, if there are any backward compatibility issue arises, then I think it's time well spent on fixes those issues than running multiple versions of core components. IMO
@Sudheer_Sundalam wrote:AEM core component designed be always backward compatible by introducing versioning of the components.
While it is highly desirable that Core Components are mostly backwards compatible, this is not guaranteed for major version changes (like from 2.0.0 to 3.0.0 as in your example). As outline in the Component Versioning guidelines, AEM Core Components follow semantic versioning patterns:
MAJOR version when you make incompatible API changes
MINOR version when you add functionality in a backward compatible manner
PATCH version when you make backward compatible bug fixes
You might also want to check the Core Components Versioning policies for further details.
The core component code (the sling models themselves) is structured in a way, that components are versioned; major changes to a component result in a new version of it, and you can use all versions next to each other. And as your components are based on specific versions of the core components, you should be able the core components package version without breaking compatibility.
See also the docs: https://experienceleague.adobe.com/docs/experience-manager-core-components/using/versions.html?lang=...
(On the java side you cannot have multiple versions of the core components installed, but even the latest version of the core components still support the oldest component versions.)