diff --git a/deliverytiersuite/delivery-tier-suite/DTS-shared-dependencies/pom.xml b/deliverytiersuite/delivery-tier-suite/DTS-shared-dependencies/pom.xml
index 4be67d8d1e..05e094daf6 100644
--- a/deliverytiersuite/delivery-tier-suite/DTS-shared-dependencies/pom.xml
+++ b/deliverytiersuite/delivery-tier-suite/DTS-shared-dependencies/pom.xml
@@ -434,10 +434,6 @@
org.javassist
javassist
-
- commons-collections
- commons-collections
-
xml-apis
xml-apis
@@ -453,10 +449,6 @@
hibernate-ehcache
${hibernate.version}
-
- commons-collections
- commons-collections
-
commons-logging
commons-logging
@@ -604,11 +596,6 @@
-
- commons-collections
- commons-collections
- 3.2.2
-
commons-httpclient
commons-httpclient
diff --git a/deliverytiersuite/delivery-tier-suite/delivery-tier-distribution/pom.xml b/deliverytiersuite/delivery-tier-suite/delivery-tier-distribution/pom.xml
index 6ca3b67d9d..48aa2eed79 100644
--- a/deliverytiersuite/delivery-tier-suite/delivery-tier-distribution/pom.xml
+++ b/deliverytiersuite/delivery-tier-suite/delivery-tier-distribution/pom.xml
@@ -630,10 +630,6 @@
net.sf.ehcache
ehcache-core
-
- commons-collections
- commons-collections
-
com.percussion
servlet-utils
diff --git a/deliverytiersuite/delivery-tier-suite/metadata/src/main/java/com/percussion/delivery/metadata/data/impl/PSCriteriaElement.java b/deliverytiersuite/delivery-tier-suite/metadata/src/main/java/com/percussion/delivery/metadata/data/impl/PSCriteriaElement.java
index 74b682a073..2cbd0f41d8 100644
--- a/deliverytiersuite/delivery-tier-suite/metadata/src/main/java/com/percussion/delivery/metadata/data/impl/PSCriteriaElement.java
+++ b/deliverytiersuite/delivery-tier-suite/metadata/src/main/java/com/percussion/delivery/metadata/data/impl/PSCriteriaElement.java
@@ -21,7 +21,7 @@
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
-import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
/** @author erikserating */
diff --git a/deliverytiersuite/delivery-tier-suite/tomcat-common/pom.xml b/deliverytiersuite/delivery-tier-suite/tomcat-common/pom.xml
index cd730141ee..9671d3c39b 100644
--- a/deliverytiersuite/delivery-tier-suite/tomcat-common/pom.xml
+++ b/deliverytiersuite/delivery-tier-suite/tomcat-common/pom.xml
@@ -65,10 +65,6 @@
commons-logging
commons-logging
-
- commons-collections
- commons-collections
-
commons-betwixt
commons-betwixt
diff --git a/deployer/pom.xml b/deployer/pom.xml
index b2ff922e7a..d6894c0d94 100644
--- a/deployer/pom.xml
+++ b/deployer/pom.xml
@@ -65,10 +65,6 @@
org.hibernate
hibernate-core
-
- commons-collections
- commons-collections
-
junit
junit
diff --git a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentListDefDependencyHandler.java b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentListDefDependencyHandler.java
index e710e332f7..171591e095 100644
--- a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentListDefDependencyHandler.java
+++ b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentListDefDependencyHandler.java
@@ -55,8 +55,8 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.IterableMap;
-import org.apache.commons.collections.MapIterator;
+import org.apache.commons.collections4.IterableMap;
+import org.apache.commons.collections4.MapIterator;
import org.apache.commons.lang3.StringUtils;
/**
diff --git a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentTypeDependencyHandler.java b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentTypeDependencyHandler.java
index 8f3ec59415..5c75b65ca5 100644
--- a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentTypeDependencyHandler.java
+++ b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSContentTypeDependencyHandler.java
@@ -88,7 +88,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSDependencyUtils.java b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSDependencyUtils.java
index 2765f5ffeb..c5620db2ed 100644
--- a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSDependencyUtils.java
+++ b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSDependencyUtils.java
@@ -74,7 +74,7 @@
import java.util.Map;
import java.util.Set;
import javax.persistence.Table;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
diff --git a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSPublisherServiceHelper.java b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSPublisherServiceHelper.java
index b1b694da77..ec55c416f9 100644
--- a/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSPublisherServiceHelper.java
+++ b/deployer/src/main/java/com/percussion/deployer/server/dependencies/PSPublisherServiceHelper.java
@@ -32,8 +32,8 @@
import java.sql.SQLException;
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.collections.IterableMap;
-import org.apache.commons.collections.map.HashedMap;
+import org.apache.commons.collections4.IterableMap;
+import org.apache.commons.collections4.map.HashedMap;
/**
* A util class to interface msm with the Publisher service
diff --git a/deployer/src/main/java/com/percussion/rx/config/impl/PSConfigUtils.java b/deployer/src/main/java/com/percussion/rx/config/impl/PSConfigUtils.java
index 36374554c3..7294034cf1 100644
--- a/deployer/src/main/java/com/percussion/rx/config/impl/PSConfigUtils.java
+++ b/deployer/src/main/java/com/percussion/rx/config/impl/PSConfigUtils.java
@@ -62,7 +62,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
diff --git a/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeFieldSetter.java b/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeFieldSetter.java
index b6aff01753..7e94e38c07 100644
--- a/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeFieldSetter.java
+++ b/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeFieldSetter.java
@@ -48,8 +48,8 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang3.StringUtils;
/**
@@ -321,8 +321,11 @@ private void updateSharedGroup(PSItemDefinition itemDef, String fieldName) {
// update excludes
ArrayList excNames = new ArrayList<>();
- Iterator excludes = mapper.getSharedFieldExcludes();
- CollectionUtils.addAll(excNames, excludes);
+ // commons-collections4 dropped `CollectionUtils.addAll(Collection, Iterator)`;
+ // `mapper.getSharedFieldExcludes()` returns raw Iterator, so we cast.
+ @SuppressWarnings("unchecked")
+ Iterator excludes = mapper.getSharedFieldExcludes();
+ while (excludes.hasNext()) excNames.add(excludes.next());
for (PSField f : shGroup.getFieldSet().getAllFields()) excNames.add(f.getSubmitName());
mapper.setSharedFieldExcludes(excNames);
diff --git a/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeSetter.java b/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeSetter.java
index 014152075e..b707373402 100644
--- a/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeSetter.java
+++ b/deployer/src/main/java/com/percussion/rx/config/impl/PSContentTypeSetter.java
@@ -45,7 +45,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
/**
@@ -337,8 +337,9 @@ private void removeSharedGroup(PSItemDefinition itemDef, PSSharedFieldGroup shGr
@SuppressWarnings("unchecked")
private ArrayList iteratorToList(Iterator it) {
ArrayList list = new ArrayList<>();
- CollectionUtils.addAll(list, it);
-
+ // commons-collections4 dropped `CollectionUtils.addAll(Collection, Iterator)`; loop
+ // instead. The raw `Iterator` means each element needs to be cast to String.
+ while (it.hasNext()) list.add((String) it.next());
return list;
}
diff --git a/modules/CMLight-Main-cactus-tests/pom.xml b/modules/CMLight-Main-cactus-tests/pom.xml
index af65276e11..ecfe0f6b46 100644
--- a/modules/CMLight-Main-cactus-tests/pom.xml
+++ b/modules/CMLight-Main-cactus-tests/pom.xml
@@ -201,11 +201,6 @@
commons-beanutils
provided
-
- commons-collections
- commons-collections
- provided
-
junit
junit
diff --git a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/rx/config/test/PSContentTypeSetterTest.java b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/rx/config/test/PSContentTypeSetterTest.java
index d7b9053235..f318acd444 100644
--- a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/rx/config/test/PSContentTypeSetterTest.java
+++ b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/rx/config/test/PSContentTypeSetterTest.java
@@ -46,7 +46,7 @@
import com.percussion.utils.guid.IPSGuid;
import com.percussion.utils.testing.IntegrationTest;
import com.percussion.utils.types.PSPair;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.experimental.categories.Category;
diff --git a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/assembly/data/PSAssemblyTemplateTest.java b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/assembly/data/PSAssemblyTemplateTest.java
index 67f957c03c..a90a4fd9e6 100644
--- a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/assembly/data/PSAssemblyTemplateTest.java
+++ b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/assembly/data/PSAssemblyTemplateTest.java
@@ -33,7 +33,7 @@
import com.percussion.utils.types.PSPair;
import junit.framework.JUnit4TestAdapter;
import org.apache.cactus.ServletTestCase;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hibernate.SessionFactory;
diff --git a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/filestorage/impl/PSHashedFieldCatalogerTest.java b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/filestorage/impl/PSHashedFieldCatalogerTest.java
index 5dd39071fc..9a211c8a65 100644
--- a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/filestorage/impl/PSHashedFieldCatalogerTest.java
+++ b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/filestorage/impl/PSHashedFieldCatalogerTest.java
@@ -28,7 +28,7 @@
import com.percussion.utils.testing.IntegrationTest;
import org.apache.cactus.ServletTestCase;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.junit.Test;
import org.junit.experimental.categories.Category;
diff --git a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/system/PSAssignmentTypeHelperTest.java b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/system/PSAssignmentTypeHelperTest.java
index 585c020ef1..92bd55f4da 100644
--- a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/system/PSAssignmentTypeHelperTest.java
+++ b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/system/PSAssignmentTypeHelperTest.java
@@ -42,7 +42,7 @@
import com.percussion.utils.guid.IPSGuid;
import com.percussion.utils.request.PSRequestInfo;
import com.percussion.utils.testing.IntegrationTest;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.AfterClass;
diff --git a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/utils/jspel/PSItemUtilitiesTest.java b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/utils/jspel/PSItemUtilitiesTest.java
index beb279f328..5b04541f5e 100644
--- a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/utils/jspel/PSItemUtilitiesTest.java
+++ b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/services/utils/jspel/PSItemUtilitiesTest.java
@@ -22,7 +22,7 @@
import com.percussion.utils.testing.IntegrationTest;
import org.apache.cactus.ServletTestCase;
-import org.apache.commons.collections.MultiMap;
+import org.apache.commons.collections4.MultiValuedMap;
import org.junit.experimental.categories.Category;
/**
@@ -36,7 +36,7 @@ public class PSItemUtilitiesTest extends ServletTestCase
@SuppressWarnings("unchecked")
public void testSiteInfo()
{
- MultiMap info = PSItemUtilities.getItemSiteInfo(376);
+ MultiValuedMap info = PSItemUtilities.getItemSiteInfo(376);
assertEquals(1, info.size());
Collection folders = info.values();
diff --git a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/webservices/content/PSContentDesignWsTest.java b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/webservices/content/PSContentDesignWsTest.java
index dd4eb74ca7..3455b485ad 100644
--- a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/webservices/content/PSContentDesignWsTest.java
+++ b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/webservices/content/PSContentDesignWsTest.java
@@ -39,7 +39,7 @@
import com.percussion.utils.testing.IntegrationTest;
import org.apache.cactus.ServletTestCase;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.IteratorUtils;
import org.junit.experimental.categories.Category;
/**
diff --git a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/workflow/PSWorkflowRoleInfoTest.java b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/workflow/PSWorkflowRoleInfoTest.java
index f59f8c7686..283de94077 100644
--- a/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/workflow/PSWorkflowRoleInfoTest.java
+++ b/modules/CMLight-Main-cactus-tests/src/test/java/com/percussion/workflow/PSWorkflowRoleInfoTest.java
@@ -26,7 +26,7 @@
import com.percussion.webservices.security.IPSSecurityWs;
import com.percussion.webservices.security.PSSecurityWsLocator;
import org.apache.cactus.ServletTestCase;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.junit.experimental.categories.Category;
import java.sql.Connection;
diff --git a/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/PSAAClientServlet.java b/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/PSAAClientServlet.java
index 5b1a9733ee..8791d89f9b 100644
--- a/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/PSAAClientServlet.java
+++ b/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/PSAAClientServlet.java
@@ -27,7 +27,7 @@
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
/**
diff --git a/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/actions/impl/PSGetUrlAction.java b/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/actions/impl/PSGetUrlAction.java
index de3ffc7f72..5cb126c31e 100644
--- a/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/actions/impl/PSGetUrlAction.java
+++ b/modules/ContentUI/src/main/java/com/percussion/content/ui/aa/actions/impl/PSGetUrlAction.java
@@ -85,7 +85,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
diff --git a/modules/TableFactory/pom.xml b/modules/TableFactory/pom.xml
index 2af8043e86..81ce8e3b7d 100644
--- a/modules/TableFactory/pom.xml
+++ b/modules/TableFactory/pom.xml
@@ -104,11 +104,6 @@
xml-apis
compile
-
- commons-collections
- commons-collections
- compile
-
diff --git a/modules/TableFactory/src/main/java/com/percussion/tablefactory/PSJdbcImportExportHelper.java b/modules/TableFactory/src/main/java/com/percussion/tablefactory/PSJdbcImportExportHelper.java
index 1c1d9d00b9..652a5dba65 100644
--- a/modules/TableFactory/src/main/java/com/percussion/tablefactory/PSJdbcImportExportHelper.java
+++ b/modules/TableFactory/src/main/java/com/percussion/tablefactory/PSJdbcImportExportHelper.java
@@ -25,7 +25,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
public class PSJdbcImportExportHelper {
diff --git a/modules/extensions-main/pom.xml b/modules/extensions-main/pom.xml
index f62dfd27e9..8fb3ea28bd 100644
--- a/modules/extensions-main/pom.xml
+++ b/modules/extensions-main/pom.xml
@@ -54,10 +54,6 @@
commons-beanutils
commons-beanutils
-
- commons-collections
- commons-collections
-
junit
junit
diff --git a/modules/extensions-main/src/main/java/com/percussion/uicontext/PSGenerateVariantList.java b/modules/extensions-main/src/main/java/com/percussion/uicontext/PSGenerateVariantList.java
index 152de772cc..7832c295c1 100644
--- a/modules/extensions-main/src/main/java/com/percussion/uicontext/PSGenerateVariantList.java
+++ b/modules/extensions-main/src/main/java/com/percussion/uicontext/PSGenerateVariantList.java
@@ -61,8 +61,8 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Transformer;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Transformer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.w3c.dom.Document;
diff --git a/modules/extensions-sfp/pom.xml b/modules/extensions-sfp/pom.xml
index 8ce4da68ba..e346704cfa 100644
--- a/modules/extensions-sfp/pom.xml
+++ b/modules/extensions-sfp/pom.xml
@@ -34,11 +34,6 @@
log4j-1.2-api
provided
-
- commons-collections
- commons-collections
- compile
-
javax.jcr
jcr
diff --git a/modules/extensions-sfp/src/main/java/com/percussion/fastforward/calendar/PSCalendarMonthModel.java b/modules/extensions-sfp/src/main/java/com/percussion/fastforward/calendar/PSCalendarMonthModel.java
index 1a34201799..24c71c10b5 100644
--- a/modules/extensions-sfp/src/main/java/com/percussion/fastforward/calendar/PSCalendarMonthModel.java
+++ b/modules/extensions-sfp/src/main/java/com/percussion/fastforward/calendar/PSCalendarMonthModel.java
@@ -28,8 +28,8 @@
import javax.jcr.Node;
import javax.jcr.Property;
import javax.jcr.RepositoryException;
-import org.apache.commons.collections.MultiHashMap;
-import org.apache.commons.collections.MultiMap;
+import org.apache.commons.collections4.MultiValuedMap;
+import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.FastDateFormat;
import org.apache.logging.log4j.LogManager;
@@ -190,7 +190,7 @@ public void setEvents(List events) {
getModel().m_eventsByDay = null;
} else {
PSCalendarMonthModel model = getModel();
- model.m_eventsByDay = new MultiHashMap();
+ model.m_eventsByDay = new ArrayListValuedHashMap();
for (IPSAssemblyResult event : events) {
Node event_node = event.getNode();
if (event_node != null) {
@@ -253,5 +253,5 @@ private PSCalendarMonthModel getModel() {
* A mapping of events, keyed by day of the month (Integer), returning a list of
* IPSAssemblyResult. Will be null until setEvents is called.
*/
- private MultiMap m_eventsByDay;
+ private MultiValuedMap m_eventsByDay;
}
diff --git a/modules/jcadf-master/pom.xml b/modules/jcadf-master/pom.xml
index 59de4d906b..4d793f4f65 100644
--- a/modules/jcadf-master/pom.xml
+++ b/modules/jcadf-master/pom.xml
@@ -15,8 +15,8 @@
commons-lang3
- commons-collections
- commons-collections
+ org.apache.commons
+ commons-collections4
com.google.guava
diff --git a/modules/jcadf-master/src/main/java/com/ibm/cadf/model/FederatedCredential.java b/modules/jcadf-master/src/main/java/com/ibm/cadf/model/FederatedCredential.java
index ab0b83350e..0f7aef7ec4 100644
--- a/modules/jcadf-master/src/main/java/com/ibm/cadf/model/FederatedCredential.java
+++ b/modules/jcadf-master/src/main/java/com/ibm/cadf/model/FederatedCredential.java
@@ -21,7 +21,7 @@
import com.ibm.cadf.exception.CADFException;
import java.text.MessageFormat;
import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
public class FederatedCredential extends Credential {
diff --git a/modules/perc-exceptions-spring/pom.xml b/modules/perc-exceptions-spring/pom.xml
index a108b3317f..aac455055d 100644
--- a/modules/perc-exceptions-spring/pom.xml
+++ b/modules/perc-exceptions-spring/pom.xml
@@ -29,10 +29,6 @@
com.fasterxml.jackson.core
jackson-annotations
-
- commons-collections
- commons-collections
-
com.percussion
rxutils
diff --git a/modules/perc-exceptions-spring/src/main/java/com/percussion/share/validation/PSErrorCause.java b/modules/perc-exceptions-spring/src/main/java/com/percussion/share/validation/PSErrorCause.java
index d049d7288f..9090173bb1 100644
--- a/modules/perc-exceptions-spring/src/main/java/com/percussion/share/validation/PSErrorCause.java
+++ b/modules/perc-exceptions-spring/src/main/java/com/percussion/share/validation/PSErrorCause.java
@@ -22,7 +22,7 @@
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/modules/perc-security-utils/pom.xml b/modules/perc-security-utils/pom.xml
index 2f9f1b0c3e..c4dc0f93a3 100644
--- a/modules/perc-security-utils/pom.xml
+++ b/modules/perc-security-utils/pom.xml
@@ -48,10 +48,6 @@
commons-io
commons-io
-
- commons-collections
- commons-collections
-
org.bouncycastle
bcprov-jdk15to18
diff --git a/modules/perc-toolkit/src/main/java/com/percussion/soln/rss/RssJexl.java b/modules/perc-toolkit/src/main/java/com/percussion/soln/rss/RssJexl.java
index e823bb1ae2..80bcde5375 100644
--- a/modules/perc-toolkit/src/main/java/com/percussion/soln/rss/RssJexl.java
+++ b/modules/perc-toolkit/src/main/java/com/percussion/soln/rss/RssJexl.java
@@ -17,7 +17,7 @@
package com.percussion.soln.rss;
-import static org.apache.commons.collections.CollectionUtils.filter;
+import static org.apache.commons.collections4.CollectionUtils.filter;
import com.percussion.extension.IPSExtensionDef;
import com.percussion.extension.IPSJexlExpression;
@@ -41,7 +41,7 @@
import java.util.List;
import java.util.regex.Pattern;
import javax.jcr.Node;
-import org.apache.commons.collections.Predicate;
+import org.apache.commons.collections4.Predicate;
public class RssJexl implements IPSJexlExpression {
diff --git a/modules/perc-toolkit/src/test/java/test/percussion/pso/jexl/PSOListToolsTest.java b/modules/perc-toolkit/src/test/java/test/percussion/pso/jexl/PSOListToolsTest.java
index eee4a5a86c..2595cdd1ba 100644
--- a/modules/perc-toolkit/src/test/java/test/percussion/pso/jexl/PSOListToolsTest.java
+++ b/modules/perc-toolkit/src/test/java/test/percussion/pso/jexl/PSOListToolsTest.java
@@ -25,7 +25,7 @@
import java.util.Set;
import java.util.Vector;
import junit.framework.TestCase;
-import org.apache.commons.collections.ListUtils;
+import org.apache.commons.collections4.ListUtils;
@SuppressWarnings("unchecked")
public class PSOListToolsTest extends TestCase {
diff --git a/modules/perc-toolkit/src/test/java/test/percussion/pso/utils/MutableHttpServletRequestWrapperTest.java b/modules/perc-toolkit/src/test/java/test/percussion/pso/utils/MutableHttpServletRequestWrapperTest.java
index 09d44e9af9..a8a0679722 100644
--- a/modules/perc-toolkit/src/test/java/test/percussion/pso/utils/MutableHttpServletRequestWrapperTest.java
+++ b/modules/perc-toolkit/src/test/java/test/percussion/pso/utils/MutableHttpServletRequestWrapperTest.java
@@ -16,7 +16,7 @@
*/
package test.percussion.pso.utils;
-import static org.apache.commons.collections.CollectionUtils.*;
+import static org.apache.commons.collections4.CollectionUtils.*;
import static org.junit.Assert.*;
import com.percussion.pso.utils.MutableHttpServletRequestWrapper;
@@ -25,7 +25,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections.Predicate;
+import org.apache.commons.collections4.Predicate;
import org.junit.Before;
import org.junit.Test;
import org.springframework.mock.web.MockHttpServletRequest;
diff --git a/modules/servletutils/src/test/java/com/percussion/utils/tomcat/PSTomcatConnectorTest.java b/modules/servletutils/src/test/java/com/percussion/utils/tomcat/PSTomcatConnectorTest.java
index eefc8faa20..5e13e5664c 100644
--- a/modules/servletutils/src/test/java/com/percussion/utils/tomcat/PSTomcatConnectorTest.java
+++ b/modules/servletutils/src/test/java/com/percussion/utils/tomcat/PSTomcatConnectorTest.java
@@ -28,7 +28,7 @@
import java.util.stream.Collectors;
import javax.xml.parsers.DocumentBuilder;
import junit.framework.TestCase;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.junit.experimental.categories.Category;
import org.w3c.dom.Element;
diff --git a/pom.xml b/pom.xml
index 9f2b4711e7..a48db0a933 100644
--- a/pom.xml
+++ b/pom.xml
@@ -88,7 +88,6 @@
1.3.5
1.11.0
1.21.0
- 3.2.2
4.5.0
1.28.0
1.6.0
@@ -557,11 +556,6 @@
commons-collections4
${commons.collections4.version}
-
- commons-collections
- commons-collections
- ${commons.collections3.version}
-
org.apache.commons
commons-text
diff --git a/projects/sitemanage/pom.xml b/projects/sitemanage/pom.xml
index b7be57bcc2..d2b3a393e3 100644
--- a/projects/sitemanage/pom.xml
+++ b/projects/sitemanage/pom.xml
@@ -555,11 +555,6 @@
geronimo-stax-api_1.0_spec
compile
-
- commons-collections
- commons-collections
- compile
-
junit
junit
diff --git a/projects/sitemanage/src/main/java/com/percussion/apibridge/FolderAdaptor.java b/projects/sitemanage/src/main/java/com/percussion/apibridge/FolderAdaptor.java
index 3cfab6f1e8..9fea63c597 100644
--- a/projects/sitemanage/src/main/java/com/percussion/apibridge/FolderAdaptor.java
+++ b/projects/sitemanage/src/main/java/com/percussion/apibridge/FolderAdaptor.java
@@ -99,7 +99,7 @@
import java.util.Collection;
import java.util.List;
import javax.ws.rs.NotFoundException;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/projects/sitemanage/src/main/java/com/percussion/apibridge/PageAdaptor.java b/projects/sitemanage/src/main/java/com/percussion/apibridge/PageAdaptor.java
index d3490ca6e4..eb21dfa3b5 100644
--- a/projects/sitemanage/src/main/java/com/percussion/apibridge/PageAdaptor.java
+++ b/projects/sitemanage/src/main/java/com/percussion/apibridge/PageAdaptor.java
@@ -108,7 +108,7 @@
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.FastDateFormat;
import org.apache.logging.log4j.LogManager;
diff --git a/projects/sitemanage/src/main/java/com/percussion/assetmanagement/dao/impl/PSAssetRenameItemInputTransformer.java b/projects/sitemanage/src/main/java/com/percussion/assetmanagement/dao/impl/PSAssetRenameItemInputTransformer.java
index 1ede77e14d..6125002c57 100644
--- a/projects/sitemanage/src/main/java/com/percussion/assetmanagement/dao/impl/PSAssetRenameItemInputTransformer.java
+++ b/projects/sitemanage/src/main/java/com/percussion/assetmanagement/dao/impl/PSAssetRenameItemInputTransformer.java
@@ -18,8 +18,8 @@
import static com.percussion.share.rx.PSLegacyExtensionUtils.addParameters;
import static java.text.MessageFormat.format;
-import static org.apache.commons.collections.MapUtils.getInteger;
-import static org.apache.commons.collections.MapUtils.getString;
+import static org.apache.commons.collections4.MapUtils.getInteger;
+import static org.apache.commons.collections4.MapUtils.getString;
import static org.apache.commons.lang3.StringUtils.endsWith;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
diff --git a/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSAssetService.java b/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSAssetService.java
index 4ed07363a7..b02ec803b8 100644
--- a/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSAssetService.java
+++ b/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSAssetService.java
@@ -19,7 +19,7 @@
import static com.percussion.pathmanagement.service.impl.PSPathUtils.getFinderPath;
import static com.percussion.share.service.exception.PSParameterValidationUtils.rejectIfNull;
import static com.percussion.share.service.exception.PSParameterValidationUtils.validateParameters;
-import static org.apache.commons.collections.CollectionUtils.isNotEmpty;
+import static org.apache.commons.collections4.CollectionUtils.isNotEmpty;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isEmpty;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
diff --git a/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSWidgetAssetRelationshipService.java b/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSWidgetAssetRelationshipService.java
index 30b07fe471..4c68157aaf 100644
--- a/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSWidgetAssetRelationshipService.java
+++ b/projects/sitemanage/src/main/java/com/percussion/assetmanagement/service/impl/PSWidgetAssetRelationshipService.java
@@ -23,7 +23,7 @@
import static com.percussion.share.spring.PSSpringWebApplicationContextUtils.getWebApplicationContext;
import static com.percussion.webservices.PSWebserviceUtils.getItemSummary;
import static java.util.Arrays.asList;
-import static org.apache.commons.collections.CollectionUtils.isEmpty;
+import static org.apache.commons.collections4.CollectionUtils.isEmpty;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.split;
import static org.apache.commons.lang3.Validate.notEmpty;
diff --git a/projects/sitemanage/src/main/java/com/percussion/comments/service/impl/PSCommentsService.java b/projects/sitemanage/src/main/java/com/percussion/comments/service/impl/PSCommentsService.java
index d5e42184ee..0cde783a50 100644
--- a/projects/sitemanage/src/main/java/com/percussion/comments/service/impl/PSCommentsService.java
+++ b/projects/sitemanage/src/main/java/com/percussion/comments/service/impl/PSCommentsService.java
@@ -65,7 +65,7 @@
import net.sf.json.JSONArray;
import net.sf.json.JSONNull;
import net.sf.json.JSONObject;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.logging.log4j.LogManager;
diff --git a/projects/sitemanage/src/main/java/com/percussion/contentmigration/rules/PSClassNameMatcher.java b/projects/sitemanage/src/main/java/com/percussion/contentmigration/rules/PSClassNameMatcher.java
index dd026880f5..16ee81eb6a 100644
--- a/projects/sitemanage/src/main/java/com/percussion/contentmigration/rules/PSClassNameMatcher.java
+++ b/projects/sitemanage/src/main/java/com/percussion/contentmigration/rules/PSClassNameMatcher.java
@@ -22,7 +22,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.Validate;
import org.jsoup.nodes.Element;
diff --git a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/PSPageUtils.java b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/PSPageUtils.java
index 646dc77948..8428a4cf0a 100644
--- a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/PSPageUtils.java
+++ b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/PSPageUtils.java
@@ -150,8 +150,8 @@
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang3.time.FastDateFormat;
@@ -2561,7 +2561,12 @@ private NameAndValue getProperty(Map, ?> item, String fields) {
if (item.containsKey(name)) {
NameAndValue nv = new NameAndValue();
nv.name = name;
- nv.value = MapUtils.getString(item, name);
+ // commons-collections4's `MapUtils.getString(Map, String)` has the
+ // signature ` String getString(Map super K, ?>, K)`. Casting to a
+ // raw `Map` is the simplest way to anchor the K-inference to String.
+ @SuppressWarnings({"unchecked", "rawtypes"})
+ String value = MapUtils.getString((Map) item, name);
+ nv.value = value;
return nv;
}
}
diff --git a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/impl/PSConcurrentRegionsAssembler.java b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/impl/PSConcurrentRegionsAssembler.java
index de69a27acd..ef3da6d92f 100644
--- a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/impl/PSConcurrentRegionsAssembler.java
+++ b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/assembler/impl/PSConcurrentRegionsAssembler.java
@@ -45,7 +45,7 @@
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
-import org.apache.commons.collections.list.AbstractListDecorator;
+import org.apache.commons.collections4.list.AbstractListDecorator;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.util.StopWatch;
@@ -200,7 +200,7 @@ private void setPreviewUrlGenerator(PSRequest req) {
* @author adamgent
* @param the type list holds.
*/
- public static class FutureList extends AbstractListDecorator {
+ public static class FutureList extends AbstractListDecorator {
private Future> futureList;
@@ -209,8 +209,10 @@ public FutureList(Future> futureList) {
this.futureList = futureList;
}
+ // commons-collections4 renamed `getCollection()` / `getList()` to `decorated()`;
+ // the 4.x base class implements it as `protected` so we can call it directly here.
@Override
- protected Collection getCollection() {
+ public List decorated() {
try {
return futureList.get();
} catch (InterruptedException e) {
@@ -223,12 +225,12 @@ protected Collection getCollection() {
@Override
public String toString() {
- return getList().toString();
+ return decorated().toString();
}
@Override
public Iterator iterator() {
- return getCollection().iterator();
+ return decorated().iterator();
}
}
diff --git a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSPageService.java b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSPageService.java
index 3fe7de2e6a..fac281296d 100644
--- a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSPageService.java
+++ b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSPageService.java
@@ -117,7 +117,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.commons.lang3.builder.CompareToBuilder;
diff --git a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSResourceDefinitionUtils.java b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSResourceDefinitionUtils.java
index dba160496a..31805be8d1 100644
--- a/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSResourceDefinitionUtils.java
+++ b/projects/sitemanage/src/main/java/com/percussion/pagemanagement/service/impl/PSResourceDefinitionUtils.java
@@ -16,8 +16,8 @@
*/
package com.percussion.pagemanagement.service.impl;
-import static org.apache.commons.collections.CollectionUtils.intersection;
-import static org.apache.commons.collections.CollectionUtils.isSubCollection;
+import static org.apache.commons.collections4.CollectionUtils.intersection;
+import static org.apache.commons.collections4.CollectionUtils.isSubCollection;
import static org.apache.commons.lang3.Validate.isTrue;
import static org.apache.commons.lang3.Validate.notEmpty;
import static org.apache.commons.lang3.Validate.notNull;
diff --git a/projects/sitemanage/src/main/java/com/percussion/pathmanagement/service/impl/PSDispatchingPathService.java b/projects/sitemanage/src/main/java/com/percussion/pathmanagement/service/impl/PSDispatchingPathService.java
index e44152dc90..d4873016e1 100644
--- a/projects/sitemanage/src/main/java/com/percussion/pathmanagement/service/impl/PSDispatchingPathService.java
+++ b/projects/sitemanage/src/main/java/com/percussion/pathmanagement/service/impl/PSDispatchingPathService.java
@@ -65,7 +65,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.logging.log4j.LogManager;
diff --git a/projects/sitemanage/src/main/java/com/percussion/recent/service/impl/PSRecentServiceBase.java b/projects/sitemanage/src/main/java/com/percussion/recent/service/impl/PSRecentServiceBase.java
index c6ebccb59e..4bf1a7f1f0 100644
--- a/projects/sitemanage/src/main/java/com/percussion/recent/service/impl/PSRecentServiceBase.java
+++ b/projects/sitemanage/src/main/java/com/percussion/recent/service/impl/PSRecentServiceBase.java
@@ -25,7 +25,7 @@
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
diff --git a/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractFilter.java b/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractFilter.java
index 5fa492e489..f964d5f656 100644
--- a/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractFilter.java
+++ b/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractFilter.java
@@ -19,8 +19,8 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Predicate;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Predicate;
public abstract class PSAbstractFilter implements Predicate {
diff --git a/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractTransformer.java b/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractTransformer.java
index 9ab3f78911..e5a968a6d3 100644
--- a/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractTransformer.java
+++ b/projects/sitemanage/src/main/java/com/percussion/share/data/PSAbstractTransformer.java
@@ -20,8 +20,8 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Transformer;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Transformer;
public abstract class PSAbstractTransformer implements Transformer {
diff --git a/projects/sitemanage/src/main/java/com/percussion/share/rx/PSLegacyExtensionUtils.java b/projects/sitemanage/src/main/java/com/percussion/share/rx/PSLegacyExtensionUtils.java
index d4f90a9c6b..5c82cbaaca 100644
--- a/projects/sitemanage/src/main/java/com/percussion/share/rx/PSLegacyExtensionUtils.java
+++ b/projects/sitemanage/src/main/java/com/percussion/share/rx/PSLegacyExtensionUtils.java
@@ -26,7 +26,6 @@
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
-import org.apache.commons.collections.CollectionUtils;
/**
* Utility methods for working with legacy Percussion CM System extensions. Many methods convert
@@ -133,8 +132,9 @@ public static List getParameterNames(IPSRequestContext request) {
public static List getParameterNames(IPSExtensionDef extensionDef) {
notNull(extensionDef);
List rvalue = new ArrayList<>();
+ // commons-collections4 dropped `CollectionUtils.addAll(Collection, Iterator)`; loop instead.
Iterator it = extensionDef.getRuntimeParameterNames();
- CollectionUtils.addAll(rvalue, it);
+ while (it.hasNext()) rvalue.add(it.next());
return rvalue;
}
}
diff --git a/projects/sitemanage/src/main/java/com/percussion/sitemanage/service/impl/PSSiteTemplateService.java b/projects/sitemanage/src/main/java/com/percussion/sitemanage/service/impl/PSSiteTemplateService.java
index 05ecbb5def..7e29b82b87 100644
--- a/projects/sitemanage/src/main/java/com/percussion/sitemanage/service/impl/PSSiteTemplateService.java
+++ b/projects/sitemanage/src/main/java/com/percussion/sitemanage/service/impl/PSSiteTemplateService.java
@@ -89,7 +89,7 @@
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/projects/sitemanage/src/main/java/com/percussion/user/service/impl/PSUserService.java b/projects/sitemanage/src/main/java/com/percussion/user/service/impl/PSUserService.java
index 73ab97d1c1..96d7613c21 100644
--- a/projects/sitemanage/src/main/java/com/percussion/user/service/impl/PSUserService.java
+++ b/projects/sitemanage/src/main/java/com/percussion/user/service/impl/PSUserService.java
@@ -25,7 +25,7 @@
import static com.percussion.webservices.PSWebserviceUtils.getItemSummary;
import static com.percussion.webservices.PSWebserviceUtils.setUserName;
import static java.util.Arrays.asList;
-import static org.apache.commons.collections.CollectionUtils.containsAny;
+import static org.apache.commons.collections4.CollectionUtils.containsAny;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import static org.apache.commons.lang3.Validate.isTrue;
diff --git a/system/Testing/src/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdaterTest.java b/system/Testing/src/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdaterTest.java
index d291f2c61f..b3727d178d 100644
--- a/system/Testing/src/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdaterTest.java
+++ b/system/Testing/src/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdaterTest.java
@@ -23,7 +23,7 @@
import com.percussion.services.workflow.IPSWorkflowService;
import com.percussion.services.workflow.PSWorkflowServiceLocator;
import com.percussion.utils.testing.IntegrationTest;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.IteratorUtils;
import org.junit.Test;
import org.junit.experimental.categories.Category;
diff --git a/system/Testing/src/com/percussion/services/security/PSJaasUtilsTest.java b/system/Testing/src/com/percussion/services/security/PSJaasUtilsTest.java
index 4ef4d2f6dd..1f031a6afe 100644
--- a/system/Testing/src/com/percussion/services/security/PSJaasUtilsTest.java
+++ b/system/Testing/src/com/percussion/services/security/PSJaasUtilsTest.java
@@ -31,8 +31,8 @@
import javax.security.auth.Subject;
-import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.iterators.FilterIterator;
+import org.apache.commons.collections4.Predicate;
+import org.apache.commons.collections4.iterators.FilterIterator;
import junit.framework.TestCase;
import junit.framework.TestSuite;
diff --git a/system/Testing/src/com/percussion/services/sitemgr/PSSiteManagerTest.java b/system/Testing/src/com/percussion/services/sitemgr/PSSiteManagerTest.java
index 3576585d32..8c5b66285f 100644
--- a/system/Testing/src/com/percussion/services/sitemgr/PSSiteManagerTest.java
+++ b/system/Testing/src/com/percussion/services/sitemgr/PSSiteManagerTest.java
@@ -36,7 +36,7 @@
import com.percussion.utils.testing.IntegrationTest;
import com.percussion.utils.types.PSPair;
import junit.framework.Assert;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/Testing/src/com/percussion/services/system/PSAssignmentTypeHelperTest.java b/system/Testing/src/com/percussion/services/system/PSAssignmentTypeHelperTest.java
index 6239231bcb..ae26124af8 100644
--- a/system/Testing/src/com/percussion/services/system/PSAssignmentTypeHelperTest.java
+++ b/system/Testing/src/com/percussion/services/system/PSAssignmentTypeHelperTest.java
@@ -43,7 +43,7 @@
import com.percussion.utils.request.PSRequestInfo;
import com.percussion.utils.testing.IntegrationTest;
import com.percussion.utils.timing.PSStopwatchStack;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.junit.AfterClass;
diff --git a/system/business/src/com/percussion/rx/utils/PSContentTypeUtils.java b/system/business/src/com/percussion/rx/utils/PSContentTypeUtils.java
index 0d4ce2bba9..cd7a54b453 100644
--- a/system/business/src/com/percussion/rx/utils/PSContentTypeUtils.java
+++ b/system/business/src/com/percussion/rx/utils/PSContentTypeUtils.java
@@ -35,7 +35,7 @@
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/pom.xml b/system/pom.xml
index d0e308dec3..cd4ef57308 100644
--- a/system/pom.xml
+++ b/system/pom.xml
@@ -165,10 +165,6 @@
hibernate-ehcache
-
- commons-collections
- commons-collections
-
commons-codec
commons-codec
diff --git a/system/services/src/com/percussion/services/assembly/jexl/PSLocationUtils.java b/system/services/src/com/percussion/services/assembly/jexl/PSLocationUtils.java
index 8505c3c57c..5e4bca59bf 100644
--- a/system/services/src/com/percussion/services/assembly/jexl/PSLocationUtils.java
+++ b/system/services/src/com/percussion/services/assembly/jexl/PSLocationUtils.java
@@ -52,8 +52,8 @@
import com.percussion.utils.jexl.PSJexlEvaluator;
import com.percussion.utils.request.PSRequestInfo;
import com.percussion.utils.timing.PSStopwatchStack;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Predicate;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Predicate;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/services/src/com/percussion/services/contentmgr/data/PSNodeDefinition.java b/system/services/src/com/percussion/services/contentmgr/data/PSNodeDefinition.java
index 7826b274b6..53c93fa516 100644
--- a/system/services/src/com/percussion/services/contentmgr/data/PSNodeDefinition.java
+++ b/system/services/src/com/percussion/services/contentmgr/data/PSNodeDefinition.java
@@ -29,7 +29,7 @@
import com.percussion.services.utils.xml.PSXmlSerializationHelper;
import com.percussion.utils.guid.IPSGuid;
import com.percussion.utils.xml.IPSXmlSerialization;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;
diff --git a/system/services/src/com/percussion/services/contentmgr/impl/legacy/PSContentRepository.java b/system/services/src/com/percussion/services/contentmgr/impl/legacy/PSContentRepository.java
index fd17780291..405a51d122 100644
--- a/system/services/src/com/percussion/services/contentmgr/impl/legacy/PSContentRepository.java
+++ b/system/services/src/com/percussion/services/contentmgr/impl/legacy/PSContentRepository.java
@@ -93,8 +93,8 @@
import com.percussion.utils.string.PSFolderStringUtils;
import com.percussion.utils.string.PSXmlPIUtils;
import com.percussion.utils.types.PSPair;
-import org.apache.commons.collections.MultiHashMap;
-import org.apache.commons.collections.MultiMap;
+import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
+import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -869,7 +869,7 @@ private Map loadInstances(Session session,
{
Map rval = new HashMap<>();
Map typeToClassMap = new HashMap<>();
- MultiMap typeToIdsMap = new MultiHashMap();
+ MultiValuedMap typeToIdsMap = new ArrayListValuedHashMap();
for (IPSGuid g : guids)
{
if (!(g instanceof PSLegacyGuid))
diff --git a/system/services/src/com/percussion/services/legacy/impl/PSCmsObjectMgr.java b/system/services/src/com/percussion/services/legacy/impl/PSCmsObjectMgr.java
index 1f763cfc6d..4fbdc620ed 100644
--- a/system/services/src/com/percussion/services/legacy/impl/PSCmsObjectMgr.java
+++ b/system/services/src/com/percussion/services/legacy/impl/PSCmsObjectMgr.java
@@ -85,7 +85,7 @@
import com.percussion.workflow.PSStatesContext;
import com.percussion.workflow.PSWorkflowAppsContext;
import com.percussion.xml.PSXmlDocumentBuilder;
-import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Validate;
import org.apache.logging.log4j.LogManager;
diff --git a/system/services/src/com/percussion/services/menus/PSTemplateActionMenuHelper.java b/system/services/src/com/percussion/services/menus/PSTemplateActionMenuHelper.java
index e69922cf29..e287d3f7b9 100644
--- a/system/services/src/com/percussion/services/menus/PSTemplateActionMenuHelper.java
+++ b/system/services/src/com/percussion/services/menus/PSTemplateActionMenuHelper.java
@@ -43,8 +43,8 @@
import com.percussion.webservices.security.PSSecurityWsLocator;
import com.percussion.webservices.ui.IPSUiDesignWs;
import com.percussion.webservices.ui.PSUiWsLocator;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.collections.Transformer;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.Transformer;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/services/src/com/percussion/services/security/PSJaasUtils.java b/system/services/src/com/percussion/services/security/PSJaasUtils.java
index 64e521d1d5..53219e654a 100644
--- a/system/services/src/com/percussion/services/security/PSJaasUtils.java
+++ b/system/services/src/com/percussion/services/security/PSJaasUtils.java
@@ -48,8 +48,8 @@
import javax.security.auth.Subject;
import javax.security.auth.login.LoginException;
-import org.apache.commons.collections.Predicate;
-import org.apache.commons.collections.iterators.FilterIterator;
+import org.apache.commons.collections4.Predicate;
+import org.apache.commons.collections4.iterators.FilterIterator;
import org.apache.commons.lang3.StringUtils;
/**
diff --git a/system/services/src/com/percussion/services/security/loginmods/data/PSGroup.java b/system/services/src/com/percussion/services/security/loginmods/data/PSGroup.java
index fbb4fa3433..12b0890390 100644
--- a/system/services/src/com/percussion/services/security/loginmods/data/PSGroup.java
+++ b/system/services/src/com/percussion/services/security/loginmods/data/PSGroup.java
@@ -24,7 +24,7 @@
import java.util.Objects;
import java.util.Set;
-import org.apache.commons.collections.iterators.IteratorEnumeration;
+import org.apache.commons.collections4.iterators.IteratorEnumeration;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
diff --git a/system/services/src/com/percussion/services/sitemgr/data/PSSite.java b/system/services/src/com/percussion/services/sitemgr/data/PSSite.java
index b5db522c46..570e8e6f20 100644
--- a/system/services/src/com/percussion/services/sitemgr/data/PSSite.java
+++ b/system/services/src/com/percussion/services/sitemgr/data/PSSite.java
@@ -33,7 +33,7 @@
import com.percussion.utils.guid.IPSGuid;
import com.percussion.utils.xml.IPSXmlSerialization;
import com.percussion.xml.PSXmlDocumentBuilder;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.hibernate.annotations.Cache;
diff --git a/system/services/src/com/percussion/services/sitemgr/impl/PSSiteManager.java b/system/services/src/com/percussion/services/sitemgr/impl/PSSiteManager.java
index c612dc52f6..32aaca8bdf 100644
--- a/system/services/src/com/percussion/services/sitemgr/impl/PSSiteManager.java
+++ b/system/services/src/com/percussion/services/sitemgr/impl/PSSiteManager.java
@@ -62,7 +62,7 @@
import com.percussion.utils.guid.IPSGuid;
import com.percussion.utils.request.PSRequestInfo;
import com.percussion.utils.types.PSPair;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/services/src/com/percussion/services/utils/jspel/PSItemUtilities.java b/system/services/src/com/percussion/services/utils/jspel/PSItemUtilities.java
index 566ca3936d..e27e9789b1 100644
--- a/system/services/src/com/percussion/services/utils/jspel/PSItemUtilities.java
+++ b/system/services/src/com/percussion/services/utils/jspel/PSItemUtilities.java
@@ -29,8 +29,8 @@
import com.percussion.services.sitemgr.IPSSiteManager;
import com.percussion.services.sitemgr.PSSiteManagerLocator;
import com.percussion.utils.request.PSRequestInfo;
-import org.apache.commons.collections.MultiHashMap;
-import org.apache.commons.collections.MultiMap;
+import org.apache.commons.collections4.multimap.ArrayListValuedHashMap;
+import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.lang3.StringUtils;
import java.io.ByteArrayOutputStream;
@@ -89,9 +89,9 @@ public static String getInternal(String url)
* @return the map from site name to folder path collection, where "*" is the
* special site name for no site
*/
- public static MultiMap getItemSiteInfo(int contentid)
+ public static MultiValuedMap getItemSiteInfo(int contentid)
{
- MultiMap rval = new MultiHashMap();
+ MultiValuedMap rval = new ArrayListValuedHashMap();
IPSCmsObjectMgr cms = PSCmsObjectMgrLocator.getObjectManager();
IPSSiteManager smgr = PSSiteManagerLocator.getSiteManager();
PSComponentSummary sum = cms.loadComponentSummary(contentid);
diff --git a/system/services/src/com/percussion/services/workflow/PSWorkflowActionsHelper.java b/system/services/src/com/percussion/services/workflow/PSWorkflowActionsHelper.java
index ebfcc95be5..b85638725f 100644
--- a/system/services/src/com/percussion/services/workflow/PSWorkflowActionsHelper.java
+++ b/system/services/src/com/percussion/services/workflow/PSWorkflowActionsHelper.java
@@ -47,7 +47,7 @@
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.ListUtils;
+import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/src/main/java/com/percussion/cms/handlers/PSConditionalCloneHandler.java b/system/src/main/java/com/percussion/cms/handlers/PSConditionalCloneHandler.java
index 76b9e03a27..dc2515625e 100644
--- a/system/src/main/java/com/percussion/cms/handlers/PSConditionalCloneHandler.java
+++ b/system/src/main/java/com/percussion/cms/handlers/PSConditionalCloneHandler.java
@@ -80,7 +80,6 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.logging.log4j.LogManager;
@@ -548,7 +547,10 @@ private void fixupRelationships(
Map childRowMappings)
throws PSException {
List createdRels = new ArrayList<>();
- CollectionUtils.addAll(createdRels, request.getRelationships());
+ // commons-collections4 dropped `CollectionUtils.addAll(Collection, Iterator)`;
+ // PSRequest.getRelationships() still returns Iterator, so loop.
+ Iterator relIt = request.getRelationships();
+ while (relIt.hasNext()) createdRels.add((PSRelationship) relIt.next());
psRelationships = removeFolderRelationships(psRelationships);
if (psRelationships.isEmpty()) return;
diff --git a/system/src/main/java/com/percussion/cms/handlers/PSContentEditorHandler.java b/system/src/main/java/com/percussion/cms/handlers/PSContentEditorHandler.java
index 7a8fc9b764..0d406936a9 100644
--- a/system/src/main/java/com/percussion/cms/handlers/PSContentEditorHandler.java
+++ b/system/src/main/java/com/percussion/cms/handlers/PSContentEditorHandler.java
@@ -95,7 +95,7 @@
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang3.StringUtils;
import org.w3c.dom.Document;
diff --git a/system/src/main/java/com/percussion/design/objectstore/PSContentTypeHelper.java b/system/src/main/java/com/percussion/design/objectstore/PSContentTypeHelper.java
index 6b3d0ea4c8..0752c47522 100644
--- a/system/src/main/java/com/percussion/design/objectstore/PSContentTypeHelper.java
+++ b/system/src/main/java/com/percussion/design/objectstore/PSContentTypeHelper.java
@@ -66,7 +66,7 @@
import java.util.Set;
import javax.jcr.RepositoryException;
import javax.jcr.nodetype.NoSuchNodeTypeException;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/src/main/java/com/percussion/design/objectstore/PSTraceInfo.java b/system/src/main/java/com/percussion/design/objectstore/PSTraceInfo.java
index 9bcdda8ae3..35b88da4aa 100644
--- a/system/src/main/java/com/percussion/design/objectstore/PSTraceInfo.java
+++ b/system/src/main/java/com/percussion/design/objectstore/PSTraceInfo.java
@@ -26,7 +26,7 @@
import java.util.List;
import java.util.Locale;
import java.util.Objects;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
diff --git a/system/src/main/java/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdater.java b/system/src/main/java/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdater.java
index b9d6852d10..bac8667ba9 100644
--- a/system/src/main/java/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdater.java
+++ b/system/src/main/java/com/percussion/design/objectstore/legacy/PSAllowAllCtypeWorkflowsUpdater.java
@@ -36,7 +36,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang3.Validate;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/src/main/java/com/percussion/extension/PSExtensionHandlerConfiguration.java b/system/src/main/java/com/percussion/extension/PSExtensionHandlerConfiguration.java
index c2b948b696..6bb17b33a3 100644
--- a/system/src/main/java/com/percussion/extension/PSExtensionHandlerConfiguration.java
+++ b/system/src/main/java/com/percussion/extension/PSExtensionHandlerConfiguration.java
@@ -37,7 +37,7 @@
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.IteratorUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/src/main/java/com/percussion/extension/PSValidateCharacters.java b/system/src/main/java/com/percussion/extension/PSValidateCharacters.java
index 2efa189361..aa94693439 100644
--- a/system/src/main/java/com/percussion/extension/PSValidateCharacters.java
+++ b/system/src/main/java/com/percussion/extension/PSValidateCharacters.java
@@ -23,7 +23,7 @@
import com.percussion.security.SecureStringUtils;
import com.percussion.server.IPSRequestContext;
import java.io.File;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.IteratorUtils;
/**
* Field validation extension that checks if the given field has any of the given invalid
diff --git a/system/src/main/java/com/percussion/install/PSUpgradePluginUpdateExtensions.java b/system/src/main/java/com/percussion/install/PSUpgradePluginUpdateExtensions.java
index 5c8cdacb55..1e02a33878 100644
--- a/system/src/main/java/com/percussion/install/PSUpgradePluginUpdateExtensions.java
+++ b/system/src/main/java/com/percussion/install/PSUpgradePluginUpdateExtensions.java
@@ -30,7 +30,7 @@
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.w3c.dom.Element;
/**
diff --git a/system/src/main/java/com/percussion/search/lucene/textconverter/PSLuceneTextConverterFactory.java b/system/src/main/java/com/percussion/search/lucene/textconverter/PSLuceneTextConverterFactory.java
index 99ef6c2646..2daf50ee99 100644
--- a/system/src/main/java/com/percussion/search/lucene/textconverter/PSLuceneTextConverterFactory.java
+++ b/system/src/main/java/com/percussion/search/lucene/textconverter/PSLuceneTextConverterFactory.java
@@ -28,7 +28,7 @@
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-import org.apache.commons.collections.MapUtils;
+import org.apache.commons.collections4.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/system/src/main/java/com/percussion/server/webservices/crosssite/PSCrossSiteFolderMoveActionProcessor.java b/system/src/main/java/com/percussion/server/webservices/crosssite/PSCrossSiteFolderMoveActionProcessor.java
index 1d26f7917e..be4ba78e16 100644
--- a/system/src/main/java/com/percussion/server/webservices/crosssite/PSCrossSiteFolderMoveActionProcessor.java
+++ b/system/src/main/java/com/percussion/server/webservices/crosssite/PSCrossSiteFolderMoveActionProcessor.java
@@ -30,7 +30,7 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.collections4.CollectionUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
diff --git a/system/src/main/java/com/percussion/servlets/PSActionPanelServlet.java b/system/src/main/java/com/percussion/servlets/PSActionPanelServlet.java
index bb3c8441ba..e59c4844db 100644
--- a/system/src/main/java/com/percussion/servlets/PSActionPanelServlet.java
+++ b/system/src/main/java/com/percussion/servlets/PSActionPanelServlet.java
@@ -49,7 +49,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
-import org.apache.commons.collections.MultiMap;
+import org.apache.commons.collections4.MultiValuedMap;
import org.apache.commons.lang3.StringUtils;
/**
@@ -97,7 +97,7 @@ protected void service(HttpServletRequest request, HttpServletResponse response)
String url = getTargetUrl(targetType, contentid);
int cid = Integer.parseInt(contentid);
- MultiMap siteinfo = PSItemUtilities.getItemSiteInfo(cid);
+ MultiValuedMap siteinfo = PSItemUtilities.getItemSiteInfo(cid);
boolean showpanel = false;
Integer fid = StringUtils.isNotBlank(folderid) ? new Integer(folderid) : null;
Long sid = StringUtils.isNotBlank(siteid) ? new Long(siteid) : null;