From 51a1d90ca5a8c5de1827124409a39ca95046422c Mon Sep 17 00:00:00 2001 From: Nate Chadwick <263952448+natechadwick-intsof@users.noreply.github.com> Date: Fri, 28 Aug 2026 17:13:52 -0400 Subject: [PATCH] fix(deps): EOL replace commons-collections 3.2.2 with commons-collections4 4.5.0 (issue #86) Closes #86. Mechanical migration of every `org.apache.commons.collections.*` import to `org.apache.commons.collections4.*` across the codebase, plus removal of the 3.2.2 dep from the root pom and 13 module poms. The `commons-collections4:4.5.0` line was already in the root pom's dependencyManagement (only the 3.x line was in active use), so no new dep is added. Scope: - 71 .java files: `org.apache.commons.collections.` -> `org.apache.commons.collections4.` - 1 root pom + 13 module poms: drop the `commons-collections:commons-collections:3.2.2` dependency and the `3.2.2` property - 1 module pom (jcadf-master): add a direct `org.apache.commons:commons-collections4` dep, since the original `commons-collections:commons-collections` direct dep was the sole source of the collections classes in this module - 6 special-case files (see API notes below) API differences between commons-collections 3.x and 4.5.0 that this PR addresses (all behavioural, no semantic change for the call sites involved): 1. `org.apache.commons.collections.MultiHashMap` was **removed** in 4.x. The 3 call sites now use `org.apache.commons.collections4.multimap.ArrayListValuedHashMap`. The `MultiMap` interface (deprecated in 4.x but still present) was replaced with `MultiValuedMap` (the new 4.x interface that replaced it; `ArrayListValuedHashMap` implements `MultiValuedMap`, not `MultiMap`). Files: PSCalendarMonthModel, PSContentRepository, PSItemUtilities + 2 callers (PSActionPanelServlet, PSItemUtilitiesTest). 2. `CollectionUtils.addAll(Collection, Iterator)` was **removed** in 4.x (the new signatures are `addAll(Collection, Iterable)` and `addAll(Collection, Enumeration)` only). The 4 call sites that pass an Iterator are inlined to a `while (it.hasNext()) list.add(it.next())` loop. The 7 sites that pass an Iterable/Collection work unchanged. Files: PSLegacyExtensionUtils, PSContentTypeSetter (iteratorToList), PSContentTypeFieldSetter (excludes loop), PSConditionalCloneHandler. 3. `AbstractListDecorator.getCollection()` / `getList()` were renamed to `decorated()` in 4.x. The 1 call site in PSConcurrentRegionsAssembler.FutureList inlines the override as `decorated()` (and calls it from the iterator/toString overrides that previously used the public `getList()` / `getCollection()`). 4. `MapUtils.getString(Map, String)` (2-arg) and the new 3-arg `getString(Map, String, String)` (default) in 4.x use a generic signature ` String getString(Map, K)` that does not type-infer when the input is `Map`. The 1 call site in PSPageUtils casts to a raw `Map` to anchor the K-inference to String (with a `@SuppressWarnings({unchecked, rawtypes})` on the line). Verification: - ./mvn-env.sh clean install -DskipTests: BUILD SUCCESS in 3:41 (61 modules, Java 1.8.0_504) - ./mvn-env.sh spotless:check: clean (the build runs spotless:apply during validate; nothing needed reformatting beyond the inline raw-type cast above) - No UnsupportedClassVersionError in the build log - commons-collections 3.x no longer in the project's own dependency graph (only commons-collections4 4.5.0 remains; `commons-collections` 2.5 may still be pulled in transitively by legacy system-scoped jars, but that is independent of this PR) Out of scope (separate issues under #73): - commons-beanutils 1.11.0 -> beanutils2 EOL replacement (Jakarta migration; large blast radius) - commons-httpclient 3.1 -> HttpClient 5 (the project already has HttpClient 5 from #79; just remove the 3.1 dep) - commons-configuration 1.10 -> commons-configuration2 EOL replacement - T2.11 SnakeYAML SafeConstructor hardening (16 CVEs) - T2.6 size caps on the other zip sites (follow-up to #83) Refs #86, #73, #72 --- .../DTS-shared-dependencies/pom.xml | 13 ------------- .../delivery-tier-distribution/pom.xml | 4 ---- .../metadata/data/impl/PSCriteriaElement.java | 2 +- .../delivery-tier-suite/tomcat-common/pom.xml | 4 ---- deployer/pom.xml | 4 ---- .../PSContentListDefDependencyHandler.java | 4 ++-- .../PSContentTypeDependencyHandler.java | 2 +- .../server/dependencies/PSDependencyUtils.java | 2 +- .../dependencies/PSPublisherServiceHelper.java | 4 ++-- .../percussion/rx/config/impl/PSConfigUtils.java | 2 +- .../rx/config/impl/PSContentTypeFieldSetter.java | 11 +++++++---- .../rx/config/impl/PSContentTypeSetter.java | 7 ++++--- modules/CMLight-Main-cactus-tests/pom.xml | 5 ----- .../rx/config/test/PSContentTypeSetterTest.java | 2 +- .../assembly/data/PSAssemblyTemplateTest.java | 2 +- .../impl/PSHashedFieldCatalogerTest.java | 2 +- .../services/system/PSAssignmentTypeHelperTest.java | 2 +- .../services/utils/jspel/PSItemUtilitiesTest.java | 4 ++-- .../webservices/content/PSContentDesignWsTest.java | 2 +- .../percussion/workflow/PSWorkflowRoleInfoTest.java | 2 +- .../percussion/content/ui/aa/PSAAClientServlet.java | 2 +- .../content/ui/aa/actions/impl/PSGetUrlAction.java | 2 +- modules/TableFactory/pom.xml | 5 ----- .../tablefactory/PSJdbcImportExportHelper.java | 2 +- modules/extensions-main/pom.xml | 4 ---- .../percussion/uicontext/PSGenerateVariantList.java | 4 ++-- modules/extensions-sfp/pom.xml | 5 ----- .../fastforward/calendar/PSCalendarMonthModel.java | 8 ++++---- modules/jcadf-master/pom.xml | 4 ++-- .../com/ibm/cadf/model/FederatedCredential.java | 2 +- modules/perc-exceptions-spring/pom.xml | 4 ---- .../percussion/share/validation/PSErrorCause.java | 2 +- modules/perc-security-utils/pom.xml | 4 ---- .../main/java/com/percussion/soln/rss/RssJexl.java | 4 ++-- .../test/percussion/pso/jexl/PSOListToolsTest.java | 2 +- .../utils/MutableHttpServletRequestWrapperTest.java | 4 ++-- .../utils/tomcat/PSTomcatConnectorTest.java | 2 +- pom.xml | 6 ------ projects/sitemanage/pom.xml | 5 ----- .../com/percussion/apibridge/FolderAdaptor.java | 2 +- .../java/com/percussion/apibridge/PageAdaptor.java | 2 +- .../dao/impl/PSAssetRenameItemInputTransformer.java | 4 ++-- .../service/impl/PSAssetService.java | 2 +- .../impl/PSWidgetAssetRelationshipService.java | 2 +- .../comments/service/impl/PSCommentsService.java | 2 +- .../contentmigration/rules/PSClassNameMatcher.java | 2 +- .../pagemanagement/assembler/PSPageUtils.java | 11 ++++++++--- .../impl/PSConcurrentRegionsAssembler.java | 12 +++++++----- .../pagemanagement/service/impl/PSPageService.java | 2 +- .../service/impl/PSResourceDefinitionUtils.java | 4 ++-- .../service/impl/PSDispatchingPathService.java | 2 +- .../recent/service/impl/PSRecentServiceBase.java | 2 +- .../com/percussion/share/data/PSAbstractFilter.java | 4 ++-- .../share/data/PSAbstractTransformer.java | 4 ++-- .../percussion/share/rx/PSLegacyExtensionUtils.java | 4 ++-- .../service/impl/PSSiteTemplateService.java | 2 +- .../percussion/user/service/impl/PSUserService.java | 2 +- .../legacy/PSAllowAllCtypeWorkflowsUpdaterTest.java | 2 +- .../services/security/PSJaasUtilsTest.java | 4 ++-- .../services/sitemgr/PSSiteManagerTest.java | 2 +- .../services/system/PSAssignmentTypeHelperTest.java | 2 +- .../com/percussion/rx/utils/PSContentTypeUtils.java | 2 +- system/pom.xml | 4 ---- .../services/assembly/jexl/PSLocationUtils.java | 4 ++-- .../services/contentmgr/data/PSNodeDefinition.java | 2 +- .../contentmgr/impl/legacy/PSContentRepository.java | 6 +++--- .../services/legacy/impl/PSCmsObjectMgr.java | 2 +- .../services/menus/PSTemplateActionMenuHelper.java | 4 ++-- .../percussion/services/security/PSJaasUtils.java | 4 ++-- .../services/security/loginmods/data/PSGroup.java | 2 +- .../percussion/services/sitemgr/data/PSSite.java | 2 +- .../services/sitemgr/impl/PSSiteManager.java | 2 +- .../services/utils/jspel/PSItemUtilities.java | 8 ++++---- .../services/workflow/PSWorkflowActionsHelper.java | 2 +- .../cms/handlers/PSConditionalCloneHandler.java | 6 ++++-- .../cms/handlers/PSContentEditorHandler.java | 2 +- .../design/objectstore/PSContentTypeHelper.java | 2 +- .../percussion/design/objectstore/PSTraceInfo.java | 2 +- .../legacy/PSAllowAllCtypeWorkflowsUpdater.java | 2 +- .../extension/PSExtensionHandlerConfiguration.java | 2 +- .../percussion/extension/PSValidateCharacters.java | 2 +- .../install/PSUpgradePluginUpdateExtensions.java | 2 +- .../textconverter/PSLuceneTextConverterFactory.java | 2 +- .../PSCrossSiteFolderMoveActionProcessor.java | 2 +- .../percussion/servlets/PSActionPanelServlet.java | 4 ++-- 85 files changed, 122 insertions(+), 176 deletions(-) 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, 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;