X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=eclipse%2Fplugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FCopyWorkspace.java;fp=eclipse%2Fplugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcommands%2FCopyWorkspace.java;h=e95e57aec3191b48ae69b531737b67817f062aaf;hb=94c035fa1fac1f2c7a9919854bb13770a95f8f05;hp=08286ae3b1fb3c25704767a0d7a5bd313254ad39;hpb=99f26f4dd4136b33d0e68687599b9673363319ae;p=gpl%2Fargeo-slc.git 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);