mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.0 to HEAD
12123: Merged V2.2 to V3.0 11466: Fixed sql-query DELETE syntax 11614: Flush after putChild, fix for ETWOTWO-777 11641: Merged V2.1 to V2.2 11632: Improvements for AVM index FULL and AUTO rebuild. 11646: Upgrade scripts tweaks: 11650: Added unit test to confirm fix of ETWOTWO-740 11674: Added missing EHCache definitions for QName, Namespace and Locale caches 11825: Fixed Eclipse classpath addition of path for Oracle JDBC driver 12125: ETHREEOH-899: Image transformations do not follow Options 12127: Merged V2.2 to V3.0 11675: Node DAO optimizations 11680: Full Fix for ETWOTWO-777 + more protection for nested write transactions beneath read transactions. 11729: AVM creates and deletes no longer update the directory mod time - ETWOTWO-801 11738: Fix for ETWOTWO - fixed check for TX propagation mode 11748: Fixed ETWOTWO-578: RepositoryWebService fetchMore() does not fetch last node 11749: Incorporate feedback from ACT-5440: MySQL-specific tweaks to the upgrade scripts 11750: Moved t_qnames_dyn section to after t_qnames 11752: Fixed ETWOTWO-734: ImporterComponent uses Lucene queries 11785: Build Fix:Remove auto created person TX commit fro DB 11853: Fix for ETWOTWO-687 - missed a case when generating lists of actions for modified files list 11940: Stress test main method for ETWOTWO-744 11950: Fixed ETWOTWO-909 and ETWOTWO-911 11987: Dirty checking for attribute related DAOs 12008: Fixed test for transaction-requiring AttributeService 12128: Merged V2.2 to V3.0 11530: Merged V2.1 to V2.2 11499: Defensive clear of the security context to avoid any ticket sharing for a given user - ETWOTWO-326 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12501 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -293,18 +293,6 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
// create the node instance
|
||||
Pair<Long, NodeRef> childNodePair = nodeDaoService.newNode(parentStoreRef, newUuid, nodeTypeQName);
|
||||
|
||||
// We now have enough to declare the child association creation
|
||||
invokeBeforeCreateChildAssociation(parentRef, childNodePair.getSecond(), assocTypeQName, assocQName, true);
|
||||
|
||||
// Create the association
|
||||
Pair<Long, ChildAssociationRef> childAssocPair = nodeDaoService.newChildAssoc(
|
||||
parentNodePair.getFirst(),
|
||||
childNodePair.getFirst(),
|
||||
true,
|
||||
assocTypeQName,
|
||||
assocQName);
|
||||
ChildAssociationRef childAssocRef = childAssocPair.getSecond();
|
||||
|
||||
// Add defaults
|
||||
addDefaults(childNodePair, nodeTypeQName);
|
||||
|
||||
@@ -316,11 +304,21 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
|
||||
Map<QName, Serializable> propertiesAfter = nodeDaoService.getNodeProperties(childNodePair.getFirst());
|
||||
|
||||
// We now have enough to declare the child association creation
|
||||
invokeBeforeCreateChildAssociation(parentRef, childNodePair.getSecond(), assocTypeQName, assocQName, true);
|
||||
|
||||
// Ensure child uniqueness
|
||||
String newName = extractNameProperty(propertiesAfter);
|
||||
// Ensure uniqueness. Note that the cm:name may be null, in which case the uniqueness is still
|
||||
setChildNameUnique(childAssocPair, newName, null); // ensure uniqueness
|
||||
|
||||
// Create the association
|
||||
Pair<Long, ChildAssociationRef> childAssocPair = nodeDaoService.newChildAssoc(
|
||||
parentNodePair.getFirst(),
|
||||
childNodePair.getFirst(),
|
||||
true,
|
||||
assocTypeQName,
|
||||
assocQName,
|
||||
newName);
|
||||
ChildAssociationRef childAssocRef = childAssocPair.getSecond();
|
||||
|
||||
// Invoke policy behaviour
|
||||
invokeOnCreateNode(childAssocRef);
|
||||
invokeOnCreateChildAssociation(childAssocRef, true);
|
||||
@@ -485,8 +483,18 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
" index: " + index,
|
||||
childAssocRef);
|
||||
}
|
||||
// Get the child node name
|
||||
Map<QName, Serializable> childNodeProperties = nodeDaoService.getNodeProperties(childNodeId);
|
||||
String childNodeName = extractNameProperty(childNodeProperties);
|
||||
// set the index
|
||||
nodeDaoService.updateChildAssoc(assocPair.getFirst(), parentNodeId, childNodeId, assocTypeQName, assocQName, index);
|
||||
nodeDaoService.updateChildAssoc(
|
||||
assocPair.getFirst(),
|
||||
parentNodeId,
|
||||
childNodeId,
|
||||
assocTypeQName,
|
||||
assocQName,
|
||||
index,
|
||||
childNodeName);
|
||||
}
|
||||
|
||||
public QName getType(NodeRef nodeRef) throws InvalidNodeRefException
|
||||
@@ -800,8 +808,18 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
// Invoke policy behaviours
|
||||
invokeBeforeCreateChildAssociation(parentRef, childRef, assocTypeQName, assocQName, false);
|
||||
|
||||
// Get the node's name, if present
|
||||
Map<QName, Serializable> childNodeProperties = nodeDaoService.getNodeProperties(childNodePair.getFirst());
|
||||
String childNodeName = extractNameProperty(childNodeProperties);
|
||||
|
||||
// make the association
|
||||
Pair<Long, ChildAssociationRef> childAssocPair = nodeDaoService.newChildAssoc(parentNodeId, childNodeId, false, assocTypeQName, assocQName);
|
||||
Pair<Long, ChildAssociationRef> childAssocPair = nodeDaoService.newChildAssoc(
|
||||
parentNodeId,
|
||||
childNodeId,
|
||||
false,
|
||||
assocTypeQName,
|
||||
assocQName,
|
||||
childNodeName);
|
||||
ChildAssociationRef childAssocRef = childAssocPair.getSecond();
|
||||
// ensure name uniqueness
|
||||
setChildNameUnique(childAssocPair, childNodePair);
|
||||
@@ -1889,6 +1907,9 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
}
|
||||
}
|
||||
|
||||
// Get the new node's cm:name
|
||||
Map<QName, Serializable> newNodeProperties = nodeDaoService.getNodeProperties(nodeToMoveId);
|
||||
String newNodeChildName = extractNameProperty(newNodeProperties);
|
||||
// Modify the association directly. We do this AFTER the change of the node's store so that
|
||||
// the association reference returned is correct.
|
||||
Pair<Long, ChildAssociationRef> newParentAssocPair = nodeDaoService.updateChildAssoc(
|
||||
@@ -1897,7 +1918,8 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
nodeToMoveId,
|
||||
assocTypeQName,
|
||||
assocQName,
|
||||
-1);
|
||||
-1,
|
||||
newNodeChildName);
|
||||
ChildAssociationRef newParentAssocRef = newParentAssocPair.getSecond();
|
||||
|
||||
// Handle indexing differently if it is a store move
|
||||
@@ -2149,6 +2171,7 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
List<String> allResults = new ArrayList<String>(100);
|
||||
allResults.addAll(moveChildrenResults);
|
||||
allResults.addAll(indexChildrenResults);
|
||||
|
||||
// Done
|
||||
return allResults;
|
||||
}
|
||||
@@ -2298,4 +2321,15 @@ public class DbNodeServiceImpl extends AbstractNodeServiceImpl
|
||||
}
|
||||
return results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up transactions and deleted nodes that are older than the given minimum age.
|
||||
*
|
||||
* @param minAge the minimum age of a transaction or deleted node
|
||||
* @return Returns log message results
|
||||
*/
|
||||
private List<String> cleanUpTransactions(long minAge)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user