use of org.jumpmind.symmetric.model.Router in project symmetric-ds by JumpMind.
the class TriggerRouterService method getTriggerRoutersCacheForCurrentNode.
protected TriggerRoutersCache getTriggerRoutersCacheForCurrentNode(boolean refreshCache) {
String myNodeGroupId = parameterService.getNodeGroupId();
long triggerRouterCacheTimeoutInMs = parameterService.getLong(ParameterConstants.CACHE_TIMEOUT_TRIGGER_ROUTER_IN_MS);
TriggerRoutersCache cache = triggerRouterCacheByNodeGroupId == null ? null : triggerRouterCacheByNodeGroupId.get(myNodeGroupId);
if (cache == null || refreshCache || System.currentTimeMillis() - this.triggerRouterPerNodeCacheTime > triggerRouterCacheTimeoutInMs) {
synchronized (cacheLock) {
this.triggerRouterPerNodeCacheTime = System.currentTimeMillis();
Map<String, TriggerRoutersCache> newTriggerRouterCacheByNodeGroupId = new HashMap<String, TriggerRoutersCache>();
List<TriggerRouter> triggerRouters = getAllTriggerRoutersForCurrentNode(myNodeGroupId);
Map<String, List<TriggerRouter>> triggerRoutersByTriggerId = new HashMap<String, List<TriggerRouter>>(triggerRouters.size());
Map<String, Router> routers = new HashMap<String, Router>(triggerRouters.size());
for (TriggerRouter triggerRouter : triggerRouters) {
if (triggerRouter.isEnabled()) {
boolean sourceEnabled = groupletService.isSourceEnabled(triggerRouter);
if (sourceEnabled) {
String triggerId = triggerRouter.getTrigger().getTriggerId();
List<TriggerRouter> list = triggerRoutersByTriggerId.get(triggerId);
if (list == null) {
list = new ArrayList<TriggerRouter>();
triggerRoutersByTriggerId.put(triggerId, list);
}
list.add(triggerRouter);
routers.put(triggerRouter.getRouter().getRouterId(), triggerRouter.getRouter());
}
}
}
newTriggerRouterCacheByNodeGroupId.put(myNodeGroupId, new TriggerRoutersCache(triggerRoutersByTriggerId, routers));
this.triggerRouterCacheByNodeGroupId = newTriggerRouterCacheByNodeGroupId;
cache = triggerRouterCacheByNodeGroupId == null ? null : triggerRouterCacheByNodeGroupId.get(myNodeGroupId);
}
}
return cache;
}
use of org.jumpmind.symmetric.model.Router in project symmetric-ds by JumpMind.
the class TriggerRouterService method enhanceTriggerRouters.
private List<TriggerRouter> enhanceTriggerRouters(List<TriggerRouter> triggerRouters) {
HashMap<String, Router> routersById = new HashMap<String, Router>();
for (Router router : getRouters()) {
routersById.put(router.getRouterId().trim().toUpperCase(), router);
}
HashMap<String, Trigger> triggersById = new HashMap<String, Trigger>();
for (Trigger trigger : getTriggers()) {
triggersById.put(trigger.getTriggerId().trim().toUpperCase(), trigger);
}
for (TriggerRouter triggerRouter : triggerRouters) {
triggerRouter.setTrigger(triggersById.get(triggerRouter.getTrigger().getTriggerId().trim().toUpperCase()));
triggerRouter.setRouter(routersById.get(triggerRouter.getRouter().getRouterId().trim().toUpperCase()));
}
return triggerRouters;
}
use of org.jumpmind.symmetric.model.Router in project symmetric-ds by JumpMind.
the class FileTriggerTrackerTest method testTakeFullSnapshotRecursive.
@Test
public void testTakeFullSnapshotRecursive() throws Exception {
FileTrigger fileTrigger = new FileTrigger(directory.getAbsolutePath(), true, null, null);
Router router = new Router();
FileTriggerRouter fileTriggerRouter = new FileTriggerRouter(fileTrigger, router);
FileTriggerTracker tracker = new FileTriggerTracker(fileTriggerRouter, null, null, false, null);
DirectorySnapshot snapshot = new DirectorySnapshot(fileTriggerRouter);
tracker.takeFullSnapshot(snapshot);
assertEquals(4, snapshot.size());
}
use of org.jumpmind.symmetric.model.Router in project symmetric-ds by JumpMind.
the class FileTriggerTrackerTest method testTakeFullSnapshotNonRecursive.
@Test
public void testTakeFullSnapshotNonRecursive() throws Exception {
FileTrigger fileTrigger = new FileTrigger(directory.getAbsolutePath(), false, null, null);
Router router = new Router();
FileTriggerRouter fileTriggerRouter = new FileTriggerRouter(fileTrigger, router);
FileTriggerTracker tracker = new FileTriggerTracker(fileTriggerRouter, null, null, false, null);
DirectorySnapshot snapshot = new DirectorySnapshot(fileTriggerRouter);
tracker.takeFullSnapshot(snapshot);
assertEquals(2, snapshot.size());
}
use of org.jumpmind.symmetric.model.Router in project symmetric-ds by JumpMind.
the class FileTriggerTrackerTest method testTakeFullSnapshotIncludes.
@Test
public void testTakeFullSnapshotIncludes() throws Exception {
FileTrigger fileTrigger = new FileTrigger(directory.getAbsolutePath(), false, "*.txt", null);
Router router = new Router();
FileTriggerRouter fileTriggerRouter = new FileTriggerRouter(fileTrigger, router);
FileTriggerTracker tracker = new FileTriggerTracker(fileTriggerRouter, null, null, false, null);
DirectorySnapshot snapshot = new DirectorySnapshot(fileTriggerRouter);
tracker.takeFullSnapshot(snapshot);
assertEquals(1, snapshot.size());
assertEquals(snapshot.get(0).getFileName(), FileSyncUtils.getRelativePath(fileInDirectory1, directory));
}
Aggregations