Expand my Community achievements bar.

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.