mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-10-15 15:02:20 +00:00
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:
@@ -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();
|
||||||
|
|
||||||
|
@@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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>
|
Reference in New Issue
Block a user