Expand my Community achievements bar.

SOLVED

Is it possible to maintain multiple Core Components versions?

Avatar

Level 2

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,

Topics

Topics help categorize Community content and increase your ability to discover relevant content.

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

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.)

View solution in original post

8 Replies

Avatar

Community Advisor

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.

 

sherinregi_0-1698915384011.png

 

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

 

 

 

Avatar

Level 2

Hi @sherinregi ,

 

Thanks for the response. Let me check with CSE & get back.

 

Avatar

Community Advisor

@rbhavanam 

 

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 


Aanchal Sikka

Avatar

Level 2

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,

Avatar

Employee Advisor

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!

Avatar

Community Advisor

@rbhavanam ,

 

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

Avatar

Employee Advisor

@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.

Avatar

Correct answer by
Employee Advisor

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.)