Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
LDEV-5273 Move VSA allocation code to Central

    • -0
    • +27
    ./lamsfoundation/lams/qb/QbUtils.java
  1. … 14 more files in changeset.
LDEV-4644 Use [] instead of () to recognise LO code

Teachers tend to use () as a part of Learning Outcome name

  1. … 34 more files in changeset.
LDEV-5260 Add utility class for global Flux management

    • -17
    • +19
    ./lamsfoundation/lams/flux/FluxMap.java
    • -0
    • +49
    ./lamsfoundation/lams/flux/FluxRegistry.java
    • -4
    • +4
    ./lamsfoundation/lams/flux/SharedSink.java
  1. … 2 more files in changeset.
LDEV-5260 Move custom Flux classes to separate package

    • -0
    • +137
    ./lamsfoundation/lams/flux/FluxMap.java
    • -0
    • +40
    ./lamsfoundation/lams/flux/SharedSink.java
    • -137
    • +0
    ./lamsfoundation/lams/util/FluxMap.java
    • -40
    • +0
    ./lamsfoundation/lams/util/SharedSink.java
LDEV-5260 Improve Flux cancellation mechanism

    • -10
    • +42
    ./lamsfoundation/lams/util/FluxMap.java
    • -0
    • +40
    ./lamsfoundation/lams/util/SharedSink.java
  1. … 1 more file in changeset.
LDEV-5260 Rewrite polling to producer-subscriber model

Till now we had "are-learners-answers-updated" polling on controller

level.

It was rewritten to following scenario:

- method which stores learner answers is aware whether answers have

changed, i.e. it knows if charts need to be updated

- it flushes latest data to DB and puts tool content ID to Sink

- Sink notifies all interested Fluxes (currently only charts updating

one, but in the future other ones like updating table with answer % too)

- FluxMap holds a map of tool content ID -> interested hot publisher

Flux

- the Flux checks if it is interested in the tool content ID from the

Sink

- if so, it fetches data from DB and emits it to all subscribers, i.e.

opened monitoring windows with charts displayed

- data is cached so it is immediately available on for the next

subscriber

- data is throttled so calls to DB are not made too often

- if all subscribers are gone, the hot publisher Flux is still active; a

timeout is added which removes it from FluxMap when there were not emits

for the given time

    • -0
    • +105
    ./lamsfoundation/lams/util/FluxMap.java
  1. … 6 more files in changeset.
LDEV-5260 Use WildFly task executor for Spring async request processing

    • -0
    • +4
    ./lamsfoundation/lams/commonContext.xml
  1. … 1 more file in changeset.
LDEV-5259 Manually create parent application context

Previous attempt to reproduce BeanFactoryLocater was an overkill. A

simple singleton parent application context is sufficient.

    • -29
    • +30
    ./lamsfoundation/lams/beanRefContext.xml
    • -168
    • +0
    ./lamsfoundation/lams/context/ContextSingletonBeanFactoryLocator.java
    • -562
    • +0
    ./lamsfoundation/lams/context/SingletonBeanFactoryLocator.java
  1. … 39 more files in changeset.
LDEV-5259 Use MVC initialisation via annotation

Manually triggering controller scanning by adding an annotation handler

bean does not register all useful support beans. If

<mvc:annotation-driven> is used in spring-servlet.xml, all support beans

are registered via WebMvcConfigurer.

<mvc:path-matching suffix-pattern="true" /> need to be added because we

use .do suffix for Spring actions and suffix was turned off for Spring

5.3

https://github.com/spring-projects/spring-framework/issues/24179

    • -23
    • +1
    ./lamsfoundation/lams/commonContext.xml
    • -118
    • +0
    ./lamsfoundation/lams/context/AbstractUrlMethodNameResolver.java
    • -1297
    • +0
    ./lamsfoundation/lams/context/AnnotationMethodHandlerAdapter.java
    • -288
    • +0
    ./lamsfoundation/lams/context/DefaultAnnotationHandlerMapping.java
    • -44
    • +0
    ./lamsfoundation/lams/context/HandlerMethodInvocationException.java
    • -129
    • +0
    ./lamsfoundation/lams/context/InternalPathMethodNameResolver.java
    • -87
    • +0
    ./lamsfoundation/lams/context/NoSuchRequestHandlingMethodException.java
    • -166
    • +0
    ./lamsfoundation/lams/context/ServletAnnotationMappingUtils.java
    • -295
    • +0
    ./lamsfoundation/lams/context/SourceHttpMessageConverter.java
    • -40
    • +0
    ./lamsfoundation/lams/context/XmlAwareFormHttpMessageConverter.java
  1. … 38 more files in changeset.
LDEV-5259 Remove unnecessary util class

LDEV-5125 Improve support for VSA questions import from Word file

VSA questions should have 2 options if they are going to be TBL

compatible. When importing from Word document only correct answers

option is required. The other one, incorrect answers option, now gets

added automatically. Also incorrect answers option does not get deleted

after editing via QB interface.

  1. … 2 more files in changeset.
LDEV-5259 Manually start controller annotation detection

    • -0
    • +33
    ./lamsfoundation/lams/commonContext.xml
  1. … 38 more files in changeset.
LDEV-5259 Reintroduce BeanFactoryLocator mechanism back to LAMS

It was removed for Spring 5

    • -29
    • +8
    ./lamsfoundation/lams/beanRefContext.xml
    • -0
    • +118
    ./lamsfoundation/lams/context/AbstractUrlMethodNameResolver.java
    • -0
    • +1297
    ./lamsfoundation/lams/context/AnnotationMethodHandlerAdapter.java
    • -0
    • +74
    ./lamsfoundation/lams/context/BeanFactoryLocator.java
    • -0
    • +57
    ./lamsfoundation/lams/context/BeanFactoryReference.java
    • -0
    • +53
    ./lamsfoundation/lams/context/BootstrapException.java
    • -0
    • +168
    ./lamsfoundation/lams/context/ContextSingletonBeanFactoryLocator.java
    • -0
    • +288
    ./lamsfoundation/lams/context/DefaultAnnotationHandlerMapping.java
    • -0
    • +44
    ./lamsfoundation/lams/context/HandlerMethodInvocationException.java
    • -0
    • +901
    ./lamsfoundation/lams/context/HandlerMethodInvoker.java
    • -0
    • +172
    ./lamsfoundation/lams/context/HandlerMethodResolver.java
    • -0
    • +129
    ./lamsfoundation/lams/context/InternalPathMethodNameResolver.java
    • -0
    • +47
    ./lamsfoundation/lams/context/MethodNameResolver.java
    • -0
    • +87
    ./lamsfoundation/lams/context/NoSuchRequestHandlingMethodException.java
    • -0
    • +166
    ./lamsfoundation/lams/context/ServletAnnotationMappingUtils.java
  1. … 44 more files in changeset.
LDEV-5258 Prevent exception if user timezone is not set

LDEV-5258 Prevent exception if user timezone is not set

LDEV-5257 Add LD and activity title validation also on backend

    • -8
    • +13
    ./lamsfoundation/lams/util/ValidationUtil.java
  1. … 1 more file in changeset.
LDEV-5258 Retrieve correct time zone offset

  1. … 1 more file in changeset.
LDEV-5257 Secure fileDownloadToken cookie

    • -0
    • +10
    ./lamsfoundation/lams/util/WebUtil.java
  1. … 9 more files in changeset.
LDEV-5257 Escape formulas in LAMS-generated spreadsheets

    • -1
    • +3
    ./lamsfoundation/lams/util/excel/ExcelUtil.java
LDEV-5256 Sanitise jqGrid sorting options before using them in queries

    • -2
    • +3
    ./lamsfoundation/lams/qb/dao/hibernate/QbDAO.java
  1. … 2 more files in changeset.
LDEV-4411 Reintroduce eager fetching and caching of QB options and units

There are several places in LAMS code where we need to detach QB

question entity from session to do copying and comparison. While another

approach can be found, it requires a lot of effort to rewrite now.

Fetching options from a detached question causes lazy initialisation

exceptions. We had to make them eagerly fetched again.

Collection caching is introduced too to address numerous queries run

with every question fetch.

LDEV-5256 Prevent SQL injection for results order

    • -0
    • +3
    ./lamsfoundation/lams/qb/dao/hibernate/QbDAO.java
  1. … 2 more files in changeset.
LDEV-4411 Do not fetch groups eagerly

LDEV-5253 Sysadmin Login As feature to be configurable

    • -0
    • +17
    ./lamsfoundation/lams/dbupdates/patch20211025.sql
  1. … 3 more files in changeset.
LDEV-4411 Allow Hibernate to choose fetch type by itself

    • -5
    • +3
    ./lamsfoundation/lams/lesson/Lesson.java
LDEV-4411 Make relation from Lesson to LessonClass unidirectional

Hibernate can not lazy load properties connected with OneToOne

relationship.

    • -13
    • +6
    ./lamsfoundation/lams/lesson/LessonClass.java
  1. … 1 more file in changeset.
LDEV-4411 Make relation from Evaluation to ToolActivity unidirectional

Hibernate can not lazy load properties connected with OneToOne

relationship. It means that with every fetch of ToolActivity its

ActivityEvaluation was also fetched, whether is was needed or not. It

made up even 10% of all queries sent to DB during a lesson.

By having the relationship unidirectional and fetching

ActivityEvaluation via DAO we ensure that it is fetched only when it is

needed. The code is not as nice, though.

  1. … 6 more files in changeset.
LDEV-4411 Do not cache native SQL queries as it causes exceptions

LDEV-3656 Clean up invalidated session from internal tracking mapping

These session should have been removed from the mapping when

SessionListener is called. Sometimes the listener is not called due to

WildFly internal bugs. We are left with a long list of stale sessions.

We should periodically clean up the mapping. Making it happen on runtime

stats fetch is as place as any other, plus it happens periodically.

  1. … 1 more file in changeset.
LDEV-4411 Remove FetchMode as it seems to trigger excessive queries