Merged V4.1-BUG-FIX to HEAD

47423: Merged V4.1-BUG-FIX-2013_02_26 to V4.1-BUG-FIX
      47381: ALF-15903 : form.getFieldLabel(field.id) sometimes returns the wrong label
         Added a check for the overridden id with the ending "-cntrl"
   47424: Fixes: ALF-17950: Content I'm Editing dashlet runs relativeDate parsing twice. Removes duplicate code and also prevents relativeTime parsing from breaking if called multiple times.
   47425: Merged V4.1-BUG-FIX-2013_02_26 to V4.1-BUG-FIX
      47386: ALF-15873: Form field validators not executed for NON mandatory date fields
         Add to context all form constraints defined in custom config.
   47426: Merged V4.1-BUG-FIX-2013_02_26 to V4.1-BUG-FIX
      47418: ALF-16385 : When the 'My activites' dashlet is narrow enough, vertical sizing of the content box is wrong.
         Recalculate a height of dashlet, when it was resized
   47427: ALF-18092: fixed issue with hidden-transitions field JSON
   47428: Merge DEV to V4.1-BUG-FIX
     46336 : ALF-16747 changing type of the root node of replicated set of nodes is not propagated to target.
   47437: Fixes ALF-17145: Pagination did not play nicely with back button.
   47439: Implements suggested fix for: ALF-16603
   47443: Fixed ALF-17255: AUDIT_PATH_REGEX regex pattern recompiled at runtime 
    - Switch to pre-compiled Pattern
   47473: Merged BRANCHES/DEV/BELARUS/V4.1-BUG-FIX-2013_02_26 to BRANCHES/DEV/V4.1-BUG-FIX:
      47313: ALF-18006 : Sending a PUT request without a Content-Type header resets the contents mimetype to application/octet-stream
          fix unit test
   47475: ALF-18092: Fixed unit test fallout from hidden transitions property serialization changes


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@47476 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Dave Ward
2013-03-03 12:36:29 +00:00
parent 0a13a1f7aa
commit 2c920d57cc
4 changed files with 52 additions and 19 deletions

View File

@@ -39,6 +39,8 @@ import org.alfresco.repo.transfer.manifest.TransferManifestNode;
import org.alfresco.repo.transfer.manifest.TransferManifestNormalNode;
import org.alfresco.service.cmr.dictionary.AspectDefinition;
import org.alfresco.service.cmr.dictionary.DictionaryService;
import org.alfresco.service.cmr.dictionary.PropertyDefinition;
import org.alfresco.service.cmr.dictionary.TypeDefinition;
import org.alfresco.service.cmr.lock.LockType;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentData;
@@ -560,7 +562,40 @@ public class RepoPrimaryManifestProcessorImpl extends AbstractManifestProcessorB
// Deal with the content properties
writeContent(nodeToUpdate, contentProps);
// Change the type of the content
if(!nodeService.getType(nodeToUpdate).equals(node.getType()))
{
// The type has changed, check the dictionary to contain the model for that type
TypeDefinition newTypeDef = dictionaryService.getType(node.getType());
if(newTypeDef == null)
{
log.warn("Failed to update the type: " + node.getType() + " for node: " + nodeToUpdate + ", as there is no type definition for it");
}
else
{
// Check the default properties
Map<QName, PropertyDefinition> typeProperties = newTypeDef.getProperties();
// Search if all the properties are in place
boolean fail = false;
for(QName key : typeProperties.keySet())
{
PropertyDefinition propDef = typeProperties.get(key);
if(!props.containsKey(key) && propDef.isMandatory())
{
log.warn("Failed to update the type: " + node.getType() + " for node: " + nodeToUpdate + ", as the mandatory property '" + propDef.getName() + "' was not transferred.");
fail = true;
break;
}
}
if(!fail)
{
// Set the new type
nodeService.setType(nodeToUpdate, node.getType());
}
}
}
// Blend the aspects together
Set<QName> suppliedAspects = new HashSet<QName>(node.getAspects());
Set<QName> existingAspects = nodeService.getAspects(nodeToUpdate);