Merge remote-tracking branch 'origin/dev-1.1.0' into development
Conflicts: src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/session/impl/AsyncBatchEventSaveStrategy.java
This commit is contained in:
commit
84035da42f
6 changed files with 26 additions and 36 deletions
|
@ -176,8 +176,7 @@ public final class InstitutionalAuthenticationEntryPoint implements Authenticati
|
|||
|
||||
final String requestURI = request.getRequestURI();
|
||||
if (requestURI.startsWith(this.remoteProctoringEndpoint)) {
|
||||
// TODO try to verify if this is only the remoteProctoringEndpoint or with addition
|
||||
// if there is addition, try redirect otherwise forward as is
|
||||
|
||||
final RequestDispatcher dispatcher = request
|
||||
.getServletContext()
|
||||
.getRequestDispatcher(this.remoteProctoringEndpoint);
|
||||
|
@ -263,27 +262,4 @@ public final class InstitutionalAuthenticationEntryPoint implements Authenticati
|
|||
return null;
|
||||
}
|
||||
|
||||
/** TODO this seems not to work as expected. Different Theme is only possible in RAP on different
|
||||
* entry-points and since entry-points are statically defined within the RAPConfiguration
|
||||
* there is no possibility to apply them dynamically within an institution so far.
|
||||
*
|
||||
* @param institutionalEndpoint
|
||||
* @return */
|
||||
// private boolean initInstitutionalBasedThemeEntryPoint(final String institutionalEndpoint) {
|
||||
// try {
|
||||
// final ApplicationContextImpl appContext = (ApplicationContextImpl) RWT.getApplicationContext();
|
||||
// final Map<String, String> properties = new HashMap<>();
|
||||
// properties.put(WebClient.THEME_ID, "sms");
|
||||
// appContext.getEntryPointManager().register(
|
||||
// institutionalEndpoint,
|
||||
// new RAPSpringEntryPointFactory(),
|
||||
// properties);
|
||||
//
|
||||
// return true;
|
||||
// } catch (final Exception e) {
|
||||
// log.warn("Failed to dynamically set entry point for institution: {}", institutionalEndpoint, e);
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
|
@ -300,7 +300,10 @@ public class MonitoringClientConnection implements TemplateComposer {
|
|||
EVENT_LIST_TITLE_TOOLTIP_KEY);
|
||||
|
||||
// client event table for this connection
|
||||
this.pageService.entityTableBuilder(restService.getRestCall(GetExtendedClientEventPage.class))
|
||||
this.pageService
|
||||
.entityTableBuilder(
|
||||
"seb-client-" + connectionToken,
|
||||
restService.getRestCall(GetExtendedClientEventPage.class))
|
||||
.withEmptyMessage(EMPTY_LIST_TEXT_KEY)
|
||||
.withPaging(this.pageSize)
|
||||
.withRestCallAdapter(restCallBuilder -> restCallBuilder.withQueryParam(
|
||||
|
|
|
@ -22,6 +22,8 @@ import ch.ethz.seb.sebserver.gui.widget.WidgetFactory.CustomVariant;
|
|||
public class TableNavigator {
|
||||
|
||||
private final static int PAGE_NAV_SIZE = 9;
|
||||
private final static int NAV_BUTTON_WIDTH = 35;
|
||||
private final static int NAV_BUTON_HEIGHT = 16;
|
||||
|
||||
private final Composite composite;
|
||||
private final EntityTable<?> entityTable;
|
||||
|
@ -114,7 +116,11 @@ public class TableNavigator {
|
|||
final boolean selectable,
|
||||
final Composite parent) {
|
||||
|
||||
final GridData rowData = new GridData(22, 16);
|
||||
final GridData rowData = new GridData(NAV_BUTTON_WIDTH, NAV_BUTON_HEIGHT);
|
||||
rowData.verticalAlignment = SWT.CENTER;
|
||||
rowData.horizontalAlignment = SWT.CENTER;
|
||||
rowData.verticalIndent = 0;
|
||||
|
||||
final Label pageLabel = new Label(parent, SWT.NONE);
|
||||
pageLabel.setText(" " + page + " ");
|
||||
pageLabel.setLayoutData(rowData);
|
||||
|
@ -131,7 +137,7 @@ public class TableNavigator {
|
|||
final int numberOfPages,
|
||||
final Composite parent) {
|
||||
|
||||
final GridData rowData = new GridData(22, 16);
|
||||
final GridData rowData = new GridData(NAV_BUTTON_WIDTH, NAV_BUTON_HEIGHT);
|
||||
final Label forward = new Label(parent, SWT.NONE);
|
||||
forward.setText(">");
|
||||
forward.setData(RWT.CUSTOM_VARIANT, CustomVariant.LIST_NAVIGATION.key);
|
||||
|
@ -160,7 +166,7 @@ public class TableNavigator {
|
|||
final int pageNumber,
|
||||
final Composite parent) {
|
||||
|
||||
final GridData rowData = new GridData(22, 16);
|
||||
final GridData rowData = new GridData(NAV_BUTTON_WIDTH, NAV_BUTON_HEIGHT);
|
||||
final Label start = new Label(parent, SWT.NONE);
|
||||
start.setText("<<");
|
||||
start.setLayoutData(rowData);
|
||||
|
|
|
@ -59,6 +59,9 @@ public class AsyncBatchEventSaveStrategy implements EventHandlingStrategy {
|
|||
|
||||
private static final int NUMBER_OF_WORKER_THREADS = 4;
|
||||
private static final int BATCH_SIZE = 100;
|
||||
private static final int MIN_SLEEP_TIME = 100;
|
||||
private static final int SLEEP_TIME_EXPAND = 100;
|
||||
private static final int MAX_SLEEP_TIME = 5000;
|
||||
|
||||
private final SqlSessionFactory sqlSessionFactory;
|
||||
private final Executor executor;
|
||||
|
@ -142,7 +145,7 @@ public class AsyncBatchEventSaveStrategy implements EventHandlingStrategy {
|
|||
final ClientEventRecordMapper clientEventMapper = sqlSessionTemplate.getMapper(
|
||||
ClientEventRecordMapper.class);
|
||||
|
||||
long sleepTime = 100;
|
||||
long sleepTime = MIN_SLEEP_TIME;
|
||||
|
||||
try {
|
||||
while (this.workersRunning) {
|
||||
|
@ -151,7 +154,7 @@ public class AsyncBatchEventSaveStrategy implements EventHandlingStrategy {
|
|||
|
||||
try {
|
||||
if (!events.isEmpty()) {
|
||||
sleepTime = 100;
|
||||
sleepTime = MIN_SLEEP_TIME;
|
||||
this.transactionTemplate
|
||||
.execute(status -> {
|
||||
events.forEach(clientEventMapper::insert);
|
||||
|
@ -159,8 +162,8 @@ public class AsyncBatchEventSaveStrategy implements EventHandlingStrategy {
|
|||
});
|
||||
|
||||
sqlSessionTemplate.flushStatements();
|
||||
} else {
|
||||
sleepTime += 100;
|
||||
} else if (sleepTime < MAX_SLEEP_TIME) {
|
||||
sleepTime += SLEEP_TIME_EXPAND;
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
log.error("unexpected Error while trying to batch store client-events: ", e);
|
||||
|
@ -176,7 +179,9 @@ public class AsyncBatchEventSaveStrategy implements EventHandlingStrategy {
|
|||
try {
|
||||
sqlSessionTemplate.destroy();
|
||||
} catch (final Exception e) {
|
||||
log.error("Failed to dispose SqlSessionTemplate", e);
|
||||
log.error("Failed to close and destroy the SqlSessionTemplate for this thread: {}",
|
||||
Thread.currentThread(),
|
||||
e);
|
||||
}
|
||||
log.debug("Worker Thread {} stopped", Thread.currentThread());
|
||||
}
|
||||
|
|
|
@ -161,7 +161,7 @@ Composite.logo {
|
|||
|
||||
Composite.bgLogo {
|
||||
background-color: #1F407A;
|
||||
background-image: url(static/images/ethz_logo_white.png);
|
||||
background-image: url(static/images/sebserver-logo.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
}
|
||||
|
|
|
@ -123,7 +123,7 @@ Composite.logo {
|
|||
|
||||
Composite.bgLogo {
|
||||
background-color: #1F407A;
|
||||
background-image: url(static/images/ethz_logo_white.png);
|
||||
background-image: url(static/images/sebserver-logo.png);
|
||||
background-repeat: no-repeat;
|
||||
background-position: left center;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue