TWCable / grabbit

Grabbit - Fast Content Sync tool for AEM/CQ
Apache License 2.0
125 stars 64 forks source link

Sync does not bring over custom properties on jcr:content nodes #220

Open rhodebump opened 5 years ago

rhodebump commented 5 years ago

Content synchronization is working correctly for images/pages, and custom node structures. However, if we have custom properties on jcr:content nodes, the properties and their values are not brought over to the client.

Client and server are AEM 6.3.1.0

How do you produce the issue?

On server, there is following JCR nodal structure: /etc/data/people/rh/rhodebump/jcr:content/education/school-hard-knocks The node "school-hard-knocks" has string properties such as "degree", "location" The jcr:content node has several string properties (firstname, lastname, dob, city ,address)

Perform a content sync from server to client. The entire above structure is brought down to client. The structure of /etc/data/people/rh/rhodebump/jcr:content/education/school-hard-knocks is created. The properties on "school-hard_knocks" are synced correctly. The properties (ie firstname,lastname) on the "jcr:content" do not exist, however, the "jcr:content" structure is created. We just lack the properties.

Does the issue occur consistently?

Yes. Everytime

Any additional details?

Here is my json configuration file. I have { "serverUsername" : "admin", "serverPassword" : "admin", "serverScheme" : "http", "serverHost" : "localhost, "serverPort" : "4502", "batchSize" : 150, "deltaContent" : true, "pathConfigurations" : [ { "path" : "/etc/data/people", "batchSize" : 200 }, ] }

rhodebump commented 5 years ago

More information.

This problem (no jcr:content properties) only occurs if the receiving node already has the data and "deleteBeforeWrite" is true is set for the path. One can also manually delete the nodes on the receiving side before running the sync. The sync will restore the nodal structure (but lacks the properties that may are on the jcr:content node).

rhodebump commented 5 years ago

I did some more testing. Everything works (all content syncs) if I set the "deltaContent" property to false.

This issue only hurts us if we delete the client content first, or if you have the "deleteBeforeWrite" property to true.

sureshcodeit commented 5 years ago

"deltaContent" worked. In my case, the jcr:primaryType property is set as nt:unstructured. setting deltaContent - false at path level under "Paths" synced content and properties with no issues. Maybe this info is helpful for others.