From 94c035fa1fac1f2c7a9919854bb13770a95f8f05 Mon Sep 17 00:00:00 2001 From: Bruno Sinou Date: Tue, 26 Jun 2012 09:36:55 +0000 Subject: [PATCH] Fix copy workspace & delete artifacts commands git-svn-id: https://svn.argeo.org/slc/trunk@5348 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../ui/dist/commands/CopyWorkspace.java | 63 ++++++++++--------- 1 file changed, 33 insertions(+), 30 deletions(-) diff --git a/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java b/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java index 08286ae3b..e95e57aec 100644 --- a/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java +++ b/eclipse/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/commands/CopyWorkspace.java @@ -89,51 +89,54 @@ public class CopyWorkspace extends AbstractHandler { try { if (log.isDebugEnabled()) log.debug("copy node :" + fromNode.getPath()); - - + // FIXME : small hack to enable specific workspace copy - if (fromNode.isNodeType("rep:ACL") || fromNode.isNodeType("rep:system")){ + if (fromNode.isNodeType("rep:ACL") + || fromNode.isNodeType("rep:system")) { if (log.isTraceEnabled()) log.trace("node skipped"); return; } - + // add mixins for (NodeType mixinType : fromNode.getMixinNodeTypes()) { toNode.addMixin(mixinType.getName()); } - + // Double check for (NodeType mixinType : toNode.getMixinNodeTypes()) { - log.debug(mixinType.getName()); + if (log.isDebugEnabled()) + log.debug(mixinType.getName()); } - + // process properties PropertyIterator pit = fromNode.getProperties(); properties: while (pit.hasNext()) { Property fromProperty = pit.nextProperty(); String propName = fromProperty.getName(); - try{ - String propertyName = fromProperty.getName(); - if (toNode.hasProperty(propertyName) - && toNode.getProperty(propertyName).getDefinition() - .isProtected()) - continue properties; - - if (fromProperty.getDefinition().isProtected()) - continue properties; - - if (propertyName.equals("jcr:created") - || propertyName.equals("jcr:createdBy") - || propertyName.equals("jcr:lastModified") - || propertyName.equals("jcr:lastModifiedBy")) - continue properties; - - if (fromProperty.isMultiple()) { - toNode.setProperty(propertyName, fromProperty.getValues()); - } else { - toNode.setProperty(propertyName, fromProperty.getValue()); - } + try { + String propertyName = fromProperty.getName(); + if (toNode.hasProperty(propertyName) + && toNode.getProperty(propertyName).getDefinition() + .isProtected()) + continue properties; + + if (fromProperty.getDefinition().isProtected()) + continue properties; + + if (propertyName.equals("jcr:created") + || propertyName.equals("jcr:createdBy") + || propertyName.equals("jcr:lastModified") + || propertyName.equals("jcr:lastModifiedBy")) + continue properties; + + if (fromProperty.isMultiple()) { + toNode.setProperty(propertyName, + fromProperty.getValues()); + } else { + toNode.setProperty(propertyName, + fromProperty.getValue()); + } } catch (RepositoryException e) { throw new ArgeoException("Cannot property " + propName, e); } @@ -159,11 +162,11 @@ public class CopyWorkspace extends AbstractHandler { if (!toNode.getDefinition().isProtected() && toNode.isNodeType(NodeType.MIX_LAST_MODIFIED)) JcrUtils.updateLastModified(toNode); - + // Workaround to reduce session size: artifact is a saveable unity if (toNode.isNodeType(SlcTypes.SLC_ARTIFACT)) toNode.getSession().save(); - + } catch (RepositoryException e) { throw new ArgeoException("Cannot copy " + fromNode + " to " + toNode, e); -- 2.39.2