This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva.git


The following commit(s) were added to refs/heads/master by this push:
     new 3756ba5  Switching to generics for cache implementation
3756ba5 is described below

commit 3756ba57f6ebc5e3d256c25c220ae5b83f41eb22
Author: Martin Schreier <[email protected]>
AuthorDate: Mon Jan 3 20:26:49 2022 +0100

    Switching to generics for cache implementation
---
 .../src/test/resources/spring-context.xml          |  2 ++
 .../src/main/resources/META-INF/spring-context.xml |  2 ++
 .../src/test/resources/spring-context.xml          |  2 ++
 .../managed/DefaultManagedRepositoryAdmin.java     |  2 +-
 .../DefaultRedbackRuntimeConfigurationAdmin.java   |  5 +++--
 .../src/test/resources/spring-context.xml          |  2 ++
 .../svc/maven/MavenManagedRepositoryService.java   |  4 ++--
 .../DefaultRedbackRuntimeConfigurationService.java |  3 ++-
 .../rest/services/DefaultRepositoriesService.java  |  2 +-
 .../src/main/resources/META-INF/spring-context.xml |  4 +++-
 .../rest/v2/svc/AbstractNativeRestServices.java    |  2 +-
 .../NativeMavenManagedRepositoryServiceTest.java   |  5 +++--
 .../src/main/webapp/WEB-INF/applicationContext.xml | 24 ++++++++++++++++++++++
 .../metadata/model/ProjectVersionMetadata.java     |  5 ++++-
 .../repository/DefaultMetadataResolver.java        |  8 ++++----
 .../src/main/resources/META-INF/spring-context.xml |  4 +++-
 16 files changed, 59 insertions(+), 17 deletions(-)

diff --git 
a/archiva-modules/archiva-base/archiva-configuration/src/test/resources/spring-context.xml
 
b/archiva-modules/archiva-base/archiva-configuration/src/test/resources/spring-context.xml
index 46b2f71..4eb7b5b 100755
--- 
a/archiva-modules/archiva-base/archiva-configuration/src/test/resources/spring-context.xml
+++ 
b/archiva-modules/archiva-base/archiva-configuration/src/test/resources/spring-context.xml
@@ -324,6 +324,8 @@
   </bean>
 
   <bean name="cache#url-failures-cache" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="java.util.Date"/>
     <property name="diskExpiryThreadIntervalSeconds" value="600"/>
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
diff --git 
a/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml
 
b/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml
index e42a9b8..2a9dc11 100644
--- 
a/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml
+++ 
b/archiva-modules/archiva-base/archiva-policies/src/main/resources/META-INF/spring-context.xml
@@ -37,6 +37,8 @@
 
   <bean name="cache#url-failures-cache" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache" 
lazy-init="true"
         destroy-method="dispose">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="java.util.Date"/>
     <property name="diskExpiryThreadIntervalSeconds" value="600"/>
     <property name="diskPersistent" value="true"/>
     <property name="diskStorePath" value="${appserver.base}/tmp/urlcache"/>
diff --git 
a/archiva-modules/archiva-base/archiva-policies/src/test/resources/spring-context.xml
 
b/archiva-modules/archiva-base/archiva-policies/src/test/resources/spring-context.xml
index 9142697..dfe4045 100755
--- 
a/archiva-modules/archiva-base/archiva-policies/src/test/resources/spring-context.xml
+++ 
b/archiva-modules/archiva-base/archiva-policies/src/test/resources/spring-context.xml
@@ -30,6 +30,8 @@
   <context:property-placeholder system-properties-mode="OVERRIDE"/>
 
   <bean name="cache#url-failures-cache" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="java.util.Date"/>
     <property name="diskExpiryThreadIntervalSeconds" value="600"/>
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
diff --git 
a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
 
b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
index da240c1..7a8a982 100644
--- 
a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
+++ 
b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java
@@ -109,7 +109,7 @@ public class DefaultManagedRepositoryAdmin
 
     @Inject
     @Named(value = "cache#namespaces")
-    private Cache<String, Collection<String>> namespacesCache;
+    private Cache<String, List<String>> namespacesCache;
 
     @Inject
     private IndexManagerFactory indexManagerFactory;
diff --git 
a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
 
b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
index 1ed25d9..d159901 100644
--- 
a/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
+++ 
b/archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/runtime/DefaultRedbackRuntimeConfigurationAdmin.java
@@ -34,6 +34,7 @@ import org.apache.archiva.configuration.util.ConfigMapper;
 import org.apache.archiva.redback.configuration.UserConfiguration;
 import org.apache.archiva.redback.configuration.UserConfigurationException;
 import org.apache.archiva.redback.configuration.UserConfigurationKeys;
+import org.apache.archiva.redback.users.User;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -100,13 +101,13 @@ public class DefaultRedbackRuntimeConfigurationAdmin
         LDAP_MAPPER.addBooleanMapping( LDAP_BIND_AUTHENTICATOR_ENABLED, 
LdapConfiguration::isBindAuthenticatorEnabled );
     }
 
-    private Cache usersCache;
+    private Cache<String, User> usersCache;
 
     @Inject
     public DefaultRedbackRuntimeConfigurationAdmin( ArchivaConfiguration 
archivaConfiguration,//
                                                     @Named( value = 
"userConfiguration#redback" ) //
                                                         UserConfiguration 
userConfiguration,
-                                                    @Named( value = 
"cache#users" ) Cache usersCache )
+                                                    @Named( value = 
"cache#users" ) Cache<String, User> usersCache )
     {
         this.archivaConfiguration = archivaConfiguration;
         this.userConfiguration = userConfiguration;
diff --git 
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/resources/spring-context.xml
 
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/resources/spring-context.xml
index f9fccfb..18697b3 100755
--- 
a/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/resources/spring-context.xml
+++ 
b/archiva-modules/archiva-maven/archiva-maven-proxy/src/test/resources/spring-context.xml
@@ -68,6 +68,8 @@
 
   <bean name="cache#url-failures-cache" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache" 
lazy-init="true"
         destroy-method="dispose">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="java.util.Date"/>
     <property name="diskExpiryThreadIntervalSeconds" value="600"/>
     <property name="diskPersistent" value="false"/>
     <property name="diskStorePath" value="${appserver.base}/tmp/urlcache"/>
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/v2/svc/maven/MavenManagedRepositoryService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/v2/svc/maven/MavenManagedRepositoryService.java
index f8e3f31..c8cd852 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/v2/svc/maven/MavenManagedRepositoryService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-api/src/main/java/org/apache/archiva/rest/api/v2/svc/maven/MavenManagedRepositoryService.java
@@ -67,7 +67,7 @@ import static 
org.apache.archiva.security.common.ArchivaRoleConstants.*;
  * </li>
  * </ul>
  *
- * @author Martin Stockhammer <[email protected]>
+ * @author Martin Schreier <[email protected]>
  * @since 3.0
  */
 @Schema( name = "MavenManagedRepositoryService", description = "Managing and 
configuration of managed maven repositories" )
@@ -425,7 +425,7 @@ public interface MavenManagedRepositoryService
         permissions = { OPERATION_MANAGE_CONFIGURATION, 
OPERATION_DELETE_NAMESPACE },
         resource = "{id}"
     )
-    @Operation( summary = "Removes a group and all subfolders from the 
repository",
+    @Operation( summary = "Removes a maven group and all containing artifacts 
and sub groups from the repository",
         security = {
             @SecurityRequirement(
                 name = OPERATION_MANAGE_CONFIGURATION
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java
index 81b58aa..ea3f179 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRedbackRuntimeConfigurationService.java
@@ -33,6 +33,7 @@ import org.apache.archiva.redback.policy.CookieSettings;
 import org.apache.archiva.redback.policy.PasswordRule;
 import org.apache.archiva.redback.rbac.RBACManager;
 import org.apache.archiva.redback.role.RoleManager;
+import org.apache.archiva.redback.users.User;
 import org.apache.archiva.redback.users.UserManager;
 import org.apache.archiva.rest.api.model.ActionStatus;
 import org.apache.archiva.rest.api.model.RBACManagerImplementationInformation;
@@ -88,7 +89,7 @@ public class DefaultRedbackRuntimeConfigurationService
 
     @Inject
     @Named(value = "cache#users")
-    private Cache usersCache;
+    private Cache<String, User> usersCache;
 
     @Inject
     private LdapUserMapper ldapUserMapper;
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
index 02e4f9e..f7871e7 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/java/org/apache/archiva/rest/services/DefaultRepositoriesService.java
@@ -159,7 +159,7 @@ public class DefaultRepositoriesService
      */
     @Inject
     @Named(value = "cache#namespaces")
-    private Cache<String, Collection<String>> namespacesCache;
+    private Cache<String, List<String>> namespacesCache;
 
     private List<ChecksumAlgorithm> algorithms = 
Arrays.asList(ChecksumAlgorithm.SHA256, ChecksumAlgorithm.SHA1, 
ChecksumAlgorithm.MD5 );
 
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
index 6f5f1fc..0449986 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/main/resources/META-INF/spring-context.xml
@@ -128,11 +128,13 @@
 
   <bean name="browse#versionMetadata" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String" />
+    <constructor-arg index="1" 
value="org.apache.archiva.metadata.model.ProjectVersionMetadata"/>
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
     <property name="memoryEvictionPolicy" value="LRU"/>
-    <property name="name" value="userPermissions"/>
+    <property name="name" value="versionMetadata"/>
     <property name="timeToIdleSeconds" value="300"/>
     <property name="timeToLiveSeconds" value="600"/>
   </bean>
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/AbstractNativeRestServices.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/AbstractNativeRestServices.java
index 4949e55..b5b1856 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/AbstractNativeRestServices.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/AbstractNativeRestServices.java
@@ -68,7 +68,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
  * Native REST tests do not use the JAX-RS client and can be used with a remote
  * REST API service. The tests
  *
- * @author Martin Stockhammer <[email protected]>
+ * @author Martin Schreier <[email protected]>
  */
 @Tag( "rest-native" )
 @Tag( "rest-v2" )
diff --git 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/NativeMavenManagedRepositoryServiceTest.java
 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/maven/NativeMavenManagedRepositoryServiceTest.java
similarity index 94%
rename from 
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/NativeMavenManagedRepositoryServiceTest.java
rename to 
archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/maven/NativeMavenManagedRepositoryServiceTest.java
index d078b45..9a8f932 100644
--- 
a/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/NativeMavenManagedRepositoryServiceTest.java
+++ 
b/archiva-modules/archiva-web/archiva-rest/archiva-rest-services/src/test/java/org/apache/archiva/rest/v2/svc/maven/NativeMavenManagedRepositoryServiceTest.java
@@ -1,4 +1,4 @@
-package org.apache.archiva.rest.v2.svc;
+package org.apache.archiva.rest.v2.svc.maven;
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -22,6 +22,7 @@ import io.restassured.path.json.JsonPath;
 import io.restassured.response.Response;
 import org.apache.archiva.rest.api.v2.model.MavenManagedRepository;
 import org.apache.archiva.rest.api.v2.svc.RestConfiguration;
+import org.apache.archiva.rest.v2.svc.AbstractNativeRestServices;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.DisplayName;
@@ -39,7 +40,7 @@ import static io.restassured.http.ContentType.JSON;
 import static org.junit.jupiter.api.Assertions.*;
 
 /**
- * @author Martin Stockhammer <[email protected]>
+ * @author Martin Schreier <[email protected]>
  */
 @TestInstance( TestInstance.Lifecycle.PER_CLASS )
 @Tag( "rest-native" )
diff --git 
a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
 
b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
index 0a64d58..5751f60 100644
--- 
a/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
+++ 
b/archiva-modules/archiva-web/archiva-webapp/src/main/webapp/WEB-INF/applicationContext.xml
@@ -119,6 +119,8 @@
   <!-- for change configuration of the users cache -->
   <bean name="cache#users" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String" />
+    <constructor-arg index="1" value="org.apache.archiva.redback.users.User" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -132,6 +134,8 @@
 
   <bean name="cache#url-failures-cache" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache" 
lazy-init="true"
         destroy-method="dispose">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="java.util.Date"/>
     <property name="diskExpiryThreadIntervalSeconds" value="600"/>
     <property name="diskPersistent" value="true"/>
     <property name="diskStorePath" value="${appserver.base}/tmp/urlcache"/>
@@ -147,6 +151,8 @@
 
   <bean name="cache#keys" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String" />
+    <constructor-arg index="1" 
value="org.apache.archiva.redback.keys.AuthenticationKey"/>
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -158,6 +164,8 @@
 
   <bean name="cache#operations" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" 
value="org.apache.archiva.redback.rbac.Operation" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -169,6 +177,8 @@
 
   <bean name="cache#permissions" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" 
value="org.apache.archiva.redback.rbac.Permission" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -180,6 +190,8 @@
 
   <bean name="cache#resources" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" 
value="org.apache.archiva.redback.rbac.Resource" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -191,6 +203,8 @@
 
   <bean name="cache#roles" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="org.apache.archiva.redback.rbac.Role" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -202,6 +216,8 @@
 
   <bean name="cache#effectiveRoleSet" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="java.util.HashSet" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -217,6 +233,8 @@
 
   <bean name="cache#userAssignments" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" 
value="org.apache.archiva.redback.rbac.UserAssignment" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -228,6 +246,8 @@
 
   <bean name="cache#userPermissions" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="java.util.HashMap" />
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -239,6 +259,8 @@
 
   <bean name="cache#ldapRoles" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String"/>
+    <constructor-arg index="1" value="org.apache.archiva.redback.rbac.Role"/>
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
@@ -250,6 +272,8 @@
 
   <bean name="cache#namespaces" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String" />
+    <constructor-arg index="1" value="java.util.ArrayList"/>
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
diff --git 
a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java
 
b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java
index c6b749d..13ebf38 100644
--- 
a/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java
+++ 
b/archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java
@@ -20,6 +20,7 @@ package org.apache.archiva.metadata.model;
  */
 
 import javax.xml.bind.annotation.XmlRootElement;
+import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -28,8 +29,10 @@ import java.util.Properties;
 
 @XmlRootElement( name = "projectVersionMetadata" )
 public class ProjectVersionMetadata
-    extends FacetedMetadata
+    extends FacetedMetadata implements Serializable
 {
+
+    private static final long serialVersionUID = 5506968284780639002L;
     /**
      * id is the version
      */
diff --git 
a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
 
b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
index e94ff09..b8903df 100644
--- 
a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
+++ 
b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
@@ -93,7 +93,7 @@ public class DefaultMetadataResolver
      */
     @Inject
     @Named( value = "cache#namespaces" )
-    private Cache<String, Collection<String>> namespacesCache;
+    private Cache<String, List<String>> namespacesCache;
 
     @Override
     public ProjectVersionMetadata resolveProjectVersion( RepositorySession 
session, String repoId, String namespace,
@@ -193,7 +193,7 @@ public class DefaultMetadataResolver
         try
         {
 
-            Collection<String> namespaces = namespacesCache.get( repoId );
+            List<String> namespaces = namespacesCache.get( repoId );
             if ( namespaces != null )
             {
                 return namespaces;
@@ -246,7 +246,7 @@ public class DefaultMetadataResolver
         {
             MetadataRepository metadataRepository = session.getRepository();
             String cacheKey = repoId + "-" + namespace;
-            Collection<String> namespaces = namespacesCache.get( cacheKey );
+            List<String> namespaces = namespacesCache.get( cacheKey );
             if ( namespaces == null )
             {
                 namespaces = metadataRepository.getChildNamespaces( session, 
repoId, namespace );
@@ -299,7 +299,7 @@ public class DefaultMetadataResolver
             Collection<String> exclusions = new ArrayList<>( projects );
 
             String cacheKey = repoId + "-" + namespace;
-            Collection<String> namespaces = namespacesCache.get( cacheKey );
+            List<String> namespaces = namespacesCache.get( cacheKey );
             if ( namespaces == null )
             {
                 namespaces = metadataRepository.getChildNamespaces( session, 
repoId, namespace );
diff --git 
a/archiva-modules/metadata/metadata-repository-api/src/main/resources/META-INF/spring-context.xml
 
b/archiva-modules/metadata/metadata-repository-api/src/main/resources/META-INF/spring-context.xml
index 06b3213..6f4964f 100644
--- 
a/archiva-modules/metadata/metadata-repository-api/src/main/resources/META-INF/spring-context.xml
+++ 
b/archiva-modules/metadata/metadata-repository-api/src/main/resources/META-INF/spring-context.xml
@@ -41,11 +41,13 @@
 
   <bean name="cache#namespaces" 
class="org.apache.archiva.components.cache.ehcache.EhcacheCache"
         init-method="initialize">
+    <constructor-arg index="0" value="java.lang.String" />
+    <constructor-arg index="1" value="java.util.ArrayList"/>
     <property name="diskPersistent" value="false"/>
     <property name="eternal" value="false"/>
     <property name="maxElementsInMemory" value="1000"/>
     <property name="memoryEvictionPolicy" value="LRU"/>
-    <property name="name" value="usersCache"/>
+    <property name="name" value="namespaces"/>
     <property name="timeToIdleSeconds" value="600"/>
     <property name="timeToLiveSeconds" value="600"/>
   </bean>

Reply via email to