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

108042: Merged 5.0.N (5.0.3) to HEAD-BUG-FIX (5.1/Cloud)
      107695: Merged NESS/5.0.N-2015_06_24 (5.0.2) to 5.0.N (5.0.3)
         107402: MNT-14275 - fixed the case where a Location with no path was provided when importing using UUID update
            - added a test case


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@108073 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2015-07-09 22:10:59 +00:00
parent 38a97282c6
commit 3fd4104605
3 changed files with 130 additions and 1 deletions

View File

@@ -1605,7 +1605,7 @@ public class ImporterComponent implements ImporterService
// uuid already exists // uuid already exists
String uuid = node.getUUID(); String uuid = node.getUUID();
NodeRef existingNodeRef = null; NodeRef existingNodeRef = null;
if (uuid == null) if (uuid == null && location.getPath() != null ) //need a valid location where to search
{ {
NodeRef parentNodeRef = node.getParentContext().getParentRef(); NodeRef parentNodeRef = node.getParentContext().getParentRef();

View File

@@ -37,6 +37,8 @@ import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
import org.alfresco.service.cmr.version.VersionHistory; import org.alfresco.service.cmr.version.VersionHistory;
import org.alfresco.service.cmr.version.VersionService; import org.alfresco.service.cmr.version.VersionService;
import org.alfresco.service.cmr.view.ImporterBinding.UUID_BINDING; import org.alfresco.service.cmr.view.ImporterBinding.UUID_BINDING;
import org.alfresco.service.cmr.view.ImporterBinding;
import org.alfresco.service.cmr.view.ImporterContentCache;
import org.alfresco.service.cmr.view.ImporterService; import org.alfresco.service.cmr.view.ImporterService;
import org.alfresco.service.cmr.view.Location; import org.alfresco.service.cmr.view.Location;
import org.alfresco.service.namespace.NamespaceService; import org.alfresco.service.namespace.NamespaceService;
@@ -251,5 +253,81 @@ public class ImporterComponentTest extends BaseSpringTest
authenticationComponent.setSystemUserAsCurrentUser(); authenticationComponent.setSystemUserAsCurrentUser();
System.out.println(NodeStoreInspector.dumpNodeStore(nodeService, bootstrapStoreRef)); System.out.println(NodeStoreInspector.dumpNodeStore(nodeService, bootstrapStoreRef));
} }
public void testImportFoldersUuidBindingNullUuidNullLocationPath() throws Exception
{
Location location = new Location(storeRef);
InputStream test1 = getClass().getClassLoader().getResourceAsStream("org/alfresco/repo/importer/import_folders.xml");
InputStreamReader testReader1 = new InputStreamReader(test1, "UTF-8");
try
{
importerService.importView(testReader1, location, new ImporterBinding()
{
@Override
public String getValue(String key)
{
return null;
}
@Override
public UUID_BINDING getUUIDBinding()
{
return UUID_BINDING.UPDATE_EXISTING;
}
@Override
public ImporterContentCache getImportConentCache()
{
return null;
}
@Override
public QName[] getExcludedClasses()
{
return null;
}
@Override
public boolean allowReferenceWithinTransaction()
{
return true;
}
}, new ImportTimerProgress());
}
finally
{
testReader1.close();
}
// - root
// - Main folder
// - sub folder
// - sub folder 1
// - sub folder 2
// - Archive folder
NodeRef rootNodeRef = nodeService.getRootNode(storeRef);
List<ChildAssociationRef> childAssocs = nodeService.getChildAssocs(
rootNodeRef,
RegexQNamePattern.MATCH_ALL,
new RegexQNamePattern(NamespaceService.CONTENT_MODEL_1_0_URI, "main folder"));
assertEquals("'main folder' path not found", 1, childAssocs.size());
NodeRef mainFolderNode = childAssocs.get(0).getChildRef();
childAssocs = nodeService.getChildAssocs(mainFolderNode);
assertEquals("'sub folder' path not found", 1, childAssocs.size());
NodeRef subFolderNode = childAssocs.get(0).getChildRef();
childAssocs = nodeService.getChildAssocs(subFolderNode);
assertEquals("'subsub folder' path not found", 2, childAssocs.size());
childAssocs = nodeService.getChildAssocs(
rootNodeRef,
RegexQNamePattern.MATCH_ALL,
new RegexQNamePattern(NamespaceService.CONTENT_MODEL_1_0_URI, "ArchiveFolder"));
assertEquals("'ArchiveFolder' path not found", 1, childAssocs.size());
}
} }

View File

@@ -0,0 +1,51 @@
<view:view xmlns:view="http://www.alfresco.org/view/repository/1.0" xmlns:cm="http://www.alfresco.org/model/content/1.0"
xmlns:app="http://www.alfresco.org/model/application/1.0" >
<cm:folder view:childName="cm:main folder">
<app:uifacets/>
<app:icon>space-icon-default</app:icon>
<cm:name>main folder</cm:name>
<cm:title>main folder</cm:title>
<cm:contains>
<cm:folder view:childName="cm:sub folder">
<app:uifacets />
<app:icon>space-icon-default</app:icon>
<cm:name>sub folder</cm:name>
<cm:title>sub folder</cm:title>
<cm:contains>
<cm:folder view:childName="cm:subfolder1">
<app:uifacets />
<app:icon>space-icon-default</app:icon>
<cm:name>sub folder1</cm:name>
<cm:title>sub folder1</cm:title>
</cm:folder>
<cm:folder view:childName="cm:subfolder2">
<app:uifacets />
<app:icon>space-icon-default</app:icon>
<cm:name>sub folder2</cm:name>
<cm:title>sub folder2</cm:title>
</cm:folder>
</cm:contains>
</cm:folder>
</cm:contains>
</cm:folder>
<cm:folder view:childName="cm:ArchiveFolder">
<app:uifacets />
<app:icon>space-icon-default</app:icon>
<cm:name>ArchiveFolder</cm:name>
<cm:title>ArchiveFolder</cm:title>
<cm:contains>
<cm:folder view:childName="cm:2015">
<app:uifacets />
<app:icon>space-icon-default</app:icon>
<cm:name>2015</cm:name>
<cm:title>2015</cm:title>
</cm:folder>
</cm:contains>
</cm:folder>
</view:view>