- Jul 15, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Migration to Ektorp and refactoring of the database layer A summary of the changes: * CouchDB4J has been replaced by Ektorp. * CouchDBDao has been split up into multiple repositories: One for each entity. * Jackson is used instead of JSON-lib for POJO <-> JSON (de)serialization. * Jackson's `@JsonView`'s are used to mark which properties are (de)serialized for the API and/or CouchDB * A lot of persistence code could be simplified since serialization is handled automatically by the `ObjectMapper`. * Entities and related Classes have been renamed: * `Content` <- `Question` / `SkillQuestion` / `LecturerQuestion` * `Comment` <- `FeedbackQuestion` / `AudienceQuestion` * CouchDB design docs can now be automatically created by the backend if necessary. They are included as JavaScript code which is parsed and transformed to JSON at startup using Java's `ScriptEngine`. * `MediaType`s for API versioning have been introduced: * `vnd.de.thm.arsnova.v2+json`: the format as used in ARSnova 2.x * `vnd.de.thm.arsnova.v3+json`: * ISO 8601 dates instead of timestamps * `id` instead of `_id`, `revision` instead of `_rev` * `api.indent-response-body` can be set in configuration for pretty responses for API debugging. * Empty (e.g. `null`) entity properties are ignored for serialization See merge request !68
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Mosts of the tests were coupled with the old database layer. Additionally, a lot of them were testing simple CRUD operations intead of domain logic. Meaningful tests with proper database mocking have to be written at a later time.
-
Daniel Gerhardt authored
Previously, the dependency was indirectly included via CouchDB4j.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Code for the following domains has been migrated: * VisitedSession * MotdList * Statistics * LearingProgress
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
(Lecturer/Skill)Question has been renamed to Content. Method names have not been touched yet to ease reviewing the changes.
-
Daniel Gerhardt authored
InterposedQuestion has been renamed to Comment. Method names have not been touched yet to ease reviewing the changes.
-
Daniel Gerhardt authored
LoggedIn documents are also handled by the SessionRepository for now.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Java's ScriptEnging is used to transform design doc JS objects into valid JSON. A custom CouchDbConnector has been implemented to handle this transformation and create the design docs in the database at startup.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Priortizing v3 caused problems for v2 clients on POST requests.
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
This decouples type identifiers used in CouchDB from Java type names.
-
Daniel Gerhardt authored
The creation of new documents is blocked if an empty _rev is set.
-
Daniel Gerhardt authored
Ektorp is introduced as a replacement for CouchDB4J.
-
Daniel Gerhardt authored
Functions need to be stringified to create valid JSON which is accepted by CouchDB.
-
- Jul 06, 2017
-
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
- Jul 04, 2017
-
-
Daniel Gerhardt authored
Additionally, removed obsolete TODO comment.
-
Daniel Gerhardt authored
The use of a proxy is no longer necessary with AspectJ.
-
- Jul 03, 2017
-
-
Daniel Gerhardt authored
AspectJ fixes See merge request !67
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
-
Daniel Gerhardt authored
Use AspectJ weaving instead of JDK/cglib proxies for AOP See merge request !66
-
This eliminates issues in edge cases like calling annotated methods from inside the same class. The use of `AopContext.currentProxy()` and the `exposeProxy` setting are no longer necessary for these cases.
-
- Jul 02, 2017
-
-
Daniel Gerhardt authored
Add missing annotations to reenable scheduling See merge request !65
-
Daniel Gerhardt authored
Scheduling was disabled unintentionally with the config migration in commit 2ecbfec8. Annotations are added as a replacement for <task:annotation-driven />.
-
- Jun 29, 2017
-
-
Daniel Gerhardt authored
-