liveProperties and JCRObservationManager eventlisteners

Question

What are the liveProperties in live mode? 

How can the liveProperties deactivated?

Answer

The liveProperties identify properties which are modified directly in live mode. This should prevent a publication to override this property. 

For instance, this is important when you have a commentable function. In this case, content only exists in live. But a publication of the parent content could override these comments, and they will be deleted. The liveProperties should prevent this behavior. 

 

The liveProperties are set from the JCRObservationManager. When you do a migration or another script solution to modify content in live mode, you have to disable this Observationmanager. You can do that with simple code like: 

 JCRObservationManager.setAllEventListenersDisabled(true);

This should disable the liveProperties feature. But at the end of the script you should enable it again:

 

 JCRObservationManager.setAllEventListenersDisabled(false);

If you have already run a script and modified content in live mode, you can check the article Content does not seem to be published and run this script to remove the liveProperties from the live workspace.  Also the script in the article is an example how to disable/enable the event listeners of JCRObservationManager.