Merged V2.9 to HEAD

10561: Merged V2.2 to V2.9
      9882: Node DAO separation
   10580: Merged V2.2 to V2.9
      10576: Missing onContentDelete firing
      10577: More policies: beforeCreateNode and beforeDeleteNode when archiving nodes in hierarchy
         - Updated UsageService and TenantService to conform to the new node DAO (more separation)
         - TODO: Tenant node interceptor not present.  This must be added if Multi-Tentant features are required.
   - NodeMonitor event processing now checks that the nodes are still valid before processing.
   - onMove firing was breaking NodeMonitor.  Changed onMove to not fire when nodes are moved between stores.
   - Raised ALFCOM-1912: ClassCastException when accessing property of type ver2:versionNumber
   - Pull setFixedAcls fully into Node DAO for simpler and speedier execution


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@10709 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2008-09-04 00:11:13 +00:00
parent 0876d67c4d
commit 3227355279
58 changed files with 4610 additions and 3230 deletions

View File

@@ -30,12 +30,13 @@ import java.util.Set;
import org.alfresco.repo.domain.Node;
import org.alfresco.repo.domain.UsageDelta;
import org.alfresco.repo.domain.UsageDeltaDAO;
import org.alfresco.repo.node.db.NodeDaoService;
import org.alfresco.repo.transaction.TransactionalDao;
import org.alfresco.repo.usage.UsageDeltaDAO;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.util.GUID;
import org.alfresco.util.Pair;
import org.alfresco.util.ParameterCheck;
import org.hibernate.Query;
import org.hibernate.Session;
@@ -130,22 +131,22 @@ public class HibernateUsageDeltaDAO extends HibernateDaoSupport implements Usage
getSession().flush();
}
private Node getNodeNotNull(NodeRef nodeRef) throws InvalidNodeRefException
private Long getNodeIdNotNull(NodeRef nodeRef) throws InvalidNodeRefException
{
ParameterCheck.mandatory("nodeRef", nodeRef);
Node unchecked = nodeDaoService.getNode(nodeRef);
if (unchecked == null)
Pair<Long, NodeRef> nodePair = nodeDaoService.getNodePair(nodeRef);
if (nodePair == null)
{
throw new InvalidNodeRefException("Node does not exist: " + nodeRef, nodeRef);
}
return unchecked;
return nodePair.getFirst();
}
public int deleteDeltas(NodeRef nodeRef)
{
Node node = getNodeNotNull(nodeRef);
return deleteDeltas(node.getId());
Long nodeId = getNodeIdNotNull(nodeRef);
return deleteDeltas(nodeId);
}
@SuppressWarnings("unchecked")
@@ -170,13 +171,13 @@ public class HibernateUsageDeltaDAO extends HibernateDaoSupport implements Usage
@SuppressWarnings("unchecked")
public long getTotalDeltaSize(NodeRef nodeRef)
{
final Node node = getNodeNotNull(nodeRef);
final Long nodeId = getNodeIdNotNull(nodeRef);
HibernateCallback callback = new HibernateCallback()
{
public Object doInHibernate(Session session)
{
Query query = session.getNamedQuery(QUERY_GET_TOTAL_DELTA_SIZE);
query.setParameter("node", node);
query.setParameter("nodeId", nodeId);
query.setReadOnly(true);
return query.uniqueResult();
}
@@ -189,7 +190,8 @@ public class HibernateUsageDeltaDAO extends HibernateDaoSupport implements Usage
public void insertDelta(NodeRef usageNodeRef, long deltaSize)
{
Node node = getNodeNotNull(usageNodeRef);
Long nodeId = getNodeIdNotNull(usageNodeRef);
Node node = (Node) getHibernateTemplate().get(NodeImpl.class, nodeId);
UsageDelta delta = new UsageDeltaImpl();
// delta properties