Skip to content

Commit

Permalink
repository tests fix. spring contexts/configuration cleanup really ne…
Browse files Browse the repository at this point in the history
…eded
  • Loading branch information
1azyman committed Mar 16, 2018
1 parent 320c0c1 commit 1df07c9
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 34 deletions.
Expand Up @@ -28,6 +28,8 @@
<bean name="repositoryFactory" class="com.evolveum.midpoint.init.RepositoryFactory" init-method="init"
destroy-method="destroy" />

<bean name="cacheDispatcher" class="com.evolveum.midpoint.repo.sql.CacheDispatcherImpl"/>

<bean name="repositoryService" factory-bean="repositoryFactory" factory-method="getRepositoryService"
class="com.evolveum.midpoint.repo.api.RepositoryService" depends-on="repositoryFactory"/>

Expand Down
Expand Up @@ -16,46 +16,43 @@

package com.evolveum.midpoint.repo.sql;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Component;

import com.evolveum.midpoint.repo.api.CacheDispatcher;
import com.evolveum.midpoint.repo.api.CacheListener;
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType;

@Component(value="cacheDispatcher")
import java.util.ArrayList;
import java.util.List;

public class CacheDispatcherImpl implements CacheDispatcher {

private static final Trace LOGGER = TraceManager.getTrace(CacheDispatcherImpl.class);
private List<CacheListener> cacheListeners = new ArrayList<>();
@Override
public synchronized void registerCacheListener(CacheListener cacheListener) {
if (cacheListeners.contains(cacheListener)) {
LOGGER.warn("Registering listener {} which was already registered.", cacheListener);
return;
}
cacheListeners.add(cacheListener);
}
@Override
public synchronized void unregisterCacheListener(CacheListener cacheListener) {
if (!cacheListeners.contains(cacheListener)) {
LOGGER.warn("Unregistering listener {} which was already unregistered.", cacheListener);
return;
}
cacheListeners.remove(cacheListener);
}
@Override
public <O extends ObjectType> void dispatch(Class<O> type, String oid) {
for (CacheListener listenter : cacheListeners) {
listenter.invalidateCache(type, oid);
}
}
private static final Trace LOGGER = TraceManager.getTrace(CacheDispatcherImpl.class);

private List<CacheListener> cacheListeners = new ArrayList<>();

@Override
public synchronized void registerCacheListener(CacheListener cacheListener) {
if (cacheListeners.contains(cacheListener)) {
LOGGER.warn("Registering listener {} which was already registered.", cacheListener);
return;
}
cacheListeners.add(cacheListener);
}

@Override
public synchronized void unregisterCacheListener(CacheListener cacheListener) {
if (!cacheListeners.contains(cacheListener)) {
LOGGER.warn("Unregistering listener {} which was already unregistered.", cacheListener);
return;
}
cacheListeners.remove(cacheListener);
}

@Override
public <O extends ObjectType> void dispatch(Class<O> type, String oid) {
for (CacheListener listenter : cacheListeners) {
listenter.invalidateCache(type, oid);
}
}
}
Expand Up @@ -16,6 +16,7 @@

package com.evolveum.midpoint.repo.sql;

import com.evolveum.midpoint.repo.api.CacheDispatcher;
import com.evolveum.midpoint.repo.api.RepositoryServiceFactoryException;
import com.evolveum.midpoint.repo.sql.util.EntityStateInterceptor;
import com.evolveum.midpoint.repo.sql.util.MidPointImplicitNamingStrategy;
Expand All @@ -37,6 +38,11 @@ public class SqlRepositoryBeanConfig {
@Autowired
private SqlRepositoryFactory sqlRepositoryFactory;

@Bean
public CacheDispatcher cacheDispatcher() {
return new CacheDispatcherImpl();
}

@Bean
public DataSourceFactory dataSourceFactory() {
DataSourceFactory df = new DataSourceFactory();
Expand Down

0 comments on commit 1df07c9

Please sign in to comment.