- private void copyProperties(Node sourceNode, Session targetSession,
- boolean singleLevel) throws RepositoryException {
- Node targetNode = targetSession.getNode(sourceNode.getPath());
+ private void copyTimestamps(Node sourceNode, Node targetNode)
+ throws RepositoryException {
+ if (sourceNode.getDefinition().isProtected())
+ return;
+ if (targetNode.getDefinition().isProtected())
+ return;
+ copyTimestamp(sourceNode, targetNode, Property.JCR_CREATED);
+ copyTimestamp(sourceNode, targetNode, Property.JCR_CREATED_BY);
+ copyTimestamp(sourceNode, targetNode, Property.JCR_LAST_MODIFIED);
+ copyTimestamp(sourceNode, targetNode, Property.JCR_LAST_MODIFIED_BY);
+ }
+
+ private void copyTimestamp(Node sourceNode, Node targetNode, String property)
+ throws RepositoryException {
+ if (sourceNode.hasProperty(property)) {
+ Property p = sourceNode.getProperty(property);
+ if (p.getDefinition().isProtected())
+ return;
+ if (targetNode.hasProperty(property)
+ && targetNode
+ .getProperty(property)
+ .getValue()
+ .equals(sourceNode.getProperty(property).getValue()))
+ return;
+ targetNode.setProperty(property, sourceNode.getProperty(property)
+ .getValue());
+ }
+ }
+
+ private void copyProperties(Node sourceNode, Node targetNode)
+ throws RepositoryException {