Expand my Community achievements bar.

Guidelines for the Responsible Use of Generative AI in the Experience Cloud Community.
SOLVED

To check on JCR if property is inherited from parent

Avatar

Level 3

Hello Everyone,

Currently I am on AEM-6.4.5, I came across an issue where the cloud configurations set on parent is not inherited to child pages.
Is there any property on JCR which I can query for to get a list of pages where configurations are not inherited.

I can see configurations added on parent, but when check on child its not available.

When properties are inherited correctly a checkbox appears on child pages which says "inherited from content/my-site/us".

My site structure is :

content/my-site/us [It has could configs]

     content/my-site/us/en_us [Should inherit, but its NOT].

Is there any property on JCR which can confirm inheritance?

Note: This is NOT about inheritance from language masters.

Thanks in Advance.

Wh

1 Accepted Solution

Avatar

Correct answer by
Employee

This is not stored as a property in the JCR, rather it's a calculated field depending on whether the node has a valid config or not. If it has a valid config then the calculation figures that it's not inheriting. If it has no valid config then it ascends the tree (to the parent then grandparent, etc...) until it finds a valid config and it inherits from it.

The logic for this can be found in this jsp code:

/libs/cq/cloudserviceconfigs/components/configurations/configurations.jsp

The function of importance here is getConfigurationResource which as per the API docs [1] :

"

Ascends the Resource until a Page with a valid configuration is found. The configuration is considered valid if the node has a property cq:cloudserviceconfigs.

"

[1]

ConfigurationManager ("The Adobe AEM Quickstart and Web Application.")

View solution in original post

4 Replies

Avatar

Employee

Possibly "sling:resourceSuperType". This enables the component to inherit.

For example a text component will inherit various attributes from the standard component.

  • scripts (resolved by Sling)
  • dialogs
  • descriptions (including thumbnail images, icons, etc)

AEM Components - The Basics

Avatar

Correct answer by
Employee

This is not stored as a property in the JCR, rather it's a calculated field depending on whether the node has a valid config or not. If it has a valid config then the calculation figures that it's not inheriting. If it has no valid config then it ascends the tree (to the parent then grandparent, etc...) until it finds a valid config and it inherits from it.

The logic for this can be found in this jsp code:

/libs/cq/cloudserviceconfigs/components/configurations/configurations.jsp

The function of importance here is getConfigurationResource which as per the API docs [1] :

"

Ascends the Resource until a Page with a valid configuration is found. The configuration is considered valid if the node has a property cq:cloudserviceconfigs.

"

[1]

ConfigurationManager ("The Adobe AEM Quickstart and Web Application.")

Avatar

Employee

To add to my previous reply, basically you need to search for the cq:cloudserviceconfigs nodes and that will give you a list of nodes that are not inheriting from their parents, and instead using their own config.