+ // private void syncNode_old(Node sourceNode, Node targetParentNode)
+ // throws RepositoryException, SAXException {
+ //
+ // // enable cancelation of the current fetch process
+ // // FIXME insure the repository stays in a stable state
+ // if (monitor != null && monitor.isCanceled()) {
+ // updateMonitor("Fetched has been canceled, "
+ // + "process is terminating");
+ // return;
+ // }
+ //
+ // Boolean noRecurse = singleLevel(sourceNode);
+ // Calendar sourceLastModified = null;
+ // if (sourceNode.isNodeType(NodeType.MIX_LAST_MODIFIED)) {
+ // sourceLastModified = sourceNode.getProperty(
+ // Property.JCR_LAST_MODIFIED).getDate();
+ // }
+ //
+ // if (sourceNode.getDefinition().isProtected())
+ // log.warn(sourceNode + " is protected.");
+ //
+ // if (!targetParentNode.hasNode(sourceNode.getName())) {
+ // String msg = "Adding " + sourceNode.getPath();
+ // updateMonitor(msg);
+ // if (log.isDebugEnabled())
+ // log.debug(msg);
+ // ContentHandler contentHandler = targetParentNode
+ // .getSession()
+ // .getWorkspace()
+ // .getImportContentHandler(targetParentNode.getPath(),
+ // ImportUUIDBehavior.IMPORT_UUID_COLLISION_THROW);
+ // sourceNode.getSession().exportSystemView(sourceNode.getPath(),
+ // contentHandler, false, noRecurse);
+ // } else {
+ // Node targetNode = targetParentNode.getNode(sourceNode.getName());
+ // if (sourceLastModified != null) {
+ // Calendar targetLastModified = null;
+ // if (targetNode.isNodeType(NodeType.MIX_LAST_MODIFIED)) {
+ // targetLastModified = targetNode.getProperty(
+ // Property.JCR_LAST_MODIFIED).getDate();
+ // }
+ //
+ // if (targetLastModified == null
+ // || targetLastModified.before(sourceLastModified)) {
+ // String msg = "Updating " + targetNode.getPath();
+ // updateMonitor(msg);
+ // if (log.isDebugEnabled())
+ // log.debug(msg);
+ // ContentHandler contentHandler = targetParentNode
+ // .getSession()
+ // .getWorkspace()
+ // .getImportContentHandler(
+ // targetParentNode.getPath(),
+ // ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING);
+ // sourceNode.getSession().exportSystemView(
+ // sourceNode.getPath(), contentHandler, false,
+ // noRecurse);
+ // } else {
+ // String msg = "Skipped up to date " + targetNode.getPath();
+ // updateMonitor(msg);
+ // if (log.isDebugEnabled())
+ // log.debug(msg);
+ // return;
+ // }
+ // }
+ // }
+ //
+ // if (noRecurse) {
+ // // recurse
+ // Node targetNode = targetParentNode.getNode(sourceNode.getName());
+ // if (sourceLastModified != null) {
+ // Calendar zero = new GregorianCalendar();
+ // zero.setTimeInMillis(0);
+ // targetNode.setProperty(Property.JCR_LAST_MODIFIED, zero);
+ // targetNode.getSession().save();
+ // }
+ //
+ // for (NodeIterator it = sourceNode.getNodes(); it.hasNext();) {
+ // syncNode_old(it.nextNode(), targetNode);
+ // }
+ //
+ // if (sourceLastModified != null) {
+ // targetNode.setProperty(Property.JCR_LAST_MODIFIED,
+ // sourceLastModified);
+ // targetNode.getSession().save();
+ // }
+ // }
+ // }
+
+ protected Boolean singleLevel(Node sourceNode) throws RepositoryException {