(childNodeTypeQNameIds));
ChildAssocResultHandler resultHandler = new ChildAssocResultHandler(resultsCallback);
+ // TODO MyBatis workaround - see also http://code.google.com/p/mybatis/issues/detail?id=58 (and #139, #234, ...)
+ template.clearCache();
+
template.select(SELECT_CHILD_ASSOCS_OF_PARENT, assoc, resultHandler);
resultsCallback.done();
}
@@ -1144,6 +1147,10 @@ public class NodeDAOImpl extends AbstractNodeDAOImpl
}
ChildAssocResultHandler resultHandler = new ChildAssocResultHandler(resultsCallback);
+
+ // TODO MyBatis workaround - see also http://code.google.com/p/mybatis/issues/detail?id=58 (and #139, #234, ...)
+ template.clearCache();
+
template.select(SELECT_CHILD_ASSOCS_OF_PARENT_WITHOUT_PARENT_ASSOCS_OF_TYPE, assoc, resultHandler);
resultsCallback.done();
}
diff --git a/source/java/org/alfresco/repo/domain/patch/AbstractPatchDAOImpl.java b/source/java/org/alfresco/repo/domain/patch/AbstractPatchDAOImpl.java
index db0324691d..31be0e3cbd 100644
--- a/source/java/org/alfresco/repo/domain/patch/AbstractPatchDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/patch/AbstractPatchDAOImpl.java
@@ -27,7 +27,6 @@ import org.alfresco.repo.domain.contentdata.ContentDataDAO;
import org.alfresco.service.cmr.repository.ContentData;
import org.apache.ibatis.session.ResultHandler;
-
/**
* Abstract implementation for Patch DAO.
*
@@ -217,6 +216,7 @@ public abstract class AbstractPatchDAOImpl implements PatchDAO, BatchingDAO
protected abstract int deleteAclMemberEntitiesForAcls(List aclIds);
// note: caller's row handler is expected to migrate the attrs
+ @Override
public void migrateOldAttrTenants(ResultHandler resultHandler)
{
getOldAttrTenantsImpl(resultHandler);
@@ -225,6 +225,7 @@ public abstract class AbstractPatchDAOImpl implements PatchDAO, BatchingDAO
protected abstract void getOldAttrTenantsImpl(ResultHandler resultHandler);
// note: caller's row handler is expected to migrate the attrs
+ @Override
public void migrateOldAttrAVMLocks(ResultHandler resultHandler)
{
getOldAttrAVMLocksImpl(resultHandler);
@@ -233,6 +234,7 @@ public abstract class AbstractPatchDAOImpl implements PatchDAO, BatchingDAO
protected abstract void getOldAttrAVMLocksImpl(ResultHandler resultHandler);
// note: caller's row handler is expected to migrate the attrs
+ @Override
public void migrateOldAttrPropertyBackedBeans(ResultHandler resultHandler)
{
getOldAttrPropertyBackedBeansImpl(resultHandler);
@@ -241,6 +243,7 @@ public abstract class AbstractPatchDAOImpl implements PatchDAO, BatchingDAO
protected abstract void getOldAttrPropertyBackedBeansImpl(ResultHandler resultHandler);
// note: caller's row handler is expected to migrate the attrs
+ @Override
public void migrateOldAttrChainingURS(ResultHandler resultHandler)
{
getOldAttrChainingURSImpl(resultHandler);
@@ -248,18 +251,11 @@ public abstract class AbstractPatchDAOImpl implements PatchDAO, BatchingDAO
protected abstract void getOldAttrChainingURSImpl(ResultHandler resultHandler);
+ @Override
public List getOldAttrCustomNames()
{
return getOldAttrCustomNamesImpl();
}
protected abstract List getOldAttrCustomNamesImpl();
-
- public void deleteAllOldAttrs()
- {
- deleteAllOldAttrsImpl();
- }
-
- protected abstract void deleteAllOldAttrsImpl();
-
}
diff --git a/source/java/org/alfresco/repo/domain/patch/PatchDAO.java b/source/java/org/alfresco/repo/domain/patch/PatchDAO.java
index ac4860630c..bd0a7c973c 100644
--- a/source/java/org/alfresco/repo/domain/patch/PatchDAO.java
+++ b/source/java/org/alfresco/repo/domain/patch/PatchDAO.java
@@ -203,16 +203,16 @@ public interface PatchDAO
*/
public void migrateOldAttrChainingURS(ResultHandler resultHandler);
+ /**
+ * Drop old attribute alf_*attribute* tables
+ */
+ public void migrateOldAttrDropTables();
+
/**
* Get custom global attribute names (if any)
*/
public List getOldAttrCustomNames();
- /**
- * Delete all old attributes (from alf_*attribute* tables)
- */
- public void deleteAllOldAttrs();
-
/**
* Get shared acls with inheritance issues
* @return
diff --git a/source/java/org/alfresco/repo/domain/patch/ibatis/AppliedPatchDAOImpl.java b/source/java/org/alfresco/repo/domain/patch/ibatis/AppliedPatchDAOImpl.java
index 82857927dd..ca7462fef1 100644
--- a/source/java/org/alfresco/repo/domain/patch/ibatis/AppliedPatchDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/patch/ibatis/AppliedPatchDAOImpl.java
@@ -73,37 +73,4 @@ public class AppliedPatchDAOImpl extends AbstractAppliedPatchDAOImpl
{
return (List) template.selectList(SELECT_ALL_APPLIED_PATCH);
}
-
-//
-// @Override
-// protected EncodingEntity getEncodingEntity(Long id)
-// {
-// EncodingEntity encodingEntity = new EncodingEntity();
-// encodingEntity.setId(id);
-// encodingEntity = (EncodingEntity) template.queryForObject(SELECT_ENCODING_BY_ID, encodingEntity);
-// // Done
-// return encodingEntity;
-// }
-//
-// @Override
-// protected EncodingEntity getEncodingEntity(String encoding)
-// {
-// EncodingEntity encodingEntity = new EncodingEntity();
-// encodingEntity.setEncoding(encoding == null ? null : encoding.toLowerCase());
-// encodingEntity = (EncodingEntity) template.queryForObject(SELECT_ENCODING_BY_KEY, encodingEntity);
-// // Could be null
-// return encodingEntity;
-// }
-//
-// @Override
-// protected EncodingEntity createEncodingEntity(String encoding)
-// {
-// EncodingEntity encodingEntity = new EncodingEntity();
-// encodingEntity.setVersion(MimetypeEntity.CONST_LONG_ZERO);
-// encodingEntity.setEncoding(encoding == null ? null : encoding.toLowerCase());
-// Long id = (Long) template.insert(INSERT_ENCODING, encodingEntity);
-// encodingEntity.setId(id);
-// // Done
-// return encodingEntity;
-// }
}
diff --git a/source/java/org/alfresco/repo/domain/patch/ibatis/PatchDAOImpl.java b/source/java/org/alfresco/repo/domain/patch/ibatis/PatchDAOImpl.java
index 1203420323..e113085e6b 100644
--- a/source/java/org/alfresco/repo/domain/patch/ibatis/PatchDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/patch/ibatis/PatchDAOImpl.java
@@ -89,11 +89,12 @@ public class PatchDAOImpl extends AbstractPatchDAOImpl
private static final String SELECT_OLD_ATTR_CHAINING_URS = "alfresco.patch.select_oldAttrChainingURS";
private static final String SELECT_OLD_ATTR_CUSTOM_NAMES = "alfresco.patch.select_oldAttrCustomNames";
- private static final String DELETE_OLD_ATTR_LIST = "alfresco.patch.delete_oldAttrAlfListAttributeEntries";
- private static final String DELETE_OLD_ATTR_MAP = "alfresco.patch.delete_oldAttrAlfMapAttributeEntries";
- private static final String DELETE_OLD_ATTR_GLOBAL = "alfresco.patch.delete_oldAttrAlfGlobalAttributes";
- private static final String DELETE_OLD_ATTR = "alfresco.patch.delete_oldAttrAlfAttributes";
-
+ private static final String DROP_OLD_ATTR_LIST = "alfresco.patch.drop_oldAttrAlfListAttributeEntries";
+ private static final String DROP_OLD_ATTR_MAP = "alfresco.patch.drop_oldAttrAlfMapAttributeEntries";
+ private static final String DROP_OLD_ATTR_GLOBAL = "alfresco.patch.drop_oldAttrAlfGlobalAttributes";
+ private static final String DROP_OLD_ATTR = "alfresco.patch.drop_oldAttrAlfAttributes";
+ private static final String DROP_OLD_ATTR_SEQ = "alfresco.patch.drop_oldAttrAlfAttributes_seq";
+
private static final String SELECT_ACLS_THAT_INHERIT_FROM_NON_PRIMARY_PARENT = "alfresco.patch.select_aclsThatInheritFromNonPrimaryParent";
private static final String SELECT_ACLS_THAT_INHERIT_WITH_INHERITANCE_UNSET = "alfresco.patch.select_aclsThatInheritWithInheritanceUnset";
private static final String SELECT_DEFINING_ACLS_THAT_DO_NOT_INHERIT_CORRECTLY_FROM_THE_PRIMARY_PARENT = "alfresco.patch.select_definingAclsThatDoNotInheritCorrectlyFromThePrimaryParent";
@@ -102,7 +103,7 @@ public class PatchDAOImpl extends AbstractPatchDAOImpl
private LocaleDAO localeDAO;
- private SqlSessionTemplate template;
+ protected SqlSessionTemplate template;
public final void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate)
{
@@ -538,23 +539,46 @@ public class PatchDAOImpl extends AbstractPatchDAOImpl
}
@Override
- protected void deleteAllOldAttrsImpl()
+ public void migrateOldAttrDropTables()
{
- int deleted = 0;
-
- deleted = template.delete(DELETE_OLD_ATTR_LIST);
- logger.info("Deleted "+deleted+" rows from alf_list_attribute_entries");
-
- deleted = template.delete(DELETE_OLD_ATTR_MAP);
- logger.info("Deleted "+deleted+" rows from alf_map_attribute_entries");
-
- deleted = template.delete(DELETE_OLD_ATTR_GLOBAL);
- logger.info("Deleted "+deleted+" rows from alf_global_attributes");
-
- deleted = template.delete(DELETE_OLD_ATTR);
- logger.info("Deleted "+deleted+" rows from alf_attributes");
+ template.update(DROP_OLD_ATTR_LIST);
+ template.update(DROP_OLD_ATTR_MAP);
+ template.update(DROP_OLD_ATTR_GLOBAL);
+ template.update(DROP_OLD_ATTR);
}
+ /**
+ * PostgreSQL-specific DAO
+ *
+ * @author Derek Hulley
+ * @since 4.0
+ */
+ public static class PostgreSQL extends PatchDAOImpl
+ {
+ @Override
+ public void migrateOldAttrDropTables()
+ {
+ super.migrateOldAttrDropTables();
+ template.update(DROP_OLD_ATTR_SEQ);
+ }
+ }
+
+ /**
+ * Oracle-specific DAO
+ *
+ * @author Derek Hulley
+ * @since 4.0
+ */
+ public static class Oracle extends PatchDAOImpl
+ {
+ @Override
+ public void migrateOldAttrDropTables()
+ {
+ super.migrateOldAttrDropTables();
+ template.update(DROP_OLD_ATTR_SEQ);
+ }
+ }
+
@SuppressWarnings("unchecked")
@Override
public List