Merged HEAD-BUG-FIX (4.3/Cloud) to HEAD (4.3/Cloud)

57038: Merged V4.2-BUG-FIX (4.2.1) to HEAD-BUG-FIX (Cloud/4.3)
      56505: Merged HEAD-BUG-FIX to V4.2-BUG-FIX (4.2.1)
         55928: <<NOT IN 4.1.6>> Merged V4.1-BUG-FIX (4.1.7) to HEAD-BUG-FIX (4.2)
            55811: Merged DEV to V4.1-BUG-FIX (4.1.7)
               55751: MNT-9076: Penultimate version cannot be accessed from Share when uploading using bulkimport
                  The changes related to creating a version for HEAD revision of imported file. 
                  Added unit test.


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@61672 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2014-02-11 18:49:38 +00:00
parent f1c9210cfe
commit 5f53db226d
7 changed files with 91 additions and 13 deletions

View File

@@ -188,10 +188,10 @@ public abstract class AbstractNodeImporter implements NodeImporter
result = importContentVersions(nodeRef, importableItem);
}
if (logger.isDebugEnabled()) logger.debug("Creating head revision of node " + nodeRef.toString());
importContentAndMetadata(nodeRef, importableItem.getHeadRevision(), metadata);
else
{
importContentAndMetadata(nodeRef, importableItem.getHeadRevision(), metadata);
}
return(result);
}
@@ -199,26 +199,30 @@ public abstract class AbstractNodeImporter implements NodeImporter
protected final int importContentVersions(NodeRef nodeRef, ImportableItem importableItem)
{
int result = 0;
Map<String, Serializable> versionProperties = new HashMap<String, Serializable>();
// Note: PROP_VERSION_LABEL is a "reserved" property, and cannot be modified by custom code.
// In other words, we can't use the version label on disk as the version label in Alfresco. :-(
// See: http://code.google.com/p/alfresco-bulk-filesystem-import/issues/detail?id=85
//versionProperties.put(ContentModel.PROP_VERSION_LABEL.toPrefixString(), String.valueOf(versionEntry.getVersion()));
versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MAJOR); // Load every version as a major version for now - see http://code.google.com/p/alfresco-bulk-filesystem-import/issues/detail?id=84
for (final ImportableItem.VersionedContentAndMetadata versionEntry : importableItem.getVersionEntries())
{
Map<String, Serializable> versionProperties = new HashMap<String, Serializable>();
MetadataLoader.Metadata metadata = loadMetadata(versionEntry);
MetadataLoader.Metadata metadata = loadMetadata(versionEntry);
importContentAndMetadata(nodeRef, versionEntry, metadata);
if (logger.isDebugEnabled()) logger.debug("Creating v" + String.valueOf(versionEntry.getVersion()) + " of node '" + nodeRef.toString() + "' (note: version label in Alfresco will not be the same - it is not currently possible to explicitly force a particular version label).");
// Note: PROP_VERSION_LABEL is a "reserved" property, and cannot be modified by custom code.
// In other words, we can't use the version label on disk as the version label in Alfresco. :-(
// See: http://code.google.com/p/alfresco-bulk-filesystem-import/issues/detail?id=85
//versionProperties.put(ContentModel.PROP_VERSION_LABEL.toPrefixString(), String.valueOf(versionEntry.getVersion()));
versionProperties.put(VersionModel.PROP_VERSION_TYPE, VersionType.MAJOR); // Load every version as a major version for now - see http://code.google.com/p/alfresco-bulk-filesystem-import/issues/detail?id=84
versionService.createVersion(nodeRef, versionProperties);
result += metadata.getProperties().size() + 4; // Add 4 for "standard" metadata properties read from filesystem
}
if (logger.isDebugEnabled()) logger.debug("Creating head revision of node " + nodeRef.toString());
ImportableItem.ContentAndMetadata contentAndMetadata = importableItem.getHeadRevision();
MetadataLoader.Metadata metadata = loadMetadata(contentAndMetadata);
importContentAndMetadata(nodeRef, importableItem.getHeadRevision(), metadata);
versionService.createVersion(nodeRef, versionProperties);
return(result);
}