diff --git a/source/java/org/alfresco/cmis/changelog/CMISChangeLogServiceTest.java b/source/java/org/alfresco/cmis/changelog/CMISChangeLogServiceTest.java
index acf354d44e..99476d00fc 100644
--- a/source/java/org/alfresco/cmis/changelog/CMISChangeLogServiceTest.java
+++ b/source/java/org/alfresco/cmis/changelog/CMISChangeLogServiceTest.java
@@ -54,7 +54,8 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
import org.springframework.context.ApplicationContext;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
+
/**
* Base tests for {@link CMISChangeLogServiceImpl}
diff --git a/source/java/org/alfresco/linkvalidation/HrefStatusMap.java b/source/java/org/alfresco/linkvalidation/HrefStatusMap.java
index 7d648d9cad..5e33e84108 100644
--- a/source/java/org/alfresco/linkvalidation/HrefStatusMap.java
+++ b/source/java/org/alfresco/linkvalidation/HrefStatusMap.java
@@ -26,7 +26,7 @@ package org.alfresco.linkvalidation;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A synchronized wrapper for the ephemeral cache of href status results.
diff --git a/source/java/org/alfresco/linkvalidation/LinkValidationAction.java b/source/java/org/alfresco/linkvalidation/LinkValidationAction.java
index 28efb8115b..54dc5646bc 100644
--- a/source/java/org/alfresco/linkvalidation/LinkValidationAction.java
+++ b/source/java/org/alfresco/linkvalidation/LinkValidationAction.java
@@ -35,7 +35,7 @@ import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.avmsync.AVMSyncException;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/activities/post/lookup/PostLookup.java b/source/java/org/alfresco/repo/activities/post/lookup/PostLookup.java
index d463a2580a..42945e0fd1 100644
--- a/source/java/org/alfresco/repo/activities/post/lookup/PostLookup.java
+++ b/source/java/org/alfresco/repo/activities/post/lookup/PostLookup.java
@@ -36,7 +36,7 @@ import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.transaction.TransactionService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.PropertyCheck;
import org.alfresco.util.VmShutdownListener;
import org.apache.commons.logging.Log;
diff --git a/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java
index 4b30f33483..fe81e05e1d 100644
--- a/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java
+++ b/source/java/org/alfresco/repo/admin/patch/impl/ContentUrlConverterPatch.java
@@ -59,7 +59,7 @@ import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.extensions.surf.util.I18NUtil;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.PropertyCheck;
/**
diff --git a/source/java/org/alfresco/repo/admin/patch/impl/ResetWCMToGroupBasedPermissionsPatch.java b/source/java/org/alfresco/repo/admin/patch/impl/ResetWCMToGroupBasedPermissionsPatch.java
index 943da1a20d..45ead05f20 100644
--- a/source/java/org/alfresco/repo/admin/patch/impl/ResetWCMToGroupBasedPermissionsPatch.java
+++ b/source/java/org/alfresco/repo/admin/patch/impl/ResetWCMToGroupBasedPermissionsPatch.java
@@ -59,7 +59,7 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
diff --git a/source/java/org/alfresco/repo/admin/registry/RegistryServiceImpl.java b/source/java/org/alfresco/repo/admin/registry/RegistryServiceImpl.java
index 087a818563..90574d988b 100644
--- a/source/java/org/alfresco/repo/admin/registry/RegistryServiceImpl.java
+++ b/source/java/org/alfresco/repo/admin/registry/RegistryServiceImpl.java
@@ -40,7 +40,7 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.PropertyCheck;
import org.alfresco.util.PropertyMap;
import org.apache.commons.logging.Log;
diff --git a/source/java/org/alfresco/repo/attributes/AttributeDAO.java b/source/java/org/alfresco/repo/attributes/AttributeDAO.java
index 8f18a148de..d7261f1a1d 100644
--- a/source/java/org/alfresco/repo/attributes/AttributeDAO.java
+++ b/source/java/org/alfresco/repo/attributes/AttributeDAO.java
@@ -23,7 +23,7 @@ import java.util.List;
import org.alfresco.repo.domain.hibernate.DirtySessionAnnotation;
import org.alfresco.service.cmr.attributes.AttrQuery;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Interface for persistence operations on attributes.
diff --git a/source/java/org/alfresco/repo/attributes/AttributeServiceImpl.java b/source/java/org/alfresco/repo/attributes/AttributeServiceImpl.java
index 22c4d902e2..1d999742de 100644
--- a/source/java/org/alfresco/repo/attributes/AttributeServiceImpl.java
+++ b/source/java/org/alfresco/repo/attributes/AttributeServiceImpl.java
@@ -29,7 +29,7 @@ import org.alfresco.service.cmr.attributes.AttributeService;
import org.alfresco.service.cmr.avm.AVMBadArgumentException;
import org.alfresco.service.cmr.avm.AVMNotFoundException;
import org.alfresco.service.cmr.avm.AVMWrongTypeException;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Implementation of the AttributeService interface.
diff --git a/source/java/org/alfresco/repo/attributes/AttributeServiceTest.java b/source/java/org/alfresco/repo/attributes/AttributeServiceTest.java
index 122ce026f5..df2e86c6f4 100644
--- a/source/java/org/alfresco/repo/attributes/AttributeServiceTest.java
+++ b/source/java/org/alfresco/repo/attributes/AttributeServiceTest.java
@@ -36,7 +36,7 @@ import org.alfresco.service.cmr.attributes.AttrQueryLTE;
import org.alfresco.service.cmr.attributes.AttrQueryLike;
import org.alfresco.service.cmr.attributes.AttrQueryNE;
import org.alfresco.service.cmr.attributes.AttributeService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import junit.framework.TestCase;
diff --git a/source/java/org/alfresco/repo/attributes/AttributeServiceTransportService.java b/source/java/org/alfresco/repo/attributes/AttributeServiceTransportService.java
index 167b8750d9..33961ddc50 100644
--- a/source/java/org/alfresco/repo/attributes/AttributeServiceTransportService.java
+++ b/source/java/org/alfresco/repo/attributes/AttributeServiceTransportService.java
@@ -26,7 +26,7 @@ import org.alfresco.service.cmr.attributes.AttrQuery;
import org.alfresco.service.cmr.attributes.AttributeService;
import org.alfresco.service.cmr.remote.AttributeServiceTransport;
import org.alfresco.service.cmr.security.AuthenticationService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Server side implementation of transport for AttributeService.
diff --git a/source/java/org/alfresco/repo/attributes/hibernate/AttributeDAOHibernate.java b/source/java/org/alfresco/repo/attributes/hibernate/AttributeDAOHibernate.java
index 31b540bf3f..ffb2120d1b 100644
--- a/source/java/org/alfresco/repo/attributes/hibernate/AttributeDAOHibernate.java
+++ b/source/java/org/alfresco/repo/attributes/hibernate/AttributeDAOHibernate.java
@@ -36,7 +36,7 @@ import org.alfresco.repo.attributes.Attribute.Type;
import org.alfresco.repo.domain.hibernate.DirtySessionMethodInterceptor;
import org.alfresco.service.cmr.attributes.AttrQuery;
import org.alfresco.service.cmr.attributes.AttrQueryHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
diff --git a/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java b/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java
index 01896eeaa6..513f362bb4 100644
--- a/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java
+++ b/source/java/org/alfresco/repo/audit/hibernate/HibernateAuditDAO.java
@@ -54,7 +54,7 @@ import org.apache.commons.logging.LogFactory;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.mapping.Column;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.LocalSessionFactoryBean;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
diff --git a/source/java/org/alfresco/repo/avm/AVMExpiredContentProcessor.java b/source/java/org/alfresco/repo/avm/AVMExpiredContentProcessor.java
index 0afe32cca6..3625604d37 100644
--- a/source/java/org/alfresco/repo/avm/AVMExpiredContentProcessor.java
+++ b/source/java/org/alfresco/repo/avm/AVMExpiredContentProcessor.java
@@ -60,7 +60,7 @@ import org.alfresco.service.cmr.workflow.WorkflowTask;
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.wcm.sandbox.SandboxFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java b/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java
index 2300dab744..c7ab9fc0df 100644
--- a/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java
+++ b/source/java/org/alfresco/repo/avm/AVMLockingAwareService.java
@@ -43,7 +43,7 @@ import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.wcm.util.WCMUtil;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
diff --git a/source/java/org/alfresco/repo/avm/AVMNodeConverter.java b/source/java/org/alfresco/repo/avm/AVMNodeConverter.java
index 8d23864d7d..57bc9d02be 100644
--- a/source/java/org/alfresco/repo/avm/AVMNodeConverter.java
+++ b/source/java/org/alfresco/repo/avm/AVMNodeConverter.java
@@ -22,7 +22,7 @@ import org.alfresco.repo.avm.util.AVMUtil;
import org.alfresco.service.cmr.avm.AVMException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/AVMNodeConverterTest.java b/source/java/org/alfresco/repo/avm/AVMNodeConverterTest.java
index 1ddf99d760..751536441d 100644
--- a/source/java/org/alfresco/repo/avm/AVMNodeConverterTest.java
+++ b/source/java/org/alfresco/repo/avm/AVMNodeConverterTest.java
@@ -19,7 +19,7 @@
package org.alfresco.repo.avm;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import junit.framework.TestCase;
diff --git a/source/java/org/alfresco/repo/avm/AVMNodeService.java b/source/java/org/alfresco/repo/avm/AVMNodeService.java
index 6cd0bb93b8..b4ef0d866c 100644
--- a/source/java/org/alfresco/repo/avm/AVMNodeService.java
+++ b/source/java/org/alfresco/repo/avm/AVMNodeService.java
@@ -66,7 +66,7 @@ import org.alfresco.service.cmr.repository.datatype.TypeConversionException;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNamePattern;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/AVMRemoteLocal.java b/source/java/org/alfresco/repo/avm/AVMRemoteLocal.java
index 4003f9dc6b..d4382ca7a5 100644
--- a/source/java/org/alfresco/repo/avm/AVMRemoteLocal.java
+++ b/source/java/org/alfresco/repo/avm/AVMRemoteLocal.java
@@ -34,7 +34,7 @@ import org.alfresco.service.cmr.avm.LayeringDescriptor;
import org.alfresco.service.cmr.avm.VersionDescriptor;
import org.alfresco.service.cmr.remote.AVMRemote;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A loopback implementation of the AVMRemote interface?
diff --git a/source/java/org/alfresco/repo/avm/AVMRemoteTransportService.java b/source/java/org/alfresco/repo/avm/AVMRemoteTransportService.java
index c7f970a898..1f2a28a30a 100644
--- a/source/java/org/alfresco/repo/avm/AVMRemoteTransportService.java
+++ b/source/java/org/alfresco/repo/avm/AVMRemoteTransportService.java
@@ -40,7 +40,7 @@ import org.alfresco.service.cmr.remote.AVMRemoteTransport;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Implementation of AVMRemoteTransport for the server side. It's
diff --git a/source/java/org/alfresco/repo/avm/AVMRepository.java b/source/java/org/alfresco/repo/avm/AVMRepository.java
index 52f4690a92..2ba414f7b0 100644
--- a/source/java/org/alfresco/repo/avm/AVMRepository.java
+++ b/source/java/org/alfresco/repo/avm/AVMRepository.java
@@ -60,7 +60,7 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.util.FileNameValidator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* This or AVMStore are the implementors of the operations specified by AVMService.
diff --git a/source/java/org/alfresco/repo/avm/AVMServiceImpl.java b/source/java/org/alfresco/repo/avm/AVMServiceImpl.java
index e76bc77ef8..699a8a0805 100644
--- a/source/java/org/alfresco/repo/avm/AVMServiceImpl.java
+++ b/source/java/org/alfresco/repo/avm/AVMServiceImpl.java
@@ -49,7 +49,7 @@ import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.FileNameValidator;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.util.TempFileProvider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java b/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java
index fd9df8547e..45f43091c3 100644
--- a/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java
+++ b/source/java/org/alfresco/repo/avm/AVMServiceLocalTest.java
@@ -48,7 +48,7 @@ import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.NameMatcher;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
diff --git a/source/java/org/alfresco/repo/avm/AVMServiceTest.java b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
index 2bc349c298..3598ec47f4 100644
--- a/source/java/org/alfresco/repo/avm/AVMServiceTest.java
+++ b/source/java/org/alfresco/repo/avm/AVMServiceTest.java
@@ -79,7 +79,7 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.wcm.sandbox.SandboxConstants;
/**
diff --git a/source/java/org/alfresco/repo/avm/AVMStoreImpl.java b/source/java/org/alfresco/repo/avm/AVMStoreImpl.java
index 8ca5567c45..25e0c96872 100644
--- a/source/java/org/alfresco/repo/avm/AVMStoreImpl.java
+++ b/source/java/org/alfresco/repo/avm/AVMStoreImpl.java
@@ -60,7 +60,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.PermissionService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/CreateVersionTxnListener.java b/source/java/org/alfresco/repo/avm/CreateVersionTxnListener.java
index 216a611e75..8fee684fbd 100644
--- a/source/java/org/alfresco/repo/avm/CreateVersionTxnListener.java
+++ b/source/java/org/alfresco/repo/avm/CreateVersionTxnListener.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.alfresco.repo.transaction.TransactionListenerAdapter;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Transaction listener that fires create version events.
diff --git a/source/java/org/alfresco/repo/avm/DirectoryNode.java b/source/java/org/alfresco/repo/avm/DirectoryNode.java
index 958324a8d4..736605e0d5 100644
--- a/source/java/org/alfresco/repo/avm/DirectoryNode.java
+++ b/source/java/org/alfresco/repo/avm/DirectoryNode.java
@@ -22,7 +22,7 @@ import java.util.Map;
import java.util.SortedMap;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* The interface for Directory Nodes.
diff --git a/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java b/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java
index e2a65c7a97..a3db9b6ba4 100644
--- a/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java
+++ b/source/java/org/alfresco/repo/avm/LayeredDirectoryNodeImpl.java
@@ -35,7 +35,7 @@ import org.alfresco.service.cmr.avm.AVMExistsException;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.AVMNotFoundException;
import org.alfresco.service.cmr.security.PermissionService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A layered directory node. A layered directory node points at an underlying directory, which may or may not exist. The
diff --git a/source/java/org/alfresco/repo/avm/Lookup.java b/source/java/org/alfresco/repo/avm/Lookup.java
index 26407f5991..67190dd546 100644
--- a/source/java/org/alfresco/repo/avm/Lookup.java
+++ b/source/java/org/alfresco/repo/avm/Lookup.java
@@ -23,7 +23,7 @@ import java.util.ArrayList;
import java.util.List;
import org.alfresco.repo.avm.util.AVMUtil;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/MultiTAVMService.java b/source/java/org/alfresco/repo/avm/MultiTAVMService.java
index df5f47630f..cce9ce6087 100644
--- a/source/java/org/alfresco/repo/avm/MultiTAVMService.java
+++ b/source/java/org/alfresco/repo/avm/MultiTAVMService.java
@@ -42,7 +42,7 @@ import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* An MT-aware wrapper of AVMService
diff --git a/source/java/org/alfresco/repo/avm/NOOPLookupCache.java b/source/java/org/alfresco/repo/avm/NOOPLookupCache.java
index 07dc339a27..03478b7004 100644
--- a/source/java/org/alfresco/repo/avm/NOOPLookupCache.java
+++ b/source/java/org/alfresco/repo/avm/NOOPLookupCache.java
@@ -22,7 +22,7 @@ import org.alfresco.repo.avm.util.AVMUtil;
import org.alfresco.repo.avm.util.SimplePath;
import org.alfresco.repo.security.permissions.AccessDeniedException;
import org.alfresco.service.cmr.security.PermissionService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A NO-OP implementation of AVM path lookup cache
diff --git a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java
index 3c3806884e..b1cfde3b5f 100644
--- a/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java
+++ b/source/java/org/alfresco/repo/avm/PlainDirectoryNodeImpl.java
@@ -31,7 +31,7 @@ import org.alfresco.service.cmr.avm.AVMExistsException;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.AVMNotFoundException;
import org.alfresco.service.cmr.security.PermissionService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A plain directory. No monkey tricks except for possiblyCopy.
diff --git a/source/java/org/alfresco/repo/avm/PurgeVersionTxnListener.java b/source/java/org/alfresco/repo/avm/PurgeVersionTxnListener.java
index 6a714dfe5e..323af2aa35 100644
--- a/source/java/org/alfresco/repo/avm/PurgeVersionTxnListener.java
+++ b/source/java/org/alfresco/repo/avm/PurgeVersionTxnListener.java
@@ -22,7 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.alfresco.repo.transaction.TransactionListenerAdapter;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Transaction listener that fires purge version events.
diff --git a/source/java/org/alfresco/repo/avm/TransactionalLookupCache.java b/source/java/org/alfresco/repo/avm/TransactionalLookupCache.java
index 94ce0fd9d7..1e79e97f56 100644
--- a/source/java/org/alfresco/repo/avm/TransactionalLookupCache.java
+++ b/source/java/org/alfresco/repo/avm/TransactionalLookupCache.java
@@ -25,7 +25,7 @@ import org.alfresco.repo.avm.util.SimplePath;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.security.permissions.AccessDeniedException;
import org.alfresco.service.cmr.security.PermissionService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
diff --git a/source/java/org/alfresco/repo/avm/actions/AVMDeployWebsiteAction.java b/source/java/org/alfresco/repo/avm/actions/AVMDeployWebsiteAction.java
index 8b2d2c51a8..6b08b9ccd8 100644
--- a/source/java/org/alfresco/repo/avm/actions/AVMDeployWebsiteAction.java
+++ b/source/java/org/alfresco/repo/avm/actions/AVMDeployWebsiteAction.java
@@ -48,7 +48,7 @@ import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.util.RegexNameMatcher;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/actions/AVMRevertStoreAction.java b/source/java/org/alfresco/repo/avm/actions/AVMRevertStoreAction.java
index f82f24213e..d6b36ea582 100644
--- a/source/java/org/alfresco/repo/avm/actions/AVMRevertStoreAction.java
+++ b/source/java/org/alfresco/repo/avm/actions/AVMRevertStoreAction.java
@@ -29,7 +29,7 @@ import org.alfresco.service.cmr.avmsync.AVMDifference;
import org.alfresco.service.cmr.avmsync.AVMSyncService;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/actions/AVMRevertToVersionAction.java b/source/java/org/alfresco/repo/avm/actions/AVMRevertToVersionAction.java
index 52a89a157c..f20ed262dd 100644
--- a/source/java/org/alfresco/repo/avm/actions/AVMRevertToVersionAction.java
+++ b/source/java/org/alfresco/repo/avm/actions/AVMRevertToVersionAction.java
@@ -30,7 +30,7 @@ import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/actions/AVMUndoSandboxListAction.java b/source/java/org/alfresco/repo/avm/actions/AVMUndoSandboxListAction.java
index b9c4d78372..d3f8576f53 100644
--- a/source/java/org/alfresco/repo/avm/actions/AVMUndoSandboxListAction.java
+++ b/source/java/org/alfresco/repo/avm/actions/AVMUndoSandboxListAction.java
@@ -33,7 +33,7 @@ import org.alfresco.service.cmr.avm.locking.AVMLockingService;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/actions/SimpleAVMPromoteAction.java b/source/java/org/alfresco/repo/avm/actions/SimpleAVMPromoteAction.java
index 7fcd5ad5cb..e0e2ccacab 100644
--- a/source/java/org/alfresco/repo/avm/actions/SimpleAVMPromoteAction.java
+++ b/source/java/org/alfresco/repo/avm/actions/SimpleAVMPromoteAction.java
@@ -31,7 +31,7 @@ import org.alfresco.service.cmr.avmsync.AVMSyncException;
import org.alfresco.service.cmr.avmsync.AVMSyncService;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* An ActionExecuter that promotes content from one store to another.
diff --git a/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java b/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java
index d849fecc43..9a24187af6 100644
--- a/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java
+++ b/source/java/org/alfresco/repo/avm/actions/SimpleAVMSubmitAction.java
@@ -34,7 +34,7 @@ import org.alfresco.service.cmr.avmsync.AVMSyncException;
import org.alfresco.service.cmr.avmsync.AVMSyncService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.util.NameMatcher;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/ibatis/AVMStorePropertyDAOIbatis.java b/source/java/org/alfresco/repo/avm/ibatis/AVMStorePropertyDAOIbatis.java
index 5004ecb409..44a441fdcc 100644
--- a/source/java/org/alfresco/repo/avm/ibatis/AVMStorePropertyDAOIbatis.java
+++ b/source/java/org/alfresco/repo/avm/ibatis/AVMStorePropertyDAOIbatis.java
@@ -32,7 +32,6 @@ import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.domain.qname.QNameDAO;
import org.alfresco.repo.domain.avm.AVMStorePropertyEntity;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
diff --git a/source/java/org/alfresco/repo/avm/locking/AVMLockingServiceImpl.java b/source/java/org/alfresco/repo/avm/locking/AVMLockingServiceImpl.java
index b5827c1aa7..417da2057d 100644
--- a/source/java/org/alfresco/repo/avm/locking/AVMLockingServiceImpl.java
+++ b/source/java/org/alfresco/repo/avm/locking/AVMLockingServiceImpl.java
@@ -45,7 +45,7 @@ import org.alfresco.service.cmr.security.AuthorityType;
import org.alfresco.service.cmr.security.PersonService;
import org.alfresco.service.namespace.NamespaceService;
import org.springframework.extensions.surf.util.MD5;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/avm/util/BulkLoader.java b/source/java/org/alfresco/repo/avm/util/BulkLoader.java
index b07721c84f..837aab48d3 100644
--- a/source/java/org/alfresco/repo/avm/util/BulkLoader.java
+++ b/source/java/org/alfresco/repo/avm/util/BulkLoader.java
@@ -33,7 +33,7 @@ import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.remote.AVMRemote;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* This takes a filesystem directory path and a repository path and name
diff --git a/source/java/org/alfresco/repo/avm/util/VersionPathStuffer.java b/source/java/org/alfresco/repo/avm/util/VersionPathStuffer.java
index 20d58240c7..75723a8466 100644
--- a/source/java/org/alfresco/repo/avm/util/VersionPathStuffer.java
+++ b/source/java/org/alfresco/repo/avm/util/VersionPathStuffer.java
@@ -20,7 +20,7 @@ package org.alfresco.repo.avm.util;
import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A utility to build a (possibly long) String representation of
diff --git a/source/java/org/alfresco/repo/avm/util/VersionPathTest.java b/source/java/org/alfresco/repo/avm/util/VersionPathTest.java
index 3d13ba1bed..4edcd5cf5d 100644
--- a/source/java/org/alfresco/repo/avm/util/VersionPathTest.java
+++ b/source/java/org/alfresco/repo/avm/util/VersionPathTest.java
@@ -21,7 +21,7 @@ package org.alfresco.repo.avm.util;
import java.util.List;
import org.alfresco.repo.avm.AVMNodeConverter;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import junit.framework.TestCase;
diff --git a/source/java/org/alfresco/repo/avm/util/VersionPathUnstuffer.java b/source/java/org/alfresco/repo/avm/util/VersionPathUnstuffer.java
index 440463e627..1ee9cdc695 100644
--- a/source/java/org/alfresco/repo/avm/util/VersionPathUnstuffer.java
+++ b/source/java/org/alfresco/repo/avm/util/VersionPathUnstuffer.java
@@ -23,7 +23,7 @@ import java.util.List;
import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Takes a String representation of a list of Version/Paths (created
diff --git a/source/java/org/alfresco/repo/avm/wf/AVMDeployHandler.java b/source/java/org/alfresco/repo/avm/wf/AVMDeployHandler.java
index 0d59935038..80bc979e96 100644
--- a/source/java/org/alfresco/repo/avm/wf/AVMDeployHandler.java
+++ b/source/java/org/alfresco/repo/avm/wf/AVMDeployHandler.java
@@ -49,7 +49,7 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
import org.alfresco.util.ISO9075;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.graph.exe.ExecutionContext;
diff --git a/source/java/org/alfresco/repo/avm/wf/AVMReleaseTestServerHandler.java b/source/java/org/alfresco/repo/avm/wf/AVMReleaseTestServerHandler.java
index a5c21981d7..acea3194f0 100644
--- a/source/java/org/alfresco/repo/avm/wf/AVMReleaseTestServerHandler.java
+++ b/source/java/org/alfresco/repo/avm/wf/AVMReleaseTestServerHandler.java
@@ -27,7 +27,7 @@ import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespaceService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.graph.exe.ExecutionContext;
diff --git a/source/java/org/alfresco/repo/avm/wf/AVMRemoveAllSrcWebappsHandler.java b/source/java/org/alfresco/repo/avm/wf/AVMRemoveAllSrcWebappsHandler.java
index c012f91b3d..3c34793856 100644
--- a/source/java/org/alfresco/repo/avm/wf/AVMRemoveAllSrcWebappsHandler.java
+++ b/source/java/org/alfresco/repo/avm/wf/AVMRemoveAllSrcWebappsHandler.java
@@ -34,7 +34,7 @@ import org.alfresco.repo.workflow.jbpm.JBPMSpringActionHandler;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jbpm.graph.exe.ExecutionContext;
diff --git a/source/java/org/alfresco/repo/avm/wf/AVMRemoveWFStoreHandler.java b/source/java/org/alfresco/repo/avm/wf/AVMRemoveWFStoreHandler.java
index d25344a447..06f2e7db55 100644
--- a/source/java/org/alfresco/repo/avm/wf/AVMRemoveWFStoreHandler.java
+++ b/source/java/org/alfresco/repo/avm/wf/AVMRemoveWFStoreHandler.java
@@ -27,7 +27,7 @@ import org.alfresco.repo.workflow.jbpm.JBPMSpringActionHandler;
import org.alfresco.service.cmr.avm.AVMService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.jbpm.graph.exe.ExecutionContext;
import org.springframework.beans.factory.BeanFactory;
diff --git a/source/java/org/alfresco/repo/avm/wf/AVMSubmitPackageHandler.java b/source/java/org/alfresco/repo/avm/wf/AVMSubmitPackageHandler.java
index 8c0d574b02..21ad59ad91 100644
--- a/source/java/org/alfresco/repo/avm/wf/AVMSubmitPackageHandler.java
+++ b/source/java/org/alfresco/repo/avm/wf/AVMSubmitPackageHandler.java
@@ -36,7 +36,7 @@ import org.alfresco.service.cmr.avmsync.AVMDifference;
import org.alfresco.service.cmr.avmsync.AVMSyncService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.wcm.util.WCMUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/cache/lookup/EntityLookupCache.java b/source/java/org/alfresco/repo/cache/lookup/EntityLookupCache.java
index 95e9142987..0b6158f39d 100644
--- a/source/java/org/alfresco/repo/cache/lookup/EntityLookupCache.java
+++ b/source/java/org/alfresco/repo/cache/lookup/EntityLookupCache.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.springframework.dao.ConcurrencyFailureException;
diff --git a/source/java/org/alfresco/repo/cache/lookup/EntityLookupCacheTest.java b/source/java/org/alfresco/repo/cache/lookup/EntityLookupCacheTest.java
index 761f32c805..2504f8a93a 100644
--- a/source/java/org/alfresco/repo/cache/lookup/EntityLookupCacheTest.java
+++ b/source/java/org/alfresco/repo/cache/lookup/EntityLookupCacheTest.java
@@ -28,7 +28,7 @@ import org.alfresco.repo.cache.MemoryCache;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.cache.lookup.EntityLookupCache.EntityLookupCallbackDAO;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A cache for two-way lookups of database entities. These are characterized by having a unique
diff --git a/source/java/org/alfresco/repo/clt/AVMCopyOut.java b/source/java/org/alfresco/repo/clt/AVMCopyOut.java
index 88f8e0ccc9..c3b99977a5 100644
--- a/source/java/org/alfresco/repo/clt/AVMCopyOut.java
+++ b/source/java/org/alfresco/repo/clt/AVMCopyOut.java
@@ -27,7 +27,7 @@ import java.util.List;
import java.util.Map;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Copy out a file or a directory recursively from the repository
diff --git a/source/java/org/alfresco/repo/clt/AVMLs.java b/source/java/org/alfresco/repo/clt/AVMLs.java
index a858a03772..06797fe0ea 100644
--- a/source/java/org/alfresco/repo/clt/AVMLs.java
+++ b/source/java/org/alfresco/repo/clt/AVMLs.java
@@ -22,7 +22,7 @@ import java.util.List;
import java.util.Map;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Get a listing of a node.
diff --git a/source/java/org/alfresco/repo/clt/CltBase.java b/source/java/org/alfresco/repo/clt/CltBase.java
index 00365d951e..a725b1ceb5 100644
--- a/source/java/org/alfresco/repo/clt/CltBase.java
+++ b/source/java/org/alfresco/repo/clt/CltBase.java
@@ -31,7 +31,7 @@ import org.alfresco.service.cmr.avmsync.AVMSyncService;
import org.alfresco.service.cmr.remote.AVMRemote;
import org.alfresco.service.cmr.remote.RepoRemote;
import org.alfresco.service.cmr.security.AuthenticationService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
diff --git a/source/java/org/alfresco/repo/clt/RepoCopyIn.java b/source/java/org/alfresco/repo/clt/RepoCopyIn.java
index 03f426ddc8..0fdc6592a8 100644
--- a/source/java/org/alfresco/repo/clt/RepoCopyIn.java
+++ b/source/java/org/alfresco/repo/clt/RepoCopyIn.java
@@ -28,7 +28,7 @@ import java.util.Map;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Simplified cp from a local filesystem to the repo.
diff --git a/source/java/org/alfresco/repo/clt/RepoCopyOut.java b/source/java/org/alfresco/repo/clt/RepoCopyOut.java
index 414eb0841e..fb88dea078 100644
--- a/source/java/org/alfresco/repo/clt/RepoCopyOut.java
+++ b/source/java/org/alfresco/repo/clt/RepoCopyOut.java
@@ -27,7 +27,7 @@ import java.util.List;
import java.util.Map;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Like cp from Repo to a local filesystem.
diff --git a/source/java/org/alfresco/repo/clt/RepoLs.java b/source/java/org/alfresco/repo/clt/RepoLs.java
index d016d75e95..d6a2b0da32 100644
--- a/source/java/org/alfresco/repo/clt/RepoLs.java
+++ b/source/java/org/alfresco/repo/clt/RepoLs.java
@@ -22,7 +22,7 @@ import java.util.List;
import java.util.Map;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* List the contents of a directory in a repo.
diff --git a/source/java/org/alfresco/repo/content/AbstractContentStore.java b/source/java/org/alfresco/repo/content/AbstractContentStore.java
index 2fe6b3090a..085692576f 100644
--- a/source/java/org/alfresco/repo/content/AbstractContentStore.java
+++ b/source/java/org/alfresco/repo/content/AbstractContentStore.java
@@ -23,7 +23,7 @@ import java.util.Date;
import org.alfresco.service.cmr.repository.ContentIOException;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/content/ContentServiceImpl.java b/source/java/org/alfresco/repo/content/ContentServiceImpl.java
index 6319ad4994..fb92cb1250 100644
--- a/source/java/org/alfresco/repo/content/ContentServiceImpl.java
+++ b/source/java/org/alfresco/repo/content/ContentServiceImpl.java
@@ -59,7 +59,7 @@ import org.alfresco.service.cmr.usage.ContentQuotaException;
import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.util.TempFileProvider;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/content/cleanup/ContentStoreCleaner.java b/source/java/org/alfresco/repo/content/cleanup/ContentStoreCleaner.java
index 7757998d7f..42962bee65 100644
--- a/source/java/org/alfresco/repo/content/cleanup/ContentStoreCleaner.java
+++ b/source/java/org/alfresco/repo/content/cleanup/ContentStoreCleaner.java
@@ -37,7 +37,7 @@ import org.alfresco.util.VmShutdownListener;
import org.alfresco.util.VmShutdownListener.VmShutdownException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.PropertyCheck;
/**
diff --git a/source/java/org/alfresco/repo/content/filestore/FileContentStore.java b/source/java/org/alfresco/repo/content/filestore/FileContentStore.java
index 2b20542f1b..ce08fb9157 100644
--- a/source/java/org/alfresco/repo/content/filestore/FileContentStore.java
+++ b/source/java/org/alfresco/repo/content/filestore/FileContentStore.java
@@ -35,7 +35,7 @@ import org.alfresco.service.cmr.repository.ContentIOException;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationEventPublisher;
diff --git a/source/java/org/alfresco/repo/copy/CrossRepositoryCopyServiceImpl.java b/source/java/org/alfresco/repo/copy/CrossRepositoryCopyServiceImpl.java
index 51e1fcc708..168c0d00dd 100644
--- a/source/java/org/alfresco/repo/copy/CrossRepositoryCopyServiceImpl.java
+++ b/source/java/org/alfresco/repo/copy/CrossRepositoryCopyServiceImpl.java
@@ -46,7 +46,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Cross Repository Copying.
diff --git a/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java b/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java
index fdb61ee596..3bb63503ed 100644
--- a/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java
+++ b/source/java/org/alfresco/repo/deploy/DeploymentServiceImpl.java
@@ -82,7 +82,7 @@ import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.NameMatcher;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.PropertyCheck;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java b/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java
index 2d2862907a..ce172e3ae2 100644
--- a/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java
+++ b/source/java/org/alfresco/repo/dictionary/DictionaryRepositoryBootstrap.java
@@ -49,7 +49,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationEvent;
import org.springframework.extensions.surf.util.AbstractLifecycleBean;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Bootstrap the dictionary from specified locations within the repository
diff --git a/source/java/org/alfresco/repo/domain/CrcHelper.java b/source/java/org/alfresco/repo/domain/CrcHelper.java
index 109b0a76c4..e8c0d761ea 100644
--- a/source/java/org/alfresco/repo/domain/CrcHelper.java
+++ b/source/java/org/alfresco/repo/domain/CrcHelper.java
@@ -21,7 +21,7 @@ package org.alfresco.repo.domain;
import java.io.UnsupportedEncodingException;
import java.util.zip.CRC32;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Helper class to calculate CRC values for string persistence.
diff --git a/source/java/org/alfresco/repo/domain/LocaleDAO.java b/source/java/org/alfresco/repo/domain/LocaleDAO.java
index f47c987db2..7d61643c4e 100644
--- a/source/java/org/alfresco/repo/domain/LocaleDAO.java
+++ b/source/java/org/alfresco/repo/domain/LocaleDAO.java
@@ -22,7 +22,7 @@ import java.util.Locale;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.domain.hibernate.DirtySessionAnnotation;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Data abstraction layer for Locale entities.
diff --git a/source/java/org/alfresco/repo/domain/LocaleDAOTest.java b/source/java/org/alfresco/repo/domain/LocaleDAOTest.java
index a46555fd04..b2d4b5324d 100644
--- a/source/java/org/alfresco/repo/domain/LocaleDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/LocaleDAOTest.java
@@ -32,7 +32,7 @@ import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.util.ApplicationContextHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationContext;
diff --git a/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java b/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java
index 3682845375..b725550d4c 100644
--- a/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/audit/AbstractAuditDAOImpl.java
@@ -42,7 +42,7 @@ import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.ContentService;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataIntegrityViolationException;
diff --git a/source/java/org/alfresco/repo/domain/audit/AuditDAO.java b/source/java/org/alfresco/repo/domain/audit/AuditDAO.java
index dc454e867e..61ff225918 100644
--- a/source/java/org/alfresco/repo/domain/audit/AuditDAO.java
+++ b/source/java/org/alfresco/repo/domain/audit/AuditDAO.java
@@ -29,7 +29,7 @@ import org.alfresco.service.cmr.audit.AuditInfo;
import org.alfresco.service.cmr.audit.AuditService.AuditQueryCallback;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* DAO services for alf_audit_XXX tables.
diff --git a/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java b/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java
index 0b5f5f7e84..8f0b4595bc 100644
--- a/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/audit/AuditDAOTest.java
@@ -39,7 +39,7 @@ import org.alfresco.service.cmr.audit.AuditService.AuditQueryCallback;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.lang.mutable.MutableInt;
import org.springframework.context.ConfigurableApplicationContext;
diff --git a/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java b/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java
index 8ef868bb9f..03746873b4 100644
--- a/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/audit/ibatis/AuditDAOImpl.java
@@ -33,7 +33,7 @@ import org.alfresco.repo.domain.audit.AuditModelEntity;
import org.alfresco.repo.domain.audit.AuditQueryParameters;
import org.alfresco.repo.domain.audit.AuditQueryResult;
import org.alfresco.repo.domain.propval.PropertyValueDAO.PropertyFinderCallback;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import com.ibatis.sqlmap.client.event.RowHandler;
diff --git a/source/java/org/alfresco/repo/domain/avm/AVMStoreDAOTest.java b/source/java/org/alfresco/repo/domain/avm/AVMStoreDAOTest.java
index 474cedba35..dcb46435c9 100644
--- a/source/java/org/alfresco/repo/domain/avm/AVMStoreDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/avm/AVMStoreDAOTest.java
@@ -26,7 +26,7 @@ import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.context.ApplicationContext;
/**
diff --git a/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeDAOImpl.java b/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeDAOImpl.java
index c592859ea8..62f5786b30 100644
--- a/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeDAOImpl.java
@@ -33,7 +33,7 @@ import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.domain.qname.QNameDAO;
import org.alfresco.service.namespace.QName;
import org.springframework.dao.ConcurrencyFailureException;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
/**
diff --git a/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeLinksDAOImpl.java b/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeLinksDAOImpl.java
index dedeed1c4e..c7c1ae8fb7 100644
--- a/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeLinksDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/avm/AbstractAVMNodeLinksDAOImpl.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.cache.lookup.EntityLookupCache;
import org.alfresco.repo.cache.lookup.EntityLookupCache.EntityLookupCallbackDAO;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.alfresco.util.SearchLanguageConversion;
import org.springframework.dao.ConcurrencyFailureException;
diff --git a/source/java/org/alfresco/repo/domain/avm/AbstractAVMStoreDAOImpl.java b/source/java/org/alfresco/repo/domain/avm/AbstractAVMStoreDAOImpl.java
index d1207ba251..cf8fac56ce 100644
--- a/source/java/org/alfresco/repo/domain/avm/AbstractAVMStoreDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/avm/AbstractAVMStoreDAOImpl.java
@@ -31,7 +31,7 @@ import org.alfresco.repo.domain.PropertyValue;
import org.alfresco.repo.domain.qname.QNameDAO;
import org.alfresco.service.namespace.QName;
import org.springframework.dao.ConcurrencyFailureException;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
/**
diff --git a/source/java/org/alfresco/repo/domain/avm/AbstractAVMVersionRootDAOImpl.java b/source/java/org/alfresco/repo/domain/avm/AbstractAVMVersionRootDAOImpl.java
index 0072eae8e5..c949b93932 100644
--- a/source/java/org/alfresco/repo/domain/avm/AbstractAVMVersionRootDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/avm/AbstractAVMVersionRootDAOImpl.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.cache.NullCache;
import org.alfresco.repo.cache.SimpleCache;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.springframework.dao.ConcurrencyFailureException;
diff --git a/source/java/org/alfresco/repo/domain/contentdata/AbstractContentDataDAOImpl.java b/source/java/org/alfresco/repo/domain/contentdata/AbstractContentDataDAOImpl.java
index afb20c5f96..b7d95287ed 100644
--- a/source/java/org/alfresco/repo/domain/contentdata/AbstractContentDataDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/contentdata/AbstractContentDataDAOImpl.java
@@ -38,7 +38,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.ConcurrencyFailureException;
import org.springframework.dao.DataIntegrityViolationException;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Abstract implementation for ContentData DAO.
diff --git a/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAO.java b/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAO.java
index 4d553b1df6..eae87b7f54 100644
--- a/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAO.java
+++ b/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAO.java
@@ -23,7 +23,7 @@ import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.service.cmr.repository.ContentData;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.dao.ConcurrencyFailureException;
import org.springframework.dao.DataIntegrityViolationException;
diff --git a/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAOTest.java b/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAOTest.java
index 7e5784e940..c48102c4b2 100644
--- a/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/contentdata/ContentDataDAOTest.java
@@ -35,7 +35,7 @@ import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.util.TempFileProvider;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ConfigurableApplicationContext;
diff --git a/source/java/org/alfresco/repo/domain/contentdata/ContentUrlEntity.java b/source/java/org/alfresco/repo/domain/contentdata/ContentUrlEntity.java
index 1457a8ac0a..d692c28991 100644
--- a/source/java/org/alfresco/repo/domain/contentdata/ContentUrlEntity.java
+++ b/source/java/org/alfresco/repo/domain/contentdata/ContentUrlEntity.java
@@ -20,7 +20,7 @@ package org.alfresco.repo.domain.contentdata;
import org.alfresco.repo.domain.CrcHelper;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Entity bean for alf_content_url table.
diff --git a/source/java/org/alfresco/repo/domain/contentdata/ibatis/ContentDataDAOImpl.java b/source/java/org/alfresco/repo/domain/contentdata/ibatis/ContentDataDAOImpl.java
index 123760c9c2..d9ba6273e3 100644
--- a/source/java/org/alfresco/repo/domain/contentdata/ibatis/ContentDataDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/contentdata/ibatis/ContentDataDAOImpl.java
@@ -32,7 +32,7 @@ import org.alfresco.repo.domain.contentdata.ContentUrlEntity;
import org.alfresco.service.cmr.repository.ContentData;
import org.springframework.dao.ConcurrencyFailureException;
import org.springframework.dao.DataIntegrityViolationException;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import com.ibatis.sqlmap.client.event.RowHandler;
diff --git a/source/java/org/alfresco/repo/domain/encoding/AbstractEncodingDAOImpl.java b/source/java/org/alfresco/repo/domain/encoding/AbstractEncodingDAOImpl.java
index 0efc2fd31b..6175f8792e 100644
--- a/source/java/org/alfresco/repo/domain/encoding/AbstractEncodingDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/encoding/AbstractEncodingDAOImpl.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.cache.SimpleCache;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
/**
diff --git a/source/java/org/alfresco/repo/domain/encoding/EncodingDAO.java b/source/java/org/alfresco/repo/domain/encoding/EncodingDAO.java
index 8235701fbe..f1b1712c83 100644
--- a/source/java/org/alfresco/repo/domain/encoding/EncodingDAO.java
+++ b/source/java/org/alfresco/repo/domain/encoding/EncodingDAO.java
@@ -18,7 +18,7 @@
*/
package org.alfresco.repo.domain.encoding;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* DAO services for alf_encoding and related tables
diff --git a/source/java/org/alfresco/repo/domain/encoding/EncodingDAOTest.java b/source/java/org/alfresco/repo/domain/encoding/EncodingDAOTest.java
index dd3da56426..0900bdb130 100644
--- a/source/java/org/alfresco/repo/domain/encoding/EncodingDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/encoding/EncodingDAOTest.java
@@ -26,7 +26,7 @@ import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.context.ApplicationContext;
/**
diff --git a/source/java/org/alfresco/repo/domain/hibernate/AVMAccessControlListDAO.java b/source/java/org/alfresco/repo/domain/hibernate/AVMAccessControlListDAO.java
index 412990853a..e2f2d8e925 100644
--- a/source/java/org/alfresco/repo/domain/hibernate/AVMAccessControlListDAO.java
+++ b/source/java/org/alfresco/repo/domain/hibernate/AVMAccessControlListDAO.java
@@ -55,7 +55,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.wcm.util.WCMUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/domain/hibernate/AclDaoComponentImpl.java b/source/java/org/alfresco/repo/domain/hibernate/AclDaoComponentImpl.java
index 90ef5cb302..b4b2f6854e 100644
--- a/source/java/org/alfresco/repo/domain/hibernate/AclDaoComponentImpl.java
+++ b/source/java/org/alfresco/repo/domain/hibernate/AclDaoComponentImpl.java
@@ -68,7 +68,7 @@ import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
diff --git a/source/java/org/alfresco/repo/domain/hibernate/DMAccessControlListDAO.java b/source/java/org/alfresco/repo/domain/hibernate/DMAccessControlListDAO.java
index b4840751eb..fe1a03961b 100644
--- a/source/java/org/alfresco/repo/domain/hibernate/DMAccessControlListDAO.java
+++ b/source/java/org/alfresco/repo/domain/hibernate/DMAccessControlListDAO.java
@@ -39,7 +39,7 @@ import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* DAO layer for the improved ACL implemtentation. This layer is responsible for setting ACLs and any cascade behaviour
diff --git a/source/java/org/alfresco/repo/domain/hibernate/DirtySessionMethodInterceptor.java b/source/java/org/alfresco/repo/domain/hibernate/DirtySessionMethodInterceptor.java
index 78bff9a910..d72b003936 100644
--- a/source/java/org/alfresco/repo/domain/hibernate/DirtySessionMethodInterceptor.java
+++ b/source/java/org/alfresco/repo/domain/hibernate/DirtySessionMethodInterceptor.java
@@ -28,7 +28,7 @@ import java.util.Stack;
import org.alfresco.error.StackTraceUtil;
import org.alfresco.repo.transaction.AlfrescoTransactionSupport;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
import org.apache.commons.logging.Log;
diff --git a/source/java/org/alfresco/repo/domain/hibernate/HibernateLocaleDAOImpl.java b/source/java/org/alfresco/repo/domain/hibernate/HibernateLocaleDAOImpl.java
index d8047ee932..567f834b16 100644
--- a/source/java/org/alfresco/repo/domain/hibernate/HibernateLocaleDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/hibernate/HibernateLocaleDAOImpl.java
@@ -26,7 +26,7 @@ import org.alfresco.repo.cache.SimpleCache;
import org.alfresco.repo.domain.LocaleDAO;
import org.alfresco.repo.domain.LocaleEntity;
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/domain/hibernate/HibernateUsageDeltaDAO.java b/source/java/org/alfresco/repo/domain/hibernate/HibernateUsageDeltaDAO.java
index c651ef4d22..8d30cdcedf 100644
--- a/source/java/org/alfresco/repo/domain/hibernate/HibernateUsageDeltaDAO.java
+++ b/source/java/org/alfresco/repo/domain/hibernate/HibernateUsageDeltaDAO.java
@@ -30,7 +30,7 @@ import org.alfresco.repo.transaction.TransactionalDao;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.hibernate.Query;
import org.hibernate.Session;
diff --git a/source/java/org/alfresco/repo/domain/hibernate/NodeAccessControlListDAO.java b/source/java/org/alfresco/repo/domain/hibernate/NodeAccessControlListDAO.java
index 056f971e33..384ff1de9d 100644
--- a/source/java/org/alfresco/repo/domain/hibernate/NodeAccessControlListDAO.java
+++ b/source/java/org/alfresco/repo/domain/hibernate/NodeAccessControlListDAO.java
@@ -31,7 +31,7 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
/**
diff --git a/source/java/org/alfresco/repo/domain/mimetype/AbstractMimetypeDAOImpl.java b/source/java/org/alfresco/repo/domain/mimetype/AbstractMimetypeDAOImpl.java
index 23c5ef6b6d..ba7aa7a740 100644
--- a/source/java/org/alfresco/repo/domain/mimetype/AbstractMimetypeDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/mimetype/AbstractMimetypeDAOImpl.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.cache.SimpleCache;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
/**
diff --git a/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAO.java b/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAO.java
index a82d89ec88..1f4ac7eef5 100644
--- a/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAO.java
+++ b/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAO.java
@@ -19,7 +19,7 @@
package org.alfresco.repo.domain.mimetype;
import org.alfresco.error.AlfrescoRuntimeException;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* DAO services for alf_mimetype table
diff --git a/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAOTest.java b/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAOTest.java
index 843eca7c77..96abf55e5f 100644
--- a/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/mimetype/MimetypeDAOTest.java
@@ -26,7 +26,7 @@ import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.context.ApplicationContext;
/**
diff --git a/source/java/org/alfresco/repo/domain/propval/AbstractPropertyValueDAOImpl.java b/source/java/org/alfresco/repo/domain/propval/AbstractPropertyValueDAOImpl.java
index 04828ef122..c15bd49caf 100644
--- a/source/java/org/alfresco/repo/domain/propval/AbstractPropertyValueDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/propval/AbstractPropertyValueDAOImpl.java
@@ -36,7 +36,7 @@ import org.alfresco.repo.domain.CrcHelper;
import org.alfresco.repo.domain.propval.PropertyValueEntity.PersistedType;
import org.alfresco.repo.domain.schema.SchemaBootstrap;
import org.alfresco.repo.props.PropertyUniqueConstraintViolation;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.dao.DataIntegrityViolationException;
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyClassEntity.java b/source/java/org/alfresco/repo/domain/propval/PropertyClassEntity.java
index ee74ee579e..722ca99fc8 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyClassEntity.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyClassEntity.java
@@ -21,7 +21,7 @@ package org.alfresco.repo.domain.propval;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.repo.domain.CrcHelper;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Entity bean for alf_prop_class table.
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyDateValueEntity.java b/source/java/org/alfresco/repo/domain/propval/PropertyDateValueEntity.java
index 3aea4c84ac..67ddcbbb21 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyDateValueEntity.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyDateValueEntity.java
@@ -24,7 +24,7 @@ import java.util.GregorianCalendar;
import java.util.TimeZone;
import org.springframework.extensions.surf.util.ISO8601DateFormat;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Entity bean for alf_prop_date_value table.
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyDoubleValueEntity.java b/source/java/org/alfresco/repo/domain/propval/PropertyDoubleValueEntity.java
index c2516ab084..42e24fad9c 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyDoubleValueEntity.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyDoubleValueEntity.java
@@ -19,7 +19,7 @@
package org.alfresco.repo.domain.propval;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Entity bean for alf_prop_numeric_value table.
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertySerializableValueEntity.java b/source/java/org/alfresco/repo/domain/propval/PropertySerializableValueEntity.java
index f5d3d84a07..716459808a 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertySerializableValueEntity.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertySerializableValueEntity.java
@@ -20,7 +20,7 @@ package org.alfresco.repo.domain.propval;
import java.io.Serializable;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Entity bean for alf_prop_serializable_value table.
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyStringQueryEntity.java b/source/java/org/alfresco/repo/domain/propval/PropertyStringQueryEntity.java
index 27631f1de0..8de996c57f 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyStringQueryEntity.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyStringQueryEntity.java
@@ -19,7 +19,7 @@
package org.alfresco.repo.domain.propval;
import org.alfresco.repo.domain.CrcHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Entity bean for querying against the alf_prop_string_value table.
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyStringValueEntity.java b/source/java/org/alfresco/repo/domain/propval/PropertyStringValueEntity.java
index 2dc86d775c..b9cb540579 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyStringValueEntity.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyStringValueEntity.java
@@ -20,7 +20,7 @@ package org.alfresco.repo.domain.propval;
import org.alfresco.repo.domain.CrcHelper;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Entity bean for alf_prop_string_value table.
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyValueDAO.java b/source/java/org/alfresco/repo/domain/propval/PropertyValueDAO.java
index 214d18a5da..5f41c9a29e 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyValueDAO.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyValueDAO.java
@@ -24,7 +24,7 @@ import java.util.List;
import org.alfresco.repo.domain.CrcHelper;
import org.alfresco.repo.props.PropertyUniqueConstraintViolation;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.dao.DataIntegrityViolationException;
/**
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyValueDAOTest.java b/source/java/org/alfresco/repo/domain/propval/PropertyValueDAOTest.java
index 55bb12d5d8..e9cb57d4f8 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyValueDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyValueDAOTest.java
@@ -41,7 +41,7 @@ import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.GUID;
import org.springframework.extensions.surf.util.ISO8601DateFormat;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.bouncycastle.util.Arrays;
import org.springframework.context.ApplicationContext;
diff --git a/source/java/org/alfresco/repo/domain/propval/PropertyValueEntity.java b/source/java/org/alfresco/repo/domain/propval/PropertyValueEntity.java
index e178582592..24e5b828b2 100644
--- a/source/java/org/alfresco/repo/domain/propval/PropertyValueEntity.java
+++ b/source/java/org/alfresco/repo/domain/propval/PropertyValueEntity.java
@@ -24,7 +24,7 @@ import java.util.HashMap;
import java.util.Map;
import org.alfresco.util.EqualsHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/domain/propval/ibatis/PropertyValueDAOImpl.java b/source/java/org/alfresco/repo/domain/propval/ibatis/PropertyValueDAOImpl.java
index be66283c8d..6b5a0cc947 100644
--- a/source/java/org/alfresco/repo/domain/propval/ibatis/PropertyValueDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/propval/ibatis/PropertyValueDAOImpl.java
@@ -38,7 +38,7 @@ import org.alfresco.repo.domain.propval.PropertyStringValueEntity;
import org.alfresco.repo.domain.propval.PropertyUniqueContextEntity;
import org.alfresco.repo.domain.propval.PropertyValueEntity;
import org.alfresco.repo.domain.propval.PropertyValueEntity.PersistedType;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import com.ibatis.sqlmap.client.event.RowHandler;
diff --git a/source/java/org/alfresco/repo/domain/qname/AbstractQNameDAOImpl.java b/source/java/org/alfresco/repo/domain/qname/AbstractQNameDAOImpl.java
index b836e7cb1d..c4e8e377b5 100644
--- a/source/java/org/alfresco/repo/domain/qname/AbstractQNameDAOImpl.java
+++ b/source/java/org/alfresco/repo/domain/qname/AbstractQNameDAOImpl.java
@@ -29,7 +29,7 @@ import org.alfresco.repo.cache.lookup.EntityLookupCache.EntityLookupCallbackDAOA
import org.alfresco.service.namespace.QName;
import org.springframework.dao.ConcurrencyFailureException;
import org.springframework.dao.DataIntegrityViolationException;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
/**
diff --git a/source/java/org/alfresco/repo/domain/qname/QNameDAO.java b/source/java/org/alfresco/repo/domain/qname/QNameDAO.java
index a1693a8d8b..99e117ca65 100644
--- a/source/java/org/alfresco/repo/domain/qname/QNameDAO.java
+++ b/source/java/org/alfresco/repo/domain/qname/QNameDAO.java
@@ -23,7 +23,7 @@ import java.util.Set;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Data abstraction layer for QName and Namespace entities.
diff --git a/source/java/org/alfresco/repo/domain/qname/QNameDAOTest.java b/source/java/org/alfresco/repo/domain/qname/QNameDAOTest.java
index ff1aac60e8..1e90da186d 100644
--- a/source/java/org/alfresco/repo/domain/qname/QNameDAOTest.java
+++ b/source/java/org/alfresco/repo/domain/qname/QNameDAOTest.java
@@ -27,7 +27,7 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.context.ApplicationContext;
/**
diff --git a/source/java/org/alfresco/repo/jscript/AVMNode.java b/source/java/org/alfresco/repo/jscript/AVMNode.java
index 8bd358d101..fd6b022a43 100644
--- a/source/java/org/alfresco/repo/jscript/AVMNode.java
+++ b/source/java/org/alfresco/repo/jscript/AVMNode.java
@@ -29,7 +29,7 @@ import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.avm.locking.AVMLock;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.mozilla.javascript.Scriptable;
diff --git a/source/java/org/alfresco/repo/jscript/Classification.java b/source/java/org/alfresco/repo/jscript/Classification.java
index 5f27124759..88ab480903 100644
--- a/source/java/org/alfresco/repo/jscript/Classification.java
+++ b/source/java/org/alfresco/repo/jscript/Classification.java
@@ -27,7 +27,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.search.CategoryService;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
diff --git a/source/java/org/alfresco/repo/jscript/CrossRepositoryCopy.java b/source/java/org/alfresco/repo/jscript/CrossRepositoryCopy.java
index 086d23217f..b6185ab79e 100644
--- a/source/java/org/alfresco/repo/jscript/CrossRepositoryCopy.java
+++ b/source/java/org/alfresco/repo/jscript/CrossRepositoryCopy.java
@@ -22,7 +22,7 @@ import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
import org.alfresco.service.cmr.repository.StoreRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.mozilla.javascript.Scriptable;
diff --git a/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java b/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java
index 30e4680723..fcf7576d7b 100644
--- a/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java
+++ b/source/java/org/alfresco/repo/module/ModuleDetailsImpl.java
@@ -30,7 +30,7 @@ import org.alfresco.service.cmr.module.ModuleDependency;
import org.alfresco.service.cmr.module.ModuleDetails;
import org.alfresco.service.cmr.module.ModuleInstallState;
import org.springframework.extensions.surf.util.ISO8601DateFormat;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.util.VersionNumber;
/**
diff --git a/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java b/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java
index 3b2a69d92d..0f8152b1d6 100644
--- a/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java
+++ b/source/java/org/alfresco/repo/node/db/DbNodeServiceImpl.java
@@ -68,7 +68,7 @@ import org.alfresco.util.GUID;
import org.alfresco.util.PropertyMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.springframework.util.Assert;
diff --git a/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java b/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java
index 06f018793b..dd17bc7775 100644
--- a/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java
+++ b/source/java/org/alfresco/repo/node/db/DbNodeServiceImplTest.java
@@ -45,7 +45,7 @@ import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.service.transaction.TransactionService;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.lang.mutable.MutableInt;
/**
diff --git a/source/java/org/alfresco/repo/node/db/DeletedNodeCleanupWorker.java b/source/java/org/alfresco/repo/node/db/DeletedNodeCleanupWorker.java
index f7db7bbb3f..756d686cfd 100644
--- a/source/java/org/alfresco/repo/node/db/DeletedNodeCleanupWorker.java
+++ b/source/java/org/alfresco/repo/node/db/DeletedNodeCleanupWorker.java
@@ -27,7 +27,7 @@ import org.alfresco.repo.node.db.NodeDaoService.NodeRefQueryCallback;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.lang.mutable.MutableLong;
/**
diff --git a/source/java/org/alfresco/repo/node/db/IndexChildrenWhereRequiredWorker.java b/source/java/org/alfresco/repo/node/db/IndexChildrenWhereRequiredWorker.java
index 1046b2968e..4d35d5767d 100644
--- a/source/java/org/alfresco/repo/node/db/IndexChildrenWhereRequiredWorker.java
+++ b/source/java/org/alfresco/repo/node/db/IndexChildrenWhereRequiredWorker.java
@@ -28,7 +28,7 @@ import org.alfresco.repo.node.db.NodeDaoService.NodeRefQueryCallback;
import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Indexes child nodes where cascade re-indexing is disabled.
diff --git a/source/java/org/alfresco/repo/node/db/NodeDaoService.java b/source/java/org/alfresco/repo/node/db/NodeDaoService.java
index 1c8935d0d4..7d8e44a403 100644
--- a/source/java/org/alfresco/repo/node/db/NodeDaoService.java
+++ b/source/java/org/alfresco/repo/node/db/NodeDaoService.java
@@ -41,7 +41,7 @@ import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.cmr.repository.StoreExistsException;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Service layer accessing persistent node entities directly
diff --git a/source/java/org/alfresco/repo/node/db/hibernate/HibernateNodeDaoServiceImpl.java b/source/java/org/alfresco/repo/node/db/hibernate/HibernateNodeDaoServiceImpl.java
index af8b16aba5..553bdfe30f 100644
--- a/source/java/org/alfresco/repo/node/db/hibernate/HibernateNodeDaoServiceImpl.java
+++ b/source/java/org/alfresco/repo/node/db/hibernate/HibernateNodeDaoServiceImpl.java
@@ -113,7 +113,7 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.EqualsHelper;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.CacheMode;
diff --git a/source/java/org/alfresco/repo/props/PropertyValueComponentImpl.java b/source/java/org/alfresco/repo/props/PropertyValueComponentImpl.java
index 13508d889b..e63b273063 100644
--- a/source/java/org/alfresco/repo/props/PropertyValueComponentImpl.java
+++ b/source/java/org/alfresco/repo/props/PropertyValueComponentImpl.java
@@ -21,7 +21,7 @@ package org.alfresco.repo.props;
import java.io.Serializable;
import org.alfresco.repo.domain.propval.PropertyValueDAO;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.PropertyCheck;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/remote/AVMRemoteImpl.java b/source/java/org/alfresco/repo/remote/AVMRemoteImpl.java
index 1fad0c756b..55c9b7a5d1 100644
--- a/source/java/org/alfresco/repo/remote/AVMRemoteImpl.java
+++ b/source/java/org/alfresco/repo/remote/AVMRemoteImpl.java
@@ -34,7 +34,7 @@ import org.alfresco.service.cmr.avm.VersionDescriptor;
import org.alfresco.service.cmr.remote.AVMRemote;
import org.alfresco.service.cmr.remote.AVMRemoteTransport;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Client side wrapper for AVMRemoteTransport.
diff --git a/source/java/org/alfresco/repo/remote/AttributeServiceRemote.java b/source/java/org/alfresco/repo/remote/AttributeServiceRemote.java
index cd4dd77b9d..dc4296f251 100644
--- a/source/java/org/alfresco/repo/remote/AttributeServiceRemote.java
+++ b/source/java/org/alfresco/repo/remote/AttributeServiceRemote.java
@@ -26,7 +26,7 @@ import org.alfresco.repo.attributes.Attribute;
import org.alfresco.service.cmr.attributes.AttrQuery;
import org.alfresco.service.cmr.attributes.AttributeService;
import org.alfresco.service.cmr.remote.AttributeServiceTransport;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Client side AttributeService implementation.
diff --git a/source/java/org/alfresco/repo/remote/RepoRemoteImpl.java b/source/java/org/alfresco/repo/remote/RepoRemoteImpl.java
index db9a3ac053..5b12b46f96 100644
--- a/source/java/org/alfresco/repo/remote/RepoRemoteImpl.java
+++ b/source/java/org/alfresco/repo/remote/RepoRemoteImpl.java
@@ -25,7 +25,7 @@ import java.util.Map;
import org.alfresco.service.cmr.remote.RepoRemote;
import org.alfresco.service.cmr.remote.RepoRemoteTransport;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Client side implementation of RepoRemote interface.
diff --git a/source/java/org/alfresco/repo/remote/RepoRemoteService.java b/source/java/org/alfresco/repo/remote/RepoRemoteService.java
index b45cb89af0..bb65573a43 100644
--- a/source/java/org/alfresco/repo/remote/RepoRemoteService.java
+++ b/source/java/org/alfresco/repo/remote/RepoRemoteService.java
@@ -37,7 +37,7 @@ import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.repository.StoreRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/remote/RepoRemoteTransportService.java b/source/java/org/alfresco/repo/remote/RepoRemoteTransportService.java
index 181a330af5..7da1ff6c08 100644
--- a/source/java/org/alfresco/repo/remote/RepoRemoteTransportService.java
+++ b/source/java/org/alfresco/repo/remote/RepoRemoteTransportService.java
@@ -32,7 +32,7 @@ import org.alfresco.service.cmr.remote.RepoRemoteTransport;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* The server side implementation of RepoRemoteTransport. It
diff --git a/source/java/org/alfresco/repo/rendition/RenditionServiceIntegrationTest.java b/source/java/org/alfresco/repo/rendition/RenditionServiceIntegrationTest.java
index e68a049e21..9e1ee03134 100644
--- a/source/java/org/alfresco/repo/rendition/RenditionServiceIntegrationTest.java
+++ b/source/java/org/alfresco/repo/rendition/RenditionServiceIntegrationTest.java
@@ -65,7 +65,7 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.util.BaseAlfrescoSpringTest;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* @author Neil McErlean
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java
index 6f62318be9..79f35b2c47 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneCategoryTest.java
@@ -55,7 +55,7 @@ import org.alfresco.service.namespace.NamespaceService;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.ApplicationContextHelper;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.context.ApplicationContext;
/**
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java
index 9521be8723..6dca07c25e 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/ADMLuceneSearcherImpl.java
@@ -73,7 +73,7 @@ import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.ISO9075;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.util.SearchLanguageConversion;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java
index e6db834b02..cd90f0bda2 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/AVMLuceneIndexerImpl.java
@@ -81,7 +81,7 @@ import org.springframework.extensions.surf.util.CachingDateFormat;
import org.alfresco.util.EqualsHelper;
import org.alfresco.util.GUID;
import org.alfresco.util.ISO9075;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.lucene.analysis.Token;
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java
index fd4163fa9f..0fd2604a87 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneCategoryServiceImpl.java
@@ -49,7 +49,7 @@ import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.ISO9075;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Category service implementation
diff --git a/source/java/org/alfresco/repo/search/impl/lucene/LuceneSearcher.java b/source/java/org/alfresco/repo/search/impl/lucene/LuceneSearcher.java
index eec21ea14c..2a75149839 100644
--- a/source/java/org/alfresco/repo/search/impl/lucene/LuceneSearcher.java
+++ b/source/java/org/alfresco/repo/search/impl/lucene/LuceneSearcher.java
@@ -23,7 +23,7 @@ import java.util.List;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.search.SearchService;
import org.alfresco.service.namespace.NamespacePrefixResolver;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Lucene implementation specific entension to the seracher API
diff --git a/source/java/org/alfresco/repo/search/impl/querymodel/QueryEngine.java b/source/java/org/alfresco/repo/search/impl/querymodel/QueryEngine.java
index 4dc79729c8..13cc89f858 100644
--- a/source/java/org/alfresco/repo/search/impl/querymodel/QueryEngine.java
+++ b/source/java/org/alfresco/repo/search/impl/querymodel/QueryEngine.java
@@ -18,12 +18,6 @@
*/
package org.alfresco.repo.search.impl.querymodel;
-import java.util.List;
-import java.util.Set;
-
-import org.alfresco.service.cmr.search.ResultSet;
-import org.springframework.extensions.surf.util.Pair;
-
/**
* @author andyh
*
diff --git a/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java b/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java
index 001b92c10e..0ea7c2f99f 100644
--- a/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java
+++ b/source/java/org/alfresco/repo/security/authority/AuthorityDAOImpl.java
@@ -59,7 +59,7 @@ import org.alfresco.service.namespace.RegexQNamePattern;
import org.alfresco.util.EqualsHelper;
import org.alfresco.util.ISO9075;
import org.alfresco.util.SearchLanguageConversion;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
public class AuthorityDAOImpl implements AuthorityDAO, NodeServicePolicies.BeforeDeleteNodePolicy, NodeServicePolicies.OnUpdatePropertiesPolicy
{
diff --git a/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceImpl.java b/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceImpl.java
index a6da4f421e..bc50c5f946 100644
--- a/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceImpl.java
+++ b/source/java/org/alfresco/repo/security/permissions/impl/PermissionServiceImpl.java
@@ -523,7 +523,7 @@ public class PermissionServiceImpl extends AbstractLifecycleBean implements Perm
private AccessStatus doAvmCan(NodeRef nodeRef, PermissionReference permission)
{
- org.springframework.extensions.surf.util.Pair avmVersionPath = AVMNodeConverter.ToAVMVersionPath(nodeRef);
+ org.alfresco.util.Pair avmVersionPath = AVMNodeConverter.ToAVMVersionPath(nodeRef);
int version = avmVersionPath.getFirst();
String path = avmVersionPath.getSecond();
boolean result = AVMRepository.GetInstance().can(nodeRef.getStoreRef().getIdentifier(), version, path, permission.getName());
diff --git a/source/java/org/alfresco/repo/security/person/UserNameMatcherImpl.java b/source/java/org/alfresco/repo/security/person/UserNameMatcherImpl.java
index bede268dff..9266375a91 100644
--- a/source/java/org/alfresco/repo/security/person/UserNameMatcherImpl.java
+++ b/source/java/org/alfresco/repo/security/person/UserNameMatcherImpl.java
@@ -18,7 +18,7 @@
*/
package org.alfresco.repo.security.person;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
public class UserNameMatcherImpl implements UserNameMatcher
{
diff --git a/source/java/org/alfresco/repo/template/AVMTemplateNode.java b/source/java/org/alfresco/repo/template/AVMTemplateNode.java
index 7cd41eb72a..e3222ed6d3 100644
--- a/source/java/org/alfresco/repo/template/AVMTemplateNode.java
+++ b/source/java/org/alfresco/repo/template/AVMTemplateNode.java
@@ -46,7 +46,7 @@ import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.NamespacePrefixResolverProvider;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNameMap;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.URLEncoder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/source/java/org/alfresco/repo/template/Workflow.java b/source/java/org/alfresco/repo/template/Workflow.java
index 4cc906698e..869274d68a 100644
--- a/source/java/org/alfresco/repo/template/Workflow.java
+++ b/source/java/org/alfresco/repo/template/Workflow.java
@@ -48,7 +48,7 @@ import org.alfresco.service.namespace.NamespacePrefixResolverProvider;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNameMap;
import org.alfresco.service.namespace.RegexQNamePattern;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Workflow and task support in FreeMarker templates.
diff --git a/source/java/org/alfresco/repo/transfer/TransferServiceImplTest.java b/source/java/org/alfresco/repo/transfer/TransferServiceImplTest.java
index f8b252f626..6436a3036b 100644
--- a/source/java/org/alfresco/repo/transfer/TransferServiceImplTest.java
+++ b/source/java/org/alfresco/repo/transfer/TransferServiceImplTest.java
@@ -61,7 +61,7 @@ import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.BaseAlfrescoSpringTest;
import org.alfresco.util.GUID;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.util.ResourceUtils;
diff --git a/source/java/org/alfresco/repo/transfer/UnitTestTransferManifestNodeFactory.java b/source/java/org/alfresco/repo/transfer/UnitTestTransferManifestNodeFactory.java
index 750ca1ec58..b0b4f6565e 100644
--- a/source/java/org/alfresco/repo/transfer/UnitTestTransferManifestNodeFactory.java
+++ b/source/java/org/alfresco/repo/transfer/UnitTestTransferManifestNodeFactory.java
@@ -32,7 +32,7 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.Path;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* This is a test class to enable unit testing on a single machine. Since the single machine will already have the
diff --git a/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java b/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java
index 4543ecbf2c..480c4d0cf3 100644
--- a/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java
+++ b/source/java/org/alfresco/repo/usage/UserUsageTrackingComponent.java
@@ -43,7 +43,7 @@ import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.cmr.usage.UsageService;
import org.alfresco.service.namespace.QName;
import org.springframework.extensions.surf.util.AbstractLifecycleBean;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.context.ApplicationEvent;
diff --git a/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java b/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java
index ef62914a39..193b23558b 100644
--- a/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java
+++ b/source/java/org/alfresco/repo/workflow/jscript/JscriptWorkflowTask.java
@@ -49,7 +49,7 @@ import org.alfresco.service.namespace.NamespacePrefixResolver;
import org.alfresco.service.namespace.NamespacePrefixResolverProvider;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.RegexQNamePattern;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
diff --git a/source/java/org/alfresco/service/cmr/attributes/AttributeService.java b/source/java/org/alfresco/service/cmr/attributes/AttributeService.java
index 708bc8fa22..7416cb3e5a 100644
--- a/source/java/org/alfresco/service/cmr/attributes/AttributeService.java
+++ b/source/java/org/alfresco/service/cmr/attributes/AttributeService.java
@@ -23,7 +23,7 @@ import java.util.List;
import java.util.Map;
import org.alfresco.repo.attributes.Attribute;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* This provides services for reading, writing, and querying global attributes.
diff --git a/source/java/org/alfresco/service/cmr/audit/AuditQueryParameters.java b/source/java/org/alfresco/service/cmr/audit/AuditQueryParameters.java
index 88be81ccce..89123feef6 100644
--- a/source/java/org/alfresco/service/cmr/audit/AuditQueryParameters.java
+++ b/source/java/org/alfresco/service/cmr/audit/AuditQueryParameters.java
@@ -23,7 +23,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Parameters controlling audit queries.
diff --git a/source/java/org/alfresco/service/cmr/avm/AVMService.java b/source/java/org/alfresco/service/cmr/avm/AVMService.java
index 6ad3883a15..b561058e3b 100644
--- a/source/java/org/alfresco/service/cmr/avm/AVMService.java
+++ b/source/java/org/alfresco/service/cmr/avm/AVMService.java
@@ -32,7 +32,7 @@ import org.alfresco.service.cmr.repository.ContentData;
import org.alfresco.service.cmr.repository.ContentReader;
import org.alfresco.service.cmr.repository.ContentWriter;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Service interface for the Alfresco Versioning Model (AVM).
diff --git a/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentEvent.java b/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentEvent.java
index 142edb5832..ff6012c8ff 100644
--- a/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentEvent.java
+++ b/source/java/org/alfresco/service/cmr/avm/deploy/DeploymentEvent.java
@@ -21,7 +21,7 @@ package org.alfresco.service.cmr.avm.deploy;
import java.io.Serializable;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Interface for Deployment Events.
diff --git a/source/java/org/alfresco/service/cmr/remote/AVMRemote.java b/source/java/org/alfresco/service/cmr/remote/AVMRemote.java
index da30e3494f..54923bf8a2 100644
--- a/source/java/org/alfresco/service/cmr/remote/AVMRemote.java
+++ b/source/java/org/alfresco/service/cmr/remote/AVMRemote.java
@@ -36,7 +36,7 @@ import org.alfresco.service.cmr.avm.AVMStoreDescriptor;
import org.alfresco.service.cmr.avm.LayeringDescriptor;
import org.alfresco.service.cmr.avm.VersionDescriptor;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Remote interface for Alfresco Versioning Model (AVM).
diff --git a/source/java/org/alfresco/service/cmr/remote/AVMRemoteTransport.java b/source/java/org/alfresco/service/cmr/remote/AVMRemoteTransport.java
index 812c7a500e..eed8f10588 100644
--- a/source/java/org/alfresco/service/cmr/remote/AVMRemoteTransport.java
+++ b/source/java/org/alfresco/service/cmr/remote/AVMRemoteTransport.java
@@ -32,7 +32,7 @@ import org.alfresco.service.cmr.avm.AVMStoreDescriptor;
import org.alfresco.service.cmr.avm.LayeringDescriptor;
import org.alfresco.service.cmr.avm.VersionDescriptor;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* This is the actual remote interface that is wrapped by
diff --git a/source/java/org/alfresco/service/cmr/remote/AttributeServiceTransport.java b/source/java/org/alfresco/service/cmr/remote/AttributeServiceTransport.java
index d75e6b300e..e105e9c024 100644
--- a/source/java/org/alfresco/service/cmr/remote/AttributeServiceTransport.java
+++ b/source/java/org/alfresco/service/cmr/remote/AttributeServiceTransport.java
@@ -24,7 +24,7 @@ import java.util.Map;
import org.alfresco.repo.attributes.Attribute;
import org.alfresco.service.cmr.attributes.AttrQuery;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* The transport wrapper for remoted AttributeService.
diff --git a/source/java/org/alfresco/service/cmr/remote/RepoRemote.java b/source/java/org/alfresco/service/cmr/remote/RepoRemote.java
index abf58aeae0..a0683bc00f 100644
--- a/source/java/org/alfresco/service/cmr/remote/RepoRemote.java
+++ b/source/java/org/alfresco/service/cmr/remote/RepoRemote.java
@@ -23,7 +23,7 @@ import java.io.OutputStream;
import java.util.Map;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* A highly simplified remote interface for the repo.
diff --git a/source/java/org/alfresco/service/cmr/remote/RepoRemoteTransport.java b/source/java/org/alfresco/service/cmr/remote/RepoRemoteTransport.java
index 05348645a3..b8f7431a90 100644
--- a/source/java/org/alfresco/service/cmr/remote/RepoRemoteTransport.java
+++ b/source/java/org/alfresco/service/cmr/remote/RepoRemoteTransport.java
@@ -21,7 +21,7 @@ package org.alfresco.service.cmr.remote;
import java.util.Map;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Over the wire, and authentication safe flavor of
diff --git a/source/java/org/alfresco/service/cmr/search/CategoryService.java b/source/java/org/alfresco/service/cmr/search/CategoryService.java
index 3360667f45..844d367579 100644
--- a/source/java/org/alfresco/service/cmr/search/CategoryService.java
+++ b/source/java/org/alfresco/service/cmr/search/CategoryService.java
@@ -27,7 +27,7 @@ import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.StoreRef;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Category Service
diff --git a/source/java/org/alfresco/util/PropertyMap.java b/source/java/org/alfresco/util/PropertyMap.java
index c5a232e164..f3394281fb 100644
--- a/source/java/org/alfresco/util/PropertyMap.java
+++ b/source/java/org/alfresco/util/PropertyMap.java
@@ -24,7 +24,7 @@ import java.util.HashMap;
import java.util.Map;
import org.alfresco.service.namespace.QName;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
/**
* Property map helper class.
diff --git a/source/java/org/alfresco/wcm/actions/WCMSandboxRevertSnapshotAction.java b/source/java/org/alfresco/wcm/actions/WCMSandboxRevertSnapshotAction.java
index 246c4a56f7..69985d9811 100644
--- a/source/java/org/alfresco/wcm/actions/WCMSandboxRevertSnapshotAction.java
+++ b/source/java/org/alfresco/wcm/actions/WCMSandboxRevertSnapshotAction.java
@@ -27,7 +27,7 @@ import org.alfresco.service.cmr.action.Action;
import org.alfresco.service.cmr.action.ParameterDefinition;
import org.alfresco.service.cmr.dictionary.DataTypeDefinition;
import org.alfresco.service.cmr.repository.NodeRef;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.alfresco.wcm.sandbox.SandboxService;
import org.alfresco.wcm.util.WCMUtil;
import org.apache.commons.logging.Log;
diff --git a/source/java/org/alfresco/wcm/sandbox/SandboxServiceImpl.java b/source/java/org/alfresco/wcm/sandbox/SandboxServiceImpl.java
index 12c7b49c7f..b1ab839cab 100644
--- a/source/java/org/alfresco/wcm/sandbox/SandboxServiceImpl.java
+++ b/source/java/org/alfresco/wcm/sandbox/SandboxServiceImpl.java
@@ -56,7 +56,7 @@ import org.alfresco.service.cmr.workflow.WorkflowTaskState;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.transaction.TransactionService;
import org.alfresco.util.NameMatcher;
-import org.springframework.extensions.surf.util.Pair;
+import org.alfresco.util.Pair;
import org.springframework.extensions.surf.util.ParameterCheck;
import org.alfresco.util.VirtServerUtils;
import org.alfresco.wcm.asset.AssetInfo;