diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java b/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java index 7c46a35c..e7d86fd6 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java +++ b/src/main/java/ch/ethz/seb/sebserver/gui/InstitutionalAuthenticationEntryPoint.java @@ -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 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; -// } -// } - } \ No newline at end of file diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/content/MonitoringClientConnection.java b/src/main/java/ch/ethz/seb/sebserver/gui/content/MonitoringClientConnection.java index b5574d73..2a5b5ff0 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gui/content/MonitoringClientConnection.java +++ b/src/main/java/ch/ethz/seb/sebserver/gui/content/MonitoringClientConnection.java @@ -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( diff --git a/src/main/java/ch/ethz/seb/sebserver/gui/table/TableNavigator.java b/src/main/java/ch/ethz/seb/sebserver/gui/table/TableNavigator.java index aac7ce6d..24bb6867 100644 --- a/src/main/java/ch/ethz/seb/sebserver/gui/table/TableNavigator.java +++ b/src/main/java/ch/ethz/seb/sebserver/gui/table/TableNavigator.java @@ -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); diff --git a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/session/impl/AsyncBatchEventSaveStrategy.java b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/session/impl/AsyncBatchEventSaveStrategy.java index 1dda2292..31e33f05 100644 --- a/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/session/impl/AsyncBatchEventSaveStrategy.java +++ b/src/main/java/ch/ethz/seb/sebserver/webservice/servicelayer/session/impl/AsyncBatchEventSaveStrategy.java @@ -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()); } diff --git a/src/main/resources/static/css/sebserver.css b/src/main/resources/static/css/sebserver.css index beb0caaf..10240965 100644 --- a/src/main/resources/static/css/sebserver.css +++ b/src/main/resources/static/css/sebserver.css @@ -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; } diff --git a/src/main/resources/static/css/sms.css b/src/main/resources/static/css/sms.css index 343895a2..92461f87 100644 --- a/src/main/resources/static/css/sms.css +++ b/src/main/resources/static/css/sms.css @@ -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; }