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:
Kevin Roast
2008-12-18 17:23:44 +00:00
parent ab4bdfc013
commit 16861e9117
32 changed files with 853 additions and 315 deletions

View File

@@ -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;
}
}