Merged DEV to HEAD:

29876: Removed emotive language from build.xml
   29877: Made getter final; should make members final.
   29879: Extra check for erroneous, pre-existing transactions
   29880: ALF-8966: RSOLR 042: Node deletes keep DB ID (ALF-8965)
          - There is no longer code to change the store ID and UUID for an entry in alf_node
          - During store moves, new node entries are created and node data is moved onto the new node
          - Primarily affects archive/restore use cases
          - Any NodeRef can be tracked using the DB ID associated with it (see NodeService.getNodeStatus)
   29926: Minor toString modification
   29927: Code cleanup: line endings, non-javadoc and isDebugEnabled
   29928: Moved exception absorbtion out of the non-propagating txn (and cleaned up unused code)
   29930: Test for ALF-5714: Write transactions serialized on MySQL
          - The fix is to add this to the MySQL configuration and restart the MySQL server
            innodb_locks_unsafe_for_binlog = true
            See: http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_locks_unsafe_for_binlog
          - The test holds DB resources from one archive process while doing another.  It fails without the setting given.
          - TODO: Documentation required
   29969: ALF-8966: RSOLR 042: Node deletes keep DB ID (ALF-8965)
          - Fixed timing of circular hierarchy detection
   29972: ALF-8966: RSOLR 042: Node deletes keep DB ID (ALF-8965)
          - Fixed ACL retrieval from old parent node during move
          - Fixes PermissionServiceTest failures
   29979: Fix test's initialization
   29987: Fixed txn demarcation during write of transfer report


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30044 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2011-08-24 23:09:39 +00:00
parent 9c5e894a97
commit c72a19b637
16 changed files with 2316 additions and 2096 deletions

View File

@@ -157,6 +157,7 @@ public interface NodeDAO extends NodeBulkLoader
* @return Returns the details of the child association created
* @throws InvalidTypeException if the node type is invalid or if the node type
* is not a valid real node
* @throws NodeExistsException if the target reference is already taken by a live node
*/
public ChildAssocEntity newNode(
Long parentNodeId,
@@ -167,35 +168,32 @@ public interface NodeDAO extends NodeBulkLoader
QName nodeTypeQName,
Locale nodeLocale,
String childNodeName,
Map<QName, Serializable> auditableProperties/*,
Map<QName, Serializable> ownableProperties*/) throws InvalidTypeException;
Map<QName, Serializable> auditableProperties) throws InvalidTypeException;
/**
* Update a node's primary association, giving it a new parent and new association parameters.
* <p/>
* <b>**NEW**:</b> If the parent node's store differs from the child node's store, then the
* child node's store is updated. Store move conflicts are automatically handled by assigning
* new UUIDs to the existing target node.
* <b>**NEW**:</b> If the parent node's store differs from the child node's store, then a new
* child node's is created.
*
* @param childNodeId the child node that is moving
* @param newParentNodeId the new parent node (may not be <tt>null</tt>)
* @param assocTypeQName the new association type or <tt>null</tt> to keep the existing type
* @param assocQName the new association qname or <tt>null</tt> to keep the existing name
* @return Returns the new association reference
* @return Returns the (first) new association reference and new child reference (second)
* @throws NodeExistsException if the target UUID of the move (in case of a store move) already exists
*/
public Pair<Long, ChildAssociationRef> moveNode(
public Pair<Pair<Long, ChildAssociationRef>, Pair<Long, NodeRef>> moveNode(
Long childNodeId,
Long newParentNodeId,
QName assocTypeQName,
QName assocQName);
/**
* @param storeRef the new store or <tt>null</tt> to keep the existing one
* @param uuid the new UUID for the node or <tt>null</tt> to keep it the same
* @param nodeTypeQName the new type QName for the node or <tt>null</tt> to keep the existing one
* @param nodeLocale the new locale for the node or <tt>null</tt> to keep the existing one
*/
public void updateNode(Long nodeId, StoreRef storeRef, String uuid, QName nodeTypeQName, Locale nodeLocale);
public void updateNode(Long nodeId, QName nodeTypeQName, Locale nodeLocale);
public void setNodeAclId(Long nodeId, Long aclId);