// But the copy needs to be a 'nt:frozenNode', so that it doesn't compete with the actual node
// (outside of version history) ...
Name primaryTypeName = node.getPrimaryTypeName();
Set<Name> mixinTypeNames = node.getMixinTypeNames();
props.add(factory.create(JcrLexicon.PRIMARY_TYPE, JcrNtLexicon.FROZEN_NODE));
props.add(factory.create(JcrLexicon.FROZEN_PRIMARY_TYPE, primaryTypeName));
props.add(factory.create(JcrLexicon.FROZEN_MIXIN_TYPES, mixinTypeNames));
props.add(factory.create(JcrLexicon.FROZEN_UUID, node.getIdentifier()));
props.add(factory.create(JcrLexicon.UUID, key));
addVersionedPropertiesFor(node, forceCopy, props);
MutableCachedNode newCopy = parentInVersionHistory.createChild(versionHistoryCache, key, node.name(), props);