By listening for changes on mix:lockable nodes, locking events can be detected. Locking a node will generate PROPERTY_ADDED events reflecting the addition of the jcr:lockOwner and jcr:lockIsDeep properties. Unlocking a node will generate PROPERTY_REMOVED events reflecting the removal of these properties.