We have a requirement where we need to compare two AEM intances and extract the differences and also export the metadata(such as content name,type,size) of a jcr repository and hierarchical susbset.
1. Is their any tool which will do this comparision.
Yes there is one Helpx article which tells on compare content and import tool - to compare and import content differences from one CQ instance to another CQ instance.
Yes there is one Helpx article which tells on compare content and import tool - to compare and import content differences from one CQ instance to another CQ instance.
GitHub:-ACS Adobe Experience Manager Commons GitHub page: “Quickly compares the contents of Adobe Experience Manager instances. JCR Compare computes checksums for specified node types (via an aggregated checksum of that node’s descendants) across multiple AEM instances and then compares the checksum results to identify what node (and node sub-systems) are the same or different.
How it works You tell an AEM instance where it should find the instance to compare itself to, and define a number of useful comparisons to run, including based on a recursive path crawl, a JCR query, a list of known nodeTypes to include or exclude, and so on. It uses smart aggregate hashing to do the comparison and gives you the ability to drill into results to identify exactly what has changed.
Audience Impact (authors, devs, admins)
Devs – Allows them to see if they missed something in the migration or development phase
Authors – Allows them to verify what was changed between two environments
Admins – Allows them to quickly smoke test auto-scaled instances
Once you know which paths are different then you can go to each server you retrieved a diff against and use theHTTP GET /bin/acs-commons/jcr-compare.dump.json servlet to get a dump of the content. For example here is how you would request this for a particular node:
GitHub:-ACS Adobe Experience Manager Commons GitHub page: “Quickly compares the contents of Adobe Experience Manager instances. JCR Compare computes checksums for specified node types (via an aggregated checksum of that node’s descendants) across multiple AEM instances and then compares the checksum results to identify what node (and node sub-systems) are the same or different.
How it works You tell an AEM instance where it should find the instance to compare itself to, and define a number of useful comparisons to run, including based on a recursive path crawl, a JCR query, a list of known nodeTypes to include or exclude, and so on. It uses smart aggregate hashing to do the comparison and gives you the ability to drill into results to identify exactly what has changed.
Audience Impact (authors, devs, admins)
Devs – Allows them to see if they missed something in the migration or development phase
Authors – Allows them to verify what was changed between two environments
Admins – Allows them to quickly smoke test auto-scaled instances
Once you know which paths are different then you can go to each server you retrieved a diff against and use theHTTP GET /bin/acs-commons/jcr-compare.dump.json servlet to get a dump of the content. For example here is how you would request this for a particular node:
I tried in my local instances and it is taking so much of time to compare a single page we want very optimised time to compare so that this could be done on Production instances which is having lot of content
Thanks for the above options and i will try to implement that for JCR comparisions but we one more usecase like extract metadata (name ,title and age etc.,) properties for whole project do we have any tool existing for this ?
Thanks for the above options and i will try to implement that for JCR comparisions but we one more usecase like extract metadata (name ,title and age etc.,) properties for whole project do we have any tool existing for this ?
Thanks
Mani Kumar K
If You can achieve this for JCR, this means you are able to achieve it for metadata as well.
Everything in AEM is stored as JCR (image, template, pages,Assets, metadata etc).
Go to :-/content/dam/geometrixx-media/articles/andrew-novokov.jpg/jcr:content/metadata in CRXDE for looking how metadata is stored.
If you want something specific that to only compare metadata then first do query to fetch metadata and then continue with your logic.