]> source.dussan.org Git - archiva.git/commitdiff
invalidate namespace cache when deleting a repository
authorOlivier Lamy <olamy@apache.org>
Wed, 2 Apr 2014 04:04:10 +0000 (04:04 +0000)
committerOlivier Lamy <olamy@apache.org>
Wed, 2 Apr 2014 04:04:10 +0000 (04:04 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1583869 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-base/archiva-repository-admin/archiva-repository-admin-default/src/main/java/org/apache/archiva/admin/repository/managed/DefaultManagedRepositoryAdmin.java

index bb7b09d53c858922c09d1928196da4a11ff573d5..6f56f37fde2999e11fb35e6d0c34105cb7166ab0 100644 (file)
@@ -36,6 +36,7 @@ import org.apache.archiva.metadata.repository.MetadataRepositoryException;
 import org.apache.archiva.metadata.repository.RepositorySession;
 import org.apache.archiva.metadata.repository.RepositorySessionFactory;
 import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager;
+import org.apache.archiva.redback.components.cache.Cache;
 import org.apache.archiva.redback.components.taskqueue.TaskQueueException;
 import org.apache.archiva.redback.role.RoleManager;
 import org.apache.archiva.redback.role.RoleManagerException;
@@ -60,6 +61,7 @@ import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -102,6 +104,10 @@ public class DefaultManagedRepositoryAdmin
     @Inject
     protected RoleManager roleManager;
 
+    @Inject
+    @Named( value = "cache#namespaces" )
+    private Cache<String, Collection<String>> namespacesCache;
+
     // fields
     List<? extends IndexCreator> indexCreators;
 
@@ -382,6 +388,8 @@ public class DefaultManagedRepositoryAdmin
             {
                 MetadataRepository metadataRepository = repositorySession.getRepository();
                 metadataRepository.removeRepository( repository.getId() );
+                //invalidate cache
+                namespacesCache.remove( repository.getId() );
                 log.debug( "call repositoryStatisticsManager.deleteStatistics" );
                 getRepositoryStatisticsManager().deleteStatistics( metadataRepository, repository.getId() );
                 repositorySession.save();