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

@@ -27,6 +27,7 @@ package org.alfresco.repo.attributes;
import java.util.List;
import org.alfresco.repo.domain.hibernate.DirtySessionAnnotation;
import org.alfresco.service.cmr.attributes.AttrQuery;
import org.alfresco.util.Pair;
@@ -40,12 +41,14 @@ public interface AttributeDAO
* Save an attribute (recursively).
* @param attr The attribute to save.
*/
@DirtySessionAnnotation(markDirty=true)
public void save(Attribute attr);
/**
* Delete an attribute (recursively).
* @param attr The attribute to delete.
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(Attribute attr);
/**
@@ -54,6 +57,7 @@ public interface AttributeDAO
* @param query The AttrQuery.
* @return A List of key, attribute value pairs.
*/
@DirtySessionAnnotation(markDirty=false)
public List<Pair<String,Attribute>> find(MapAttribute map, AttrQuery query);
/**
@@ -61,22 +65,26 @@ public interface AttributeDAO
* @param map
* @param query
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(MapAttribute map, AttrQuery query);
/**
* Evict an Attribute from the session cache.
* @param attr
*/
@DirtySessionAnnotation(markDirty=false)
public void evict(Attribute attr);
/**
* Evict an Attribute non-recursively.
* @param attr
*/
@DirtySessionAnnotation(markDirty=false)
public void evictFlat(Attribute attr);
/**
* Force a flush.
*/
@DirtySessionAnnotation(markDirty=false)
public void flush();
}

View File

@@ -2,6 +2,8 @@ package org.alfresco.repo.attributes;
import java.util.List;
import org.alfresco.repo.domain.hibernate.DirtySessionAnnotation;
/**
* Interface for persistence of the top level attribute map.
* @author britt
@@ -12,18 +14,21 @@ public interface GlobalAttributeEntryDAO
* Save an entry.
* @param entry To save.
*/
@DirtySessionAnnotation(markDirty=true)
public void save(GlobalAttributeEntry entry);
/**
* Delete an entry.
* @param entry To delete.
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(GlobalAttributeEntry entry);
/**
* Delete an entry by name.
* @param name The name of the entry.
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(String name);
/**
@@ -31,11 +36,13 @@ public interface GlobalAttributeEntryDAO
* @param name The name of the attribute.
* @return The entry or null.
*/
@DirtySessionAnnotation(markDirty=false)
public GlobalAttributeEntry get(String name);
/**
* Get all keys for global attributes.
* @return A list of all top level keys.
*/
@DirtySessionAnnotation(markDirty=false)
public List<String> getKeys();
}

View File

@@ -27,6 +27,8 @@ package org.alfresco.repo.attributes;
import java.util.List;
import org.alfresco.repo.domain.hibernate.DirtySessionAnnotation;
/**
* DAO interface for ListEntries.
* @author britt
@@ -37,6 +39,7 @@ public interface ListEntryDAO
* Save a new Entry.
* @param entry
*/
@DirtySessionAnnotation(markDirty=true)
public void save(ListEntry entry);
/**
@@ -45,6 +48,7 @@ public interface ListEntryDAO
* @param index The index.
* @return The ListEntry.
*/
@DirtySessionAnnotation(markDirty=false)
public ListEntry get(ListEntryKey key);
/**
@@ -52,18 +56,21 @@ public interface ListEntryDAO
* @param list The ListAttribute.
* @return The entries.
*/
@DirtySessionAnnotation(markDirty=false)
public List<ListEntry> get(ListAttribute list);
/**
* Delete a list entry.
* @param entry
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(ListEntry entry);
/**
* Delete all entries from a list.
* @param list
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(ListAttribute list);
/**
@@ -71,5 +78,6 @@ public interface ListEntryDAO
* @param list The list.
* @return The count of entries.
*/
@DirtySessionAnnotation(markDirty=false)
public int size(ListAttribute list);
}

View File

@@ -2,6 +2,8 @@ package org.alfresco.repo.attributes;
import java.util.List;
import org.alfresco.repo.domain.hibernate.DirtySessionAnnotation;
/**
* Interface for MapEntry persistence.
* @author britt
@@ -12,18 +14,21 @@ public interface MapEntryDAO
* Save a MapEntry.
* @param entry To save.
*/
@DirtySessionAnnotation(markDirty=true)
public void save(MapEntry entry);
/**
* Delete a MapEntry.
* @param entry
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(MapEntry entry);
/**
* Delete all entries for a map.
* @param mapAttr The map to purge.
*/
@DirtySessionAnnotation(markDirty=true)
public void delete(MapAttribute mapAttr);
/**
@@ -31,6 +36,7 @@ public interface MapEntryDAO
* @param key The key of the entry.
* @return A MapEntry or null.
*/
@DirtySessionAnnotation(markDirty=false)
public MapEntry get(MapEntryKey key);
/**
@@ -38,6 +44,7 @@ public interface MapEntryDAO
* @param mapAttr
* @return A List of all entries in the given map.
*/
@DirtySessionAnnotation(markDirty=false)
public List<MapEntry> get(MapAttribute mapAttr);
/**
@@ -45,11 +52,13 @@ public interface MapEntryDAO
* @param mapAttr The MapAttribute/
* @return The number of entries.
*/
@DirtySessionAnnotation(markDirty=false)
public int size(MapAttribute mapAttr);
/**
* Evict an entry.
* @param entry
*/
@DirtySessionAnnotation(markDirty=false)
public void evict(MapEntry entry);
}

View File

@@ -43,6 +43,7 @@ import org.alfresco.repo.attributes.MapEntry;
import org.alfresco.repo.attributes.MapEntryDAO;
import org.alfresco.repo.attributes.Attribute.Type;
import org.alfresco.repo.avm.hibernate.SessionCacheChecker;
import org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor;
import org.alfresco.service.cmr.attributes.AttrQuery;
import org.alfresco.service.cmr.attributes.AttrQueryHelper;
import org.alfresco.util.Pair;
@@ -128,6 +129,7 @@ public class AttributeDAOHibernate extends HibernateDaoSupport implements
{
hQuery.setParameter(param.getKey(), param.getValue());
}
DirtySessionMethodInterceptor.setQueryFlushMode(getSession(), hQuery);
List<MapEntry> hits = (List<MapEntry>)hQuery.list();
List<Pair<String, Attribute>> result = new ArrayList<Pair<String, Attribute>>();
for (MapEntry entry : hits)

View File

@@ -32,6 +32,7 @@ import org.alfresco.repo.attributes.AttributeDAO;
import org.alfresco.repo.attributes.GlobalAttributeEntry;
import org.alfresco.repo.attributes.GlobalAttributeEntryDAO;
import org.alfresco.repo.attributes.GlobalAttributeEntryImpl;
import org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
@@ -94,6 +95,7 @@ public class GlobalAttributeEntryDAOHibernate extends HibernateDaoSupport
public List<String> getKeys()
{
Query query = getSession().createQuery("select gae.name from GlobalAttributeEntryImpl gae");
DirtySessionMethodInterceptor.setQueryFlushMode(getSession(), query);
return (List<String>)query.list();
}
}

View File

@@ -32,6 +32,7 @@ import org.alfresco.repo.attributes.ListEntry;
import org.alfresco.repo.attributes.ListEntryDAO;
import org.alfresco.repo.attributes.ListEntryImpl;
import org.alfresco.repo.attributes.ListEntryKey;
import org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
@@ -76,6 +77,7 @@ public class ListEntryDAOHibernate extends HibernateDaoSupport implements
{
Query query = getSession().createQuery("from ListEntryImpl le where le.key.list = :list");
query.setEntity("list", list);
DirtySessionMethodInterceptor.setQueryFlushMode(getSession(), query);
return (List<ListEntry>)query.list();
}
@@ -94,6 +96,7 @@ public class ListEntryDAOHibernate extends HibernateDaoSupport implements
{
Query query = getSession().createQuery("select count(*) from ListEntryImpl le where le.key.list = :list");
query.setEntity("list", list);
DirtySessionMethodInterceptor.setQueryFlushMode(getSession(), query);
return ((Long)query.uniqueResult()).intValue();
}
}

View File

@@ -32,6 +32,7 @@ import org.alfresco.repo.attributes.MapEntry;
import org.alfresco.repo.attributes.MapEntryDAO;
import org.alfresco.repo.attributes.MapEntryImpl;
import org.alfresco.repo.attributes.MapEntryKey;
import org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
@@ -76,6 +77,7 @@ public class MapEntryDAOHibernate extends HibernateDaoSupport implements
{
Query query = getSession().createQuery("from MapEntryImpl me where me.key.map = :map");
query.setEntity("map", mapAttr);
DirtySessionMethodInterceptor.setQueryFlushMode(getSession(), query);
return (List<MapEntry>)query.list();
}
@@ -94,6 +96,7 @@ public class MapEntryDAOHibernate extends HibernateDaoSupport implements
{
Query query = getSession().createQuery("select count(*) from MapEntryImpl me where me.key.map = :map");
query.setEntity("map", mapAttr);
DirtySessionMethodInterceptor.setQueryFlushMode(getSession(), query);
return ((Long)query.uniqueResult()).intValue();
}