78 Commits

Author SHA1 Message Date
5fbf4ec0c0 Switch from an in-memory HSQLDB to MariaDB during integration tests (#57)
All checks were successful
Build and test / build-and-test (push) Successful in 22m4s
Currently our integration tests run against an in-memory HSQLDB whose schema is created by Hibernate based on our JPA annotations. This has differences from the MariaDB schema created by our Flyway migrations. It is also a completely different database engine so who knows what other differences there are.

This proposal changes this so that it will instead use [Testcontainers](https://testcontainers.com/) to spin up a MariaDB Docker container that then has the Flyway migrations ran before being used in tests.

Pros:
 * Same database engine in tests as production
 * Flyway migrations are tested
 * Database schema is the same in tests as production (`NOT NULL` constraints, foreign keys, and so on)

Cons:
 * *Much* slower test executions and they will get slower over time as more migrations are added

Co-authored-by: Nico Athanassiadis <nico@dsv.su.se>
Reviewed-on: #57
Reviewed-by: Nico Athanassiadis <nico@dsv.su.se>
2024-12-16 13:55:33 +01:00
ccac2c1cf8 Enable creating an API using Spring Web (#5)
All checks were successful
Build and test / build-and-test (push) Successful in 6m54s
SciPro will have to provide information to the upcoming student portal. Wicket does not have the ability to serve JSON in the usual REST way and is only able to serve HTML. The most common way to write JSON over HTTP API:s in Java is using Spring Web, but currently SciPro uses Guice for dependency injection rather than Spring which makes adding Spring Web a bit more tricky.

This pull request attempts to solve this by doing the following;
* Replacing Guice with Spring
* Adding a new API module that uses Spring Web
* Turning the entire system into a standard Spring Boot web application

The hope is that these changes will bring the following benefits;
* Harmonize our web stack (Daisy uses Spring and the new lecture hall system is full Spring Boot)
* Enable easy development of a traditional JSON over HTTP API
* Ease future recruitment by using the most common Java web frameworks

Reviewed-on: #5
Reviewed-by: niat8586 <nico@dsv.su.se>
Co-authored-by: Andreas Svanberg <andreass@dsv.su.se>
Co-committed-by: Andreas Svanberg <andreass@dsv.su.se>
2024-11-06 11:23:28 +01:00
f072429753 3351 Upgrade to Wicket 10
Related Jakarta migration upgrades as well
2024-03-14 15:09:49 +01:00
a0a9142b3d Replace JAXB plugin with one that's valid for future Maven 4 2023-11-29 15:51:15 +01:00
d71173ac02 Update Maven plugin versions to fix validation warnings 2023-11-29 15:50:34 +01:00
0e6f80d111 3092 Switch to MariaDB JDBC driver 2023-11-02 09:54:08 +01:00
52b254cf3e Upgrade persistence dependencies 2022-11-15 12:57:43 +01:00
1826ab5aa8 2891 Upgrade Hibernate and Jersey 2022-10-05 14:34:59 +02:00
820365bf14 Upgrade Jakarta Mail (and use the API) 2022-09-29 11:27:24 +02:00
76fd96b0ca Remove hibernate-validator since it was barely used 2022-09-28 15:15:25 +02:00
fc76a7ec98 Remove manual tracing instrumentation.
Use the Java Agent instead.
2022-09-28 14:58:53 +02:00
e811fd04e2 Switch to the new Jakarta dependencies for API specification. 2022-09-28 11:11:47 +02:00
6765da6480 Remove MOXy for XML/JSON (de)serialization
We now use JAXB for XML and Jackson for JSON. MOXy complects the two and make it harder to control the specific input/output expected.
2022-09-28 11:08:53 +02:00
4087037c18 Upgrade HSQLDB and switch it to test scope 2022-08-10 10:30:30 +02:00
48f596d4af Fix (some) dependencies with known security holes 2021-12-13 15:57:32 +01:00
67dcd48325 Remove extraneous Maven plugin 2021-12-06 22:54:02 +01:00
abca57fae3 Move dependency versions to parent pom 2021-11-29 21:27:39 +01:00
adc7eb47fc Version upgrades
Preparation for new Java and Wicket versions.
2021-11-27 12:34:54 +01:00
efdc3e8546 Merge remote-tracking branch 'origin/2358-replace-apache-httpclient' into develop
# Conflicts:
#	core/src/main/java/se/su/dsv/scipro/plagiarism/urkund/UrkundApiImpl.java
2021-10-28 17:53:48 +02:00
e1daa7a051 Fixed duplicated dependency 2021-09-27 10:47:34 +02:00
7e807af9e2 2358 Replace HTTP client for URKUND integration
Switch to Javas built in HttpClient instead of the external Apache HTTP client. Reduces our external dependencies.
2021-09-23 16:41:31 +02:00
0989e6b415 Version upgrades 2021-09-23 13:49:59 +02:00
335c27484b Removed unused hibernate-c3p0 dependency 2021-08-24 11:47:48 +02:00
6cb1a189cb 2279 2277 Upgrade Guice and Guava 2021-08-24 11:38:58 +02:00
34214feacb Fix duplicated dependency. 2021-05-19 13:22:10 +02:00
adf7ec1674 2197 Removed Lombok 2021-04-20 23:26:39 +02:00
9e543e9162 2019 Update Hibernate version 2021-02-15 17:43:28 +01:00
54658f35fa 2042 Ny version av mysql-driver. Fixade namnvisning och img-alt. 2020-10-09 13:30:08 +02:00
0cec6cd267 Switched tracing to Jaeger 2020-01-27 15:17:16 +01:00
ee054f5b10 Made it build under JDK 11 2020-01-09 16:29:55 +01:00
9fb6145a26 Zipkin instrumentation when talking to Daisy API. 2017-08-22 10:38:22 +02:00
a498024111 [1091] Send grading report from SciPro to Daisy. 2017-02-14 14:27:15 +01:00
7ffafb1029 [1033] Removed references to TurnItIn. 2016-09-26 13:55:16 +02:00
40c67e5600 Merge branch 'develop' into urkund
# Conflicts:
#	core/src/main/java/modules/CoreModule.java
2016-09-05 09:55:26 +02:00
c517235284 Fixed XSD plugin. 2016-08-26 16:38:49 +02:00
1b8dee7e5e SCIPRO-342548 Column 'emailAddress' cannot be null 2 2016-08-26 15:22:58 +02:00
4f95d869d4 SCIPRO-342548 Column 'emailAddress' cannot be null 2016-08-25 10:00:40 +02:00
f689820f39 Added URKUND module. 2016-05-04 10:37:47 +02:00
8c7a1de238 Upgraded Hibernate to 5.* and QueryDSL to 4.* 2016-03-22 14:18:49 +01:00
aaa950ce90 Restructured the poms to move dependencies to where they are used and make sense. 2016-03-18 16:34:51 +01:00
4285870d03 Some plugin version updates. 2015-08-03 14:53:03 +02:00
f4020516f0 Added dependency to jersey-media-jaxb to get back XML support. 2015-05-29 17:42:46 +02:00
852e2d9235 Removed explicit execution of Lombok. 2015-05-28 18:03:29 +02:00
1ab9ee8b09 Upgraded versions.
Could not update Hibernate due to problems with enums.
Could not update Commons CSV due to stupid reliance on CSVRecord#toString.
2015-05-28 13:05:25 +02:00
4189bdcbc1 Removed unused dependency. 2014-08-28 09:40:50 +02:00
fred-fri
4288ad934a median works, time to clean up 2014-08-27 20:15:07 +09:00
5f406f0c21 Updated javax.mail library to the latest version. 2014-07-29 11:12:07 +02:00
34bb0a1257 Redid the authentication. 2014-03-31 11:13:35 +02:00
2f9e1da36a Removed dependencies on repositories. 2014-03-15 18:49:50 +01:00
d05d1bef61 Removed Spring data jpa dependency. 2014-03-15 12:17:31 +01:00