SLING-6718 : Use commons collections 4
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/resourceresolver@1788873 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/pom.xml b/pom.xml
index 15f9383..6466a71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -127,9 +127,9 @@
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>commons-collections</groupId>
- <artifactId>commons-collections</artifactId>
- <version>3.2.1</version>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>4.1</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java b/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
index 609ff77..4d66db8 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/CommonResourceResolverFactoryImpl.java
@@ -33,7 +33,7 @@
import javax.annotation.Nonnull;
-import org.apache.commons.collections.BidiMap;
+import org.apache.commons.collections4.BidiMap;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
@@ -73,16 +73,16 @@
/**
* Thread local holding the resource resolver stack
*/
- private ThreadLocal<Stack<WeakReference<ResourceResolver>>> resolverStackHolder = new ThreadLocal<Stack<WeakReference<ResourceResolver>>>();
+ private ThreadLocal<Stack<WeakReference<ResourceResolver>>> resolverStackHolder = new ThreadLocal<>();
/** Flag indicating whether this factory is still active. */
private final AtomicBoolean isActive = new AtomicBoolean(true);
/** The reference queue to handle disposing of resource resolver instances. */
- private final ReferenceQueue<ResourceResolver> resolverReferenceQueue = new ReferenceQueue<ResourceResolver>();
+ private final ReferenceQueue<ResourceResolver> resolverReferenceQueue = new ReferenceQueue<>();
/** Map of the ResourceResolverControl's hash code to the references to open resource resolver instances. */
- private final Map<Integer, ResolverReference> refs = new ConcurrentHashMap<Integer, ResolverReference>();
+ private final Map<Integer, ResolverReference> refs = new ConcurrentHashMap<>();
/** Background thread handling disposing of resource resolver instances. */
private final Thread refQueueThread;
@@ -139,7 +139,7 @@
checkIsLive();
// create a copy of the passed authentication info as we modify the map
- final Map<String, Object> authenticationInfo = new HashMap<String, Object>();
+ final Map<String, Object> authenticationInfo = new HashMap<>();
authenticationInfo.put(ResourceProvider.AUTH_ADMIN, Boolean.TRUE);
if ( passedAuthenticationInfo != null ) {
authenticationInfo.putAll(passedAuthenticationInfo);
@@ -161,7 +161,7 @@
checkIsLive();
// create a copy of the passed authentication info as we modify the map
- final Map<String, Object> authenticationInfo = new HashMap<String, Object>();
+ final Map<String, Object> authenticationInfo = new HashMap<>();
if ( passedAuthenticationInfo != null ) {
authenticationInfo.putAll(passedAuthenticationInfo);
// make sure there is no leaking of service bundle and info props
@@ -172,10 +172,10 @@
final ResourceResolver result = getResourceResolverInternal(authenticationInfo, false);
Stack<WeakReference<ResourceResolver>> resolverStack = resolverStackHolder.get();
if ( resolverStack == null ) {
- resolverStack = new Stack<WeakReference<ResourceResolver>>();
+ resolverStack = new Stack<>();
resolverStackHolder.set(resolverStack);
}
- resolverStack.push(new WeakReference<ResourceResolver>(result));
+ resolverStack.push(new WeakReference<>(result));
return result;
}
@@ -331,7 +331,7 @@
resolverStackHolder = null;
// copy and clear map before closing the remaining references
- final Collection<ResolverReference> references = new ArrayList<ResolverReference>(refs.values());
+ final Collection<ResolverReference> references = new ArrayList<>(refs.values());
refs.clear();
for(final ResolverReference ref : references) {
ref.close();
@@ -437,7 +437,7 @@
if ( includes == null && excludes == null ) {
return null;
}
- final List<VanityPathConfig> configs = new ArrayList<VanityPathConfig>();
+ final List<VanityPathConfig> configs = new ArrayList<>();
if ( includes != null ) {
for(final String val : includes) {
configs.add(new VanityPathConfig(val, false));
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
index 7752d56..12aa1c5 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/ResourceResolverFactoryActivator.java
@@ -30,13 +30,14 @@
import java.util.Map;
import java.util.Set;
-import org.apache.commons.collections.BidiMap;
-import org.apache.commons.collections.bidimap.TreeBidiMap;
+import org.apache.commons.collections4.BidiMap;
+import org.apache.commons.collections4.bidimap.TreeBidiMap;
import org.apache.sling.api.resource.ResourceDecorator;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.api.resource.path.Path;
import org.apache.sling.api.resource.runtime.RuntimeService;
import org.apache.sling.resourceresolver.impl.helper.ResourceDecoratorTracker;
+import org.apache.sling.resourceresolver.impl.mapping.MapEntries;
import org.apache.sling.resourceresolver.impl.mapping.Mapping;
import org.apache.sling.resourceresolver.impl.observation.ResourceChangeListenerWhiteboard;
import org.apache.sling.resourceresolver.impl.providers.ResourceProviderTracker;
@@ -249,7 +250,7 @@
}
virtualURLMap = virtuals;
- final List<Mapping> maps = new ArrayList<Mapping>();
+ final List<Mapping> maps = new ArrayList<>();
for (int i = 0; config.resource_resolver_mapping() != null && i < config.resource_resolver_mapping().length; i++) {
maps.add(new Mapping(config.resource_resolver_mapping()[i]));
}
@@ -296,7 +297,7 @@
this.vanityPathWhiteList = null;
String[] vanityPathPrefixes = config.resource_resolver_vanitypath_whitelist();
if ( vanityPathPrefixes != null ) {
- final List<String> prefixList = new ArrayList<String>();
+ final List<String> prefixList = new ArrayList<>();
for(final String value : vanityPathPrefixes) {
if ( value.trim().length() > 0 ) {
if ( value.trim().endsWith("/") ) {
@@ -314,7 +315,7 @@
this.vanityPathBlackList = null;
vanityPathPrefixes = config.resource_resolver_vanitypath_blacklist();
if ( vanityPathPrefixes != null ) {
- final List<String> prefixList = new ArrayList<String>();
+ final List<String> prefixList = new ArrayList<>();
for(final String value : vanityPathPrefixes) {
if ( value.trim().length() > 0 ) {
if ( value.trim().endsWith("/") ) {
@@ -354,11 +355,11 @@
if ( hasRequiredProvider ) {
logger.warn("ResourceResolverFactory is using deprecated required providers configuration (resource.resolver.required.providers" +
") with value '" + ResourceResolverFactoryConfig.LEGACY_REQUIRED_PROVIDER_PID + ". Please remove this configuration property. " +
- ResourceResolverFactoryConfig.REQUIRED_PROVIDER_NAME + " is already contained in the property resource.resolver.required.providernames.");
+ ResourceResolverFactoryConfig.REQUIRED_PROVIDER_NAME + " is already contained in the property resource.resolver.required.providernames.");
} else {
logger.warn("ResourceResolverFactory is using deprecated required providers configuration (resource.resolver.required.providers" +
") with value '" + ResourceResolverFactoryConfig.LEGACY_REQUIRED_PROVIDER_PID + ". Please remove this configuration property and add " +
- ResourceResolverFactoryConfig.REQUIRED_PROVIDER_NAME + " to the property resource.resolver.required.providernames.");
+ ResourceResolverFactoryConfig.REQUIRED_PROVIDER_NAME + " to the property resource.resolver.required.providernames.");
}
}
@@ -366,9 +367,9 @@
if ( this.resourceProviderTracker == null ) {
this.resourceProviderTracker = new ResourceProviderTracker();
this.changeListenerWhiteboard = new ResourceChangeListenerWhiteboard();
- this.preconds.activate(this.bundleContext,
- requiredResourceProvidersLegacy,
- requiredResourceProviderNames,
+ this.preconds.activate(this.bundleContext,
+ requiredResourceProvidersLegacy,
+ requiredResourceProviderNames,
resourceProviderTracker);
this.changeListenerWhiteboard.activate(this.bundleContext,
this.resourceProviderTracker, searchPath);
@@ -395,9 +396,9 @@
}
});
} else {
- this.preconds.activate(this.bundleContext,
- requiredResourceProvidersLegacy,
- requiredResourceProviderNames,
+ this.preconds.activate(this.bundleContext,
+ requiredResourceProvidersLegacy,
+ requiredResourceProviderNames,
resourceProviderTracker);
this.checkFactoryPreconditions(null, null);
}
@@ -476,7 +477,7 @@
if ( localContext != null ) {
// activate and register factory
- final Dictionary<String, Object> serviceProps = new Hashtable<String, Object>();
+ final Dictionary<String, Object> serviceProps = new Hashtable<>();
serviceProps.put(Constants.SERVICE_VENDOR, "The Apache Software Foundation");
serviceProps.put(Constants.SERVICE_DESCRIPTION, "Apache Sling Resource Resolver Factory");
@@ -520,11 +521,11 @@
public ServiceUserMapper getServiceUserMapper() {
return this.serviceUserMapper;
}
-
+
public BundleContext getBundleContext() {
return this.bundleContext;
}
-
+
/**
* Check the preconditions and if it changed, either register factory or unregister
*/
@@ -592,7 +593,7 @@
}
return set.isEmpty() ? null : set;
}
-
+
public static ResourceResolverFactoryConfig DEFAULT_CONFIG;
static {
diff --git a/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java b/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
index 54ccc17..018d96c 100644
--- a/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
+++ b/src/main/java/org/apache/sling/resourceresolver/impl/helper/ResourceResolverControl.java
@@ -36,7 +36,7 @@
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
-import org.apache.commons.collections.iterators.IteratorChain;
+import org.apache.commons.collections4.iterators.IteratorChain;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.PersistenceException;
diff --git a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java
index f994979..420a572 100644
--- a/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java
+++ b/src/test/java/org/apache/sling/resourceresolver/impl/ResourceResolverMangleNamespacesTest.java
@@ -28,7 +28,7 @@
import javax.jcr.RepositoryException;
import javax.jcr.Session;
-import org.apache.commons.collections.IteratorUtils;
+import org.apache.commons.collections4.IteratorUtils;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.resourceresolver.impl.providers.ResourceProviderStorage;
@@ -97,7 +97,7 @@
final CommonResourceResolverFactoryImpl fac = new CommonResourceResolverFactoryImpl(act);
rr = new ResourceResolverImpl(fac, false, null, new ResourceProviderStorageProvider() {
-
+
@Override
public ResourceProviderStorage getResourceProviderStorage() {
return new ResourceProviderStorage(Arrays.asList(MockedResourceResolverImplTest.createRPHandler(rp, "rp1", 0, "/")));