mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-15 09:46:16 +01:00
clear cache after repository modification or deletion
This commit is contained in:
@@ -44,7 +44,7 @@ import com.google.inject.Singleton;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import sonia.scm.Filter;
|
import sonia.scm.HandlerEvent;
|
||||||
import sonia.scm.cache.Cache;
|
import sonia.scm.cache.Cache;
|
||||||
import sonia.scm.cache.CacheManager;
|
import sonia.scm.cache.CacheManager;
|
||||||
import sonia.scm.repository.BlameResult;
|
import sonia.scm.repository.BlameResult;
|
||||||
@@ -55,9 +55,9 @@ import sonia.scm.repository.PermissionUtil;
|
|||||||
import sonia.scm.repository.PostReceiveRepositoryHook;
|
import sonia.scm.repository.PostReceiveRepositoryHook;
|
||||||
import sonia.scm.repository.PreProcessorUtil;
|
import sonia.scm.repository.PreProcessorUtil;
|
||||||
import sonia.scm.repository.Repository;
|
import sonia.scm.repository.Repository;
|
||||||
import sonia.scm.repository.RepositoryCacheKey;
|
|
||||||
import sonia.scm.repository.RepositoryCacheKeyFilter;
|
import sonia.scm.repository.RepositoryCacheKeyFilter;
|
||||||
import sonia.scm.repository.RepositoryHookEvent;
|
import sonia.scm.repository.RepositoryHookEvent;
|
||||||
|
import sonia.scm.repository.RepositoryListener;
|
||||||
import sonia.scm.repository.RepositoryManager;
|
import sonia.scm.repository.RepositoryManager;
|
||||||
import sonia.scm.repository.RepositoryNotFoundException;
|
import sonia.scm.repository.RepositoryNotFoundException;
|
||||||
import sonia.scm.repository.spi.RepositoryServiceProvider;
|
import sonia.scm.repository.spi.RepositoryServiceProvider;
|
||||||
@@ -142,7 +142,11 @@ public final class RepositoryServiceFactory
|
|||||||
this.securityContextProvider = securityContextProvider;
|
this.securityContextProvider = securityContextProvider;
|
||||||
this.resolvers = resolvers;
|
this.resolvers = resolvers;
|
||||||
this.preProcessorUtil = preProcessorUtil;
|
this.preProcessorUtil = preProcessorUtil;
|
||||||
repositoryManager.addHook(new CacheClearHook(cacheManager));
|
|
||||||
|
CacheClearHook cch = new CacheClearHook(cacheManager);
|
||||||
|
|
||||||
|
repositoryManager.addHook(cch);
|
||||||
|
repositoryManager.addListener(cch);
|
||||||
}
|
}
|
||||||
|
|
||||||
//~--- methods --------------------------------------------------------------
|
//~--- methods --------------------------------------------------------------
|
||||||
@@ -285,6 +289,7 @@ public final class RepositoryServiceFactory
|
|||||||
* @author Enter your name here...
|
* @author Enter your name here...
|
||||||
*/
|
*/
|
||||||
private static class CacheClearHook extends PostReceiveRepositoryHook
|
private static class CacheClearHook extends PostReceiveRepositoryHook
|
||||||
|
implements RepositoryListener
|
||||||
{
|
{
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -328,6 +333,22 @@ public final class RepositoryServiceFactory
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method description
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param repository
|
||||||
|
* @param event
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void onEvent(Repository repository, HandlerEvent event)
|
||||||
|
{
|
||||||
|
if ((event == HandlerEvent.MODIFY) || (event == HandlerEvent.DELETE))
|
||||||
|
{
|
||||||
|
clearCaches(repository.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user