@Override
protected void event(UserRequest ureq, Component source, Event event) {
if (source == syncLong) {
// sync on a olatresourceable and hold the lock for 5 seconds.
CoordinatorManager.getCoordinator().getSyncer().doInSync(ORES_TEST, new SyncerExecutor(){
public void execute() {
sleep(5000);
}});
// the runnable is executed within the same thread->
getWindowControl().setInfo("done syncing on the test olatresourceable for 5 seconds");
} else if (source == syncShort) {
// sync on a olatresourceable and hold the lock for 1 second.
CoordinatorManager.getCoordinator().getSyncer().doInSync(ORES_TEST, new SyncerExecutor(){
public void execute() {
sleep(1000);
}});
// the runnable is executed within the same thread->
getWindowControl().setInfo("done syncing on the test olatresourceable for 1 second");
} else if (source == testPerf) {
// send 1000 (short) messages over the cluster bus
int cnt = 1000;
long start = System.nanoTime();
for (int i = 0; i < cnt; i++) {
clusBus.fireEventToListenersOf(new MultiUserEvent("jms-perf-test-"+i+" of "+cnt),ORES_TEST);
}
long stop = System.nanoTime();
long dur = stop-start;
double inmilis = dur / 1000000;
double avg = dur / cnt;
double avgmilis = avg / 1000000;
getWindowControl().setInfo("sending "+cnt+" messages took "+inmilis+" ms, avg per messages was "+avg+" ns = "+avgmilis+" ms");
} else if (source == testCachePut) {
CacheWrapper cw = CoordinatorManager.getCoordinator().getCacher().getOrCreateCache(this.getClass(), "cachetest").
getOrCreateChildCacheWrapper(ORES_CACHE_TEST);
// we explicitly use put and not putSilent to show that a put invalidates (and thus removes) this key of this cache in all other cluster nodes.
cw.update("akey", "hello");
updateCacheInfo();
} else if (source == testCachePut2) {
// we explicitly use put and not putSilent to show that a put invalidates (and thus removes) this key of this cache in all other cluster nodes.
CacheWrapper cw = CoordinatorManager.getCoordinator().getCacher().getOrCreateCache(this.getClass(), "cachetest").
getOrCreateChildCacheWrapper(ORES_CACHE_TEST);
cw.update("akey", "world");
updateCacheInfo();
} else if (source == testSFUPerf) {
// acquire a sync 1000x times (does internally a select-for-update on the database)
int cnt = 1000;
long start = System.nanoTime();
for (int i = 0; i < cnt; i++) {
CoordinatorManager.getCoordinator().getSyncer().doInSync(ORES_TEST, new SyncerExecutor(){
public void execute() {
// empty
}});
}
long stop = System.nanoTime();