SEBSERV-488
This commit is contained in:
		
							parent
							
								
									9bda8630f6
								
							
						
					
					
						commit
						e426a7a6e2
					
				
					 6 changed files with 22 additions and 20 deletions
				
			
		|  | @ -18,6 +18,7 @@ import java.util.function.BooleanSupplier; | ||||||
| import java.util.function.Consumer; | import java.util.function.Consumer; | ||||||
| import java.util.function.Function; | import java.util.function.Function; | ||||||
| 
 | 
 | ||||||
|  | import ch.ethz.seb.sebserver.gbl.FeatureService; | ||||||
| import org.apache.commons.lang3.BooleanUtils; | import org.apache.commons.lang3.BooleanUtils; | ||||||
| import org.apache.commons.text.StringEscapeUtils; | import org.apache.commons.text.StringEscapeUtils; | ||||||
| import org.eclipse.swt.SWT; | import org.eclipse.swt.SWT; | ||||||
|  | @ -109,6 +110,7 @@ public class MonitoringRunningExam implements TemplateComposer { | ||||||
|     private final MonitoringExamSearchPopup monitoringExamSearchPopup; |     private final MonitoringExamSearchPopup monitoringExamSearchPopup; | ||||||
|     private final SEBSendLockPopup sebSendLockPopup; |     private final SEBSendLockPopup sebSendLockPopup; | ||||||
|     private final MonitoringProctoringService monitoringProctoringService; |     private final MonitoringProctoringService monitoringProctoringService; | ||||||
|  |     private final FeatureService featureService; | ||||||
|     private final boolean distributedSetup; |     private final boolean distributedSetup; | ||||||
|     private final long pollInterval; |     private final long pollInterval; | ||||||
| 
 | 
 | ||||||
|  | @ -121,6 +123,7 @@ public class MonitoringRunningExam implements TemplateComposer { | ||||||
|             final SEBSendLockPopup sebSendLockPopup, |             final SEBSendLockPopup sebSendLockPopup, | ||||||
|             final MonitoringProctoringService monitoringProctoringService, |             final MonitoringProctoringService monitoringProctoringService, | ||||||
|             final GuiServiceInfo guiServiceInfo, |             final GuiServiceInfo guiServiceInfo, | ||||||
|  |             final FeatureService featureService, | ||||||
|             @Value("${sebserver.gui.webservice.poll-interval:2000}") final long pollInterval) { |             @Value("${sebserver.gui.webservice.poll-interval:2000}") final long pollInterval) { | ||||||
| 
 | 
 | ||||||
|         this.serverPushService = serverPushService; |         this.serverPushService = serverPushService; | ||||||
|  | @ -134,6 +137,7 @@ public class MonitoringRunningExam implements TemplateComposer { | ||||||
|         this.distributedSetup = guiServiceInfo.isDistributedSetup(); |         this.distributedSetup = guiServiceInfo.isDistributedSetup(); | ||||||
|         this.monitoringExamSearchPopup = monitoringExamSearchPopup; |         this.monitoringExamSearchPopup = monitoringExamSearchPopup; | ||||||
|         this.sebSendLockPopup = sebSendLockPopup; |         this.sebSendLockPopup = sebSendLockPopup; | ||||||
|  |         this.featureService = featureService; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  | @ -315,7 +319,9 @@ public class MonitoringRunningExam implements TemplateComposer { | ||||||
|         final PageActionBuilder actionBuilder = this.pageService |         final PageActionBuilder actionBuilder = this.pageService | ||||||
|                 .pageActionBuilder(pageContext.clearEntityKeys()); |                 .pageActionBuilder(pageContext.clearEntityKeys()); | ||||||
| 
 | 
 | ||||||
|         final boolean proctoringEnabled = proctoringSettings != null && |         final boolean spsFeatureEnabled = this.featureService.isEnabled(FeatureService.SCREEN_PROCTORING_FEATURE_NAME); | ||||||
|  |         final boolean proctoringEnabled = spsFeatureEnabled && | ||||||
|  |                 proctoringSettings != null && | ||||||
|                 BooleanUtils.toBoolean(proctoringSettings.enableProctoring); |                 BooleanUtils.toBoolean(proctoringSettings.enableProctoring); | ||||||
|         final boolean screenProctoringEnabled = screenProctoringSettings != null && |         final boolean screenProctoringEnabled = screenProctoringSettings != null && | ||||||
|                 BooleanUtils.toBoolean(screenProctoringSettings.enableScreenProctoring); |                 BooleanUtils.toBoolean(screenProctoringSettings.enableScreenProctoring); | ||||||
|  |  | ||||||
|  | @ -19,6 +19,7 @@ import java.util.Set; | ||||||
| import java.util.function.Predicate; | import java.util.function.Predicate; | ||||||
| import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||||
| 
 | 
 | ||||||
|  | import ch.ethz.seb.sebserver.webservice.servicelayer.dao.*; | ||||||
| import org.mybatis.dynamic.sql.SqlBuilder; | import org.mybatis.dynamic.sql.SqlBuilder; | ||||||
| import org.springframework.context.annotation.Lazy; | import org.springframework.context.annotation.Lazy; | ||||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||||
|  | @ -45,11 +46,6 @@ import ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.ClientNotificatio | ||||||
| import ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.ClientNotificationRecordMapper; | import ch.ethz.seb.sebserver.webservice.datalayer.batis.mapper.ClientNotificationRecordMapper; | ||||||
| import ch.ethz.seb.sebserver.webservice.datalayer.batis.model.ClientEventRecord; | import ch.ethz.seb.sebserver.webservice.datalayer.batis.model.ClientEventRecord; | ||||||
| import ch.ethz.seb.sebserver.webservice.datalayer.batis.model.ClientNotificationRecord; | import ch.ethz.seb.sebserver.webservice.datalayer.batis.model.ClientNotificationRecord; | ||||||
| import ch.ethz.seb.sebserver.webservice.servicelayer.dao.ClientEventDAO; |  | ||||||
| import ch.ethz.seb.sebserver.webservice.servicelayer.dao.DAOLoggingSupport; |  | ||||||
| import ch.ethz.seb.sebserver.webservice.servicelayer.dao.FilterMap; |  | ||||||
| import ch.ethz.seb.sebserver.webservice.servicelayer.dao.ResourceNotFoundException; |  | ||||||
| import ch.ethz.seb.sebserver.webservice.servicelayer.dao.TransactionHandler; |  | ||||||
| 
 | 
 | ||||||
| @Lazy | @Lazy | ||||||
| @Component | @Component | ||||||
|  | @ -255,8 +251,9 @@ public class ClientEventDAOImpl implements ClientEventDAO { | ||||||
|                         records); |                         records); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             if (records.isEmpty() || records.size() > 1) { |             if (records.size() != 1) { | ||||||
|                 throw new IllegalStateException( |                 throw new NoResourceFoundException( | ||||||
|  |                         EntityType.CLIENT_NOTIFICATION, | ||||||
|                         "Failed to find pending notification event for confirm:" + notificationValueId); |                         "Failed to find pending notification event for confirm:" + notificationValueId); | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -243,12 +243,7 @@ public class ExamSessionServiceImpl implements ExamSessionService { | ||||||
|                     flushCache(exam); |                     flushCache(exam); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 if (log.isDebugEnabled()) { |                 throw new NoSuchElementException("No currently running exam found for id: " + examId); | ||||||
|                     log.info("Exam {} is not currently running", examId); |  | ||||||
|                 } |  | ||||||
| 
 |  | ||||||
|                 throw new NoSuchElementException( |  | ||||||
|                         "No currently running exam found for id: " + examId); |  | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -214,7 +214,7 @@ public class SEBClientInstructionServiceImpl implements SEBClientInstructionServ | ||||||
|                 .append(Constants.CURLY_BRACE_CLOSE) |                 .append(Constants.CURLY_BRACE_CLOSE) | ||||||
|                 .toString(); |                 .toString(); | ||||||
| 
 | 
 | ||||||
|         if (log.isDebugEnabled()) { |         if (log.isTraceEnabled()) { | ||||||
|             log.debug("Send SEB client instruction: {} to: {} ", instructionJSON, connectionToken); |             log.debug("Send SEB client instruction: {} to: {} ", instructionJSON, connectionToken); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  | @ -358,7 +358,7 @@ public class SEBClientInstructionServiceImpl implements SEBClientInstructionServ | ||||||
|             return instruction; |             return instruction; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         if (log.isDebugEnabled()) { |         if (log.isTraceEnabled()) { | ||||||
|             log.debug("Put SEB instruction into instruction queue: {}", instruction); |             log.debug("Put SEB instruction into instruction queue: {}", instruction); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -15,6 +15,7 @@ import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.Set; | import java.util.Set; | ||||||
| 
 | 
 | ||||||
|  | import ch.ethz.seb.sebserver.webservice.servicelayer.dao.NoResourceFoundException; | ||||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||||
| import org.springframework.context.annotation.Lazy; | import org.springframework.context.annotation.Lazy; | ||||||
|  | @ -95,6 +96,13 @@ public class SEBClientNotificationServiceImpl implements SEBClientNotificationSe | ||||||
|                     .map(this::removeFromCache) |                     .map(this::removeFromCache) | ||||||
|                     .getOrThrow(); |                     .getOrThrow(); | ||||||
| 
 | 
 | ||||||
|  |         } catch (final NoResourceFoundException e) { | ||||||
|  |             if (log.isDebugEnabled()) { | ||||||
|  |                 log.debug( | ||||||
|  |                         "Notification already confirmed or removed. connectionId: {}, confirmId: {}", | ||||||
|  |                         event.connectionId, | ||||||
|  |                         event.getValue()); | ||||||
|  |             } | ||||||
|         } catch (final Exception e) { |         } catch (final Exception e) { | ||||||
|             log.error( |             log.error( | ||||||
|                     "Failed to confirm pending notification from SEB Client side. event: {}", event, e); |                     "Failed to confirm pending notification from SEB Client side. event: {}", event, e); | ||||||
|  |  | ||||||
|  | @ -213,10 +213,6 @@ public class ScreenProctoringServiceImpl implements ScreenProctoringService { | ||||||
|         return this.examDAO.byPK(examId) |         return this.examDAO.byPK(examId) | ||||||
|                 .map(exam -> { |                 .map(exam -> { | ||||||
| 
 | 
 | ||||||
|                     if (log.isDebugEnabled()) { |  | ||||||
|                         log.debug("Update changed exam attributes for screen proctoring: {}", exam); |  | ||||||
|                     } |  | ||||||
| 
 |  | ||||||
|                     final String enabled = exam.additionalAttributes |                     final String enabled = exam.additionalAttributes | ||||||
|                             .get(ScreenProctoringSettings.ATTR_ENABLE_SCREEN_PROCTORING); |                             .get(ScreenProctoringSettings.ATTR_ENABLE_SCREEN_PROCTORING); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 anhefti
						anhefti