remove old style listeners in favor of event bus

This commit is contained in:
Sebastian Sdorra
2014-01-03 11:32:40 +01:00
parent b5d1f57c88
commit 5e6259f3b7
47 changed files with 239 additions and 1186 deletions

View File

@@ -102,7 +102,6 @@ import sonia.scm.store.FileBlobStoreFactory;
import sonia.scm.store.JAXBConfigurationEntryStoreFactory;
import sonia.scm.store.JAXBDataStoreFactory;
import sonia.scm.store.JAXBStoreFactory;
import sonia.scm.store.ListenableStoreFactory;
import sonia.scm.store.StoreFactory;
import sonia.scm.template.DefaultEngine;
import sonia.scm.template.MustacheTemplateEngine;
@@ -253,7 +252,6 @@ public class ScmServletModule extends ServletModule
// bind core
bind(StoreFactory.class, JAXBStoreFactory.class);
bind(ListenableStoreFactory.class, JAXBStoreFactory.class);
bind(ConfigurationEntryStoreFactory.class,
JAXBConfigurationEntryStoreFactory.class);
bind(DataStoreFactory.class, JAXBDataStoreFactory.class);

View File

@@ -36,22 +36,20 @@ package sonia.scm.api.rest.resources;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.base.Function;
import com.google.common.eventbus.Subscribe;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import org.codehaus.enunciate.modules.jersey.ExternallyManagedLifecycle;
import sonia.scm.HandlerEvent;
import sonia.scm.cache.Cache;
import sonia.scm.cache.CacheManager;
import sonia.scm.group.Group;
import sonia.scm.group.GroupListener;
import sonia.scm.group.GroupManager;
import sonia.scm.search.SearchHandler;
import sonia.scm.search.SearchResult;
import sonia.scm.search.SearchResults;
import sonia.scm.user.User;
import sonia.scm.user.UserListener;
import sonia.scm.user.UserManager;
//~--- JDK imports ------------------------------------------------------------
@@ -61,6 +59,8 @@ import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import sonia.scm.group.GroupEvent;
import sonia.scm.user.UserEvent;
/**
*
@@ -69,7 +69,7 @@ import javax.ws.rs.core.MediaType;
@Singleton
@Path("search")
@ExternallyManagedLifecycle
public class SearchResource implements UserListener, GroupListener
public class SearchResource
{
/** Field description */
@@ -84,7 +84,6 @@ public class SearchResource implements UserListener, GroupListener
* Constructs ...
*
*
* @param securityContextProvider
* @param userManager
* @param groupManager
* @param cacheManager
@@ -95,16 +94,12 @@ public class SearchResource implements UserListener, GroupListener
{
// create user searchhandler
userManager.addListener(this);
Cache<String, SearchResults> userCache =
cacheManager.getCache(String.class, SearchResults.class, CACHE_USER);
this.userSearchHandler = new SearchHandler<User>(userCache, userManager);
// create group searchhandler
groupManager.addListener(this);
Cache<String, SearchResults> groupCache =
cacheManager.getCache(String.class, SearchResults.class, CACHE_GROUP);
@@ -118,26 +113,28 @@ public class SearchResource implements UserListener, GroupListener
* Method description
*
*
* @param user
* @param event
*/
@Override
public void onEvent(User user, HandlerEvent event)
@Subscribe
public void onEvent(UserEvent event)
{
userSearchHandler.clearCache();
if ( event.getEventType().isPost() ){
userSearchHandler.clearCache();
}
}
/**
* Method description
*
*
* @param group
* @param event
*/
@Override
public void onEvent(Group group, HandlerEvent event)
@Subscribe
public void onEvent(GroupEvent event)
{
groupSearchHandler.clearCache();
if ( event.getEventType().isPost() ){
groupSearchHandler.clearCache();
}
}
/**
@@ -211,8 +208,8 @@ public class SearchResource implements UserListener, GroupListener
//~--- fields ---------------------------------------------------------------
/** Field description */
private SearchHandler<Group> groupSearchHandler;
private final SearchHandler<Group> groupSearchHandler;
/** Field description */
private SearchHandler<User> userSearchHandler;
private final SearchHandler<User> userSearchHandler;
}

View File

@@ -83,16 +83,12 @@ public class DefaultGroupManager extends AbstractGroupManager
* Constructs ...
*
*
* @param securityContextProvider
* @param groupDAO
* @param groupListenerProvider
*/
@Inject
public DefaultGroupManager(GroupDAO groupDAO,
Provider<Set<GroupListener>> groupListenerProvider)
public DefaultGroupManager(GroupDAO groupDAO)
{
this.groupDAO = groupDAO;
this.groupListenerProvider = groupListenerProvider;
}
//~--- methods --------------------------------------------------------------
@@ -192,12 +188,6 @@ public class DefaultGroupManager extends AbstractGroupManager
@Override
public void init(SCMContextProvider context)
{
Set<GroupListener> listeners = groupListenerProvider.get();
if (Util.isNotEmpty(listeners))
{
addListeners(listeners);
}
}
/**
@@ -464,7 +454,4 @@ public class DefaultGroupManager extends AbstractGroupManager
/** Field description */
private GroupDAO groupDAO;
/** Field description */
private Provider<Set<GroupListener>> groupListenerProvider;
}

View File

@@ -36,6 +36,7 @@ package sonia.scm.plugin;
//~--- non-JDK imports --------------------------------------------------------
import com.google.common.collect.Sets;
import com.google.common.eventbus.Subscribe;
import com.google.common.io.Files;
import com.google.inject.Inject;
import com.google.inject.Provider;
@@ -44,7 +45,6 @@ import com.google.inject.Singleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.ConfigChangedListener;
import sonia.scm.ConfigurationException;
import sonia.scm.SCMContext;
import sonia.scm.SCMContextProvider;
@@ -80,6 +80,7 @@ import javax.xml.bind.JAXB;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import sonia.scm.config.ScmConfigurationChangedEvent;
/**
*
@@ -87,7 +88,7 @@ import javax.xml.bind.Unmarshaller;
*/
@Singleton
public class DefaultPluginManager
implements PluginManager, ConfigChangedListener<ScmConfiguration>
implements PluginManager
{
/** Field description */
@@ -114,7 +115,6 @@ public class DefaultPluginManager
*
*
* @param context
* @param securityContextProvicer
* @param configuration
* @param pluginLoader
* @param cacheManager
@@ -151,8 +151,6 @@ public class DefaultPluginManager
{
throw new ConfigurationException(ex);
}
this.configuration.addListener(this);
}
//~--- methods --------------------------------------------------------------
@@ -178,8 +176,8 @@ public class DefaultPluginManager
*
* @param config
*/
@Override
public void configChanged(ScmConfiguration config)
@Subscribe
public void configChanged(ScmConfigurationChangedEvent config)
{
clearCache();
}

View File

@@ -114,14 +114,12 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager
public DefaultRepositoryManager(ScmConfiguration configuration,
SCMContextProvider contextProvider, KeyGenerator keyGenerator,
RepositoryDAO repositoryDAO, Set<RepositoryHandler> handlerSet,
Provider<Set<RepositoryListener>> repositoryListenersProvider,
Provider<Set<RepositoryHook>> repositoryHooksProvider,
PreProcessorUtil preProcessorUtil)
{
this.configuration = configuration;
this.keyGenerator = keyGenerator;
this.repositoryDAO = repositoryDAO;
this.repositoryListenersProvider = repositoryListenersProvider;
this.repositoryHooksProvider = repositoryHooksProvider;
this.preProcessorUtil = preProcessorUtil;
@@ -331,13 +329,6 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager
@Override
public void init(SCMContextProvider context)
{
Set<RepositoryListener> listeners = repositoryListenersProvider.get();
if (Util.isNotEmpty(listeners))
{
addListeners(listeners);
}
Set<RepositoryHook> hooks = repositoryHooksProvider.get();
if (Util.isNotEmpty(hooks))
@@ -951,9 +942,6 @@ public class DefaultRepositoryManager extends AbstractRepositoryManager
/** Field description */
private Provider<Set<RepositoryHook>> repositoryHooksProvider;
/** Field description */
private Provider<Set<RepositoryListener>> repositoryListenersProvider;
/** Field description */
private Set<Type> types;
}

View File

@@ -101,17 +101,12 @@ public class DefaultUserManager extends AbstractUserManager
/**
* Constructs ...
*
*
* @param scurityContextProvider
* @param userDAO
* @param userListenerProvider
*/
@Inject
public DefaultUserManager(UserDAO userDAO,
Provider<Set<UserListener>> userListenerProvider)
public DefaultUserManager(UserDAO userDAO)
{
this.userDAO = userDAO;
this.userListenerProvider = userListenerProvider;
}
//~--- methods --------------------------------------------------------------
@@ -239,13 +234,6 @@ public class DefaultUserManager extends AbstractUserManager
{
createDefaultAccounts();
}
Set<UserListener> listeners = userListenerProvider.get();
if (Util.isNotEmpty(listeners))
{
addListeners(listeners);
}
}
/**
@@ -546,8 +534,5 @@ public class DefaultUserManager extends AbstractUserManager
//~--- fields ---------------------------------------------------------------
/** Field description */
private UserDAO userDAO;
/** Field description */
private Provider<Set<UserListener>> userListenerProvider;
private final UserDAO userDAO;
}

View File

@@ -91,14 +91,11 @@ public class ChainAuthenticatonManager extends AbstractAuthenticationManager
* @param authenticationHandlerSet
* @param encryptionHandler
* @param cacheManager
* @param authenticationListenerProvider
* @param authenticationListeners
*/
@Inject
public ChainAuthenticatonManager(UserManager userManager,
Set<AuthenticationHandler> authenticationHandlerSet,
EncryptionHandler encryptionHandler, CacheManager cacheManager,
Set<AuthenticationListener> authenticationListeners)
EncryptionHandler encryptionHandler, CacheManager cacheManager)
{
AssertUtil.assertIsNotEmpty(authenticationHandlerSet);
AssertUtil.assertIsNotNull(cacheManager);
@@ -106,11 +103,6 @@ public class ChainAuthenticatonManager extends AbstractAuthenticationManager
this.encryptionHandler = encryptionHandler;
this.cache = cacheManager.getCache(String.class,
AuthenticationCacheValue.class, CACHE_NAME);
if (Util.isNotEmpty(authenticationListeners))
{
addListeners(authenticationListeners);
}
}
//~--- methods --------------------------------------------------------------
@@ -252,7 +244,7 @@ public class ChainAuthenticatonManager extends AbstractAuthenticationManager
ar = result;
// notify authentication listeners
fireAuthenticationEvent(request, response, user);
fireAuthenticationEvent(user);
}
break;