From 01e273ce087877a3236c1803dfb017d732e8e1ef Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Sun, 28 Jul 2024 23:04:28 +0700
Subject: [PATCH 01/10] refactor(jee): javax.validation --> jakarta.validation
refs #1691
---
pom.xml | 9 ++-------
src/main/java/ai/elimu/model/DbMigration.java | 2 +-
src/main/java/ai/elimu/model/Device.java | 2 +-
src/main/java/ai/elimu/model/admin/Application.java | 2 +-
.../java/ai/elimu/model/admin/ApplicationVersion.java | 2 +-
.../java/ai/elimu/model/analytics/LearningEvent.java | 2 +-
.../ai/elimu/model/analytics/LetterLearningEvent.java | 2 +-
.../ai/elimu/model/analytics/StoryBookLearningEvent.java | 2 +-
src/main/java/ai/elimu/model/content/Content.java | 2 +-
src/main/java/ai/elimu/model/content/Emoji.java | 2 +-
src/main/java/ai/elimu/model/content/Letter.java | 2 +-
src/main/java/ai/elimu/model/content/Number.java | 2 +-
src/main/java/ai/elimu/model/content/Sound.java | 2 +-
src/main/java/ai/elimu/model/content/StoryBook.java | 2 +-
.../java/ai/elimu/model/content/StoryBookChapter.java | 2 +-
.../java/ai/elimu/model/content/StoryBookParagraph.java | 2 +-
src/main/java/ai/elimu/model/content/Syllable.java | 2 +-
src/main/java/ai/elimu/model/content/Word.java | 2 +-
.../java/ai/elimu/model/content/multimedia/Audio.java | 2 +-
.../java/ai/elimu/model/content/multimedia/Image.java | 2 +-
.../ai/elimu/model/content/multimedia/Multimedia.java | 2 +-
.../java/ai/elimu/model/content/multimedia/Video.java | 2 +-
.../elimu/model/contributor/AudioContributionEvent.java | 2 +-
.../ai/elimu/model/contributor/AudioPeerReviewEvent.java | 2 +-
.../ai/elimu/model/contributor/ContributionEvent.java | 2 +-
.../java/ai/elimu/model/contributor/Contributor.java | 2 +-
.../elimu/model/contributor/ImageContributionEvent.java | 2 +-
.../elimu/model/contributor/LetterContributionEvent.java | 2 +-
.../model/contributor/LetterSoundContributionEvent.java | 2 +-
.../model/contributor/LetterSoundPeerReviewEvent.java | 2 +-
.../elimu/model/contributor/NumberContributionEvent.java | 2 +-
.../elimu/model/contributor/NumberPeerReviewEvent.java | 2 +-
.../java/ai/elimu/model/contributor/PeerReviewEvent.java | 2 +-
.../elimu/model/contributor/SoundContributionEvent.java | 2 +-
.../model/contributor/StoryBookContributionEvent.java | 2 +-
.../model/contributor/StoryBookPeerReviewEvent.java | 2 +-
.../elimu/model/contributor/WordContributionEvent.java | 2 +-
.../ai/elimu/model/contributor/WordPeerReviewEvent.java | 2 +-
.../admin/application/ApplicationCreateController.java | 2 +-
.../web/admin/application/ApplicationEditController.java | 2 +-
.../elimu/web/content/emoji/EmojiCreateController.java | 2 +-
.../ai/elimu/web/content/emoji/EmojiEditController.java | 2 +-
.../elimu/web/content/letter/LetterCreateController.java | 2 +-
.../elimu/web/content/letter/LetterEditController.java | 2 +-
.../letter_sound/LetterSoundCreateController.java | 2 +-
.../content/letter_sound/LetterSoundEditController.java | 2 +-
.../elimu/web/content/number/NumberCreateController.java | 2 +-
.../elimu/web/content/number/NumberEditController.java | 2 +-
.../elimu/web/content/sound/SoundCreateController.java | 2 +-
.../ai/elimu/web/content/sound/SoundEditController.java | 2 +-
.../web/content/storybook/StoryBookCreateController.java | 2 +-
.../web/content/storybook/StoryBookEditController.java | 2 +-
.../chapter/StoryBookChapterCreateController.java | 2 +-
.../paragraph/StoryBookParagraphCreateController.java | 2 +-
.../paragraph/StoryBookParagraphEditController.java | 2 +-
.../ai/elimu/web/content/word/WordCreateController.java | 2 +-
.../ai/elimu/web/content/word/WordEditController.java | 2 +-
57 files changed, 58 insertions(+), 63 deletions(-)
diff --git a/pom.xml b/pom.xml
index c49e2d363..139f1564f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -406,16 +406,11 @@
aspectjweaver
1.9.22.1
-
-
- javax.validation
- validation-api
- 2.0.1.Final
-
+
org.hibernate.validator
hibernate-validator
- 6.1.7.Final
+ 7.0.0.Final
diff --git a/src/main/java/ai/elimu/model/DbMigration.java b/src/main/java/ai/elimu/model/DbMigration.java
index 69cdd7f55..9a944d461 100644
--- a/src/main/java/ai/elimu/model/DbMigration.java
+++ b/src/main/java/ai/elimu/model/DbMigration.java
@@ -5,7 +5,7 @@
import javax.persistence.Entity;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class DbMigration extends BaseEntity {
diff --git a/src/main/java/ai/elimu/model/Device.java b/src/main/java/ai/elimu/model/Device.java
index 30450cb38..1a31ca276 100644
--- a/src/main/java/ai/elimu/model/Device.java
+++ b/src/main/java/ai/elimu/model/Device.java
@@ -5,7 +5,7 @@
import javax.persistence.Entity;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class Device extends BaseEntity {
diff --git a/src/main/java/ai/elimu/model/admin/Application.java b/src/main/java/ai/elimu/model/admin/Application.java
index 36b59002a..6f0785bec 100644
--- a/src/main/java/ai/elimu/model/admin/Application.java
+++ b/src/main/java/ai/elimu/model/admin/Application.java
@@ -7,7 +7,7 @@
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import ai.elimu.model.BaseEntity;
import ai.elimu.model.contributor.Contributor;
import ai.elimu.model.v2.enums.content.LiteracySkill;
diff --git a/src/main/java/ai/elimu/model/admin/ApplicationVersion.java b/src/main/java/ai/elimu/model/admin/ApplicationVersion.java
index 51591c41a..9117de64a 100644
--- a/src/main/java/ai/elimu/model/admin/ApplicationVersion.java
+++ b/src/main/java/ai/elimu/model/admin/ApplicationVersion.java
@@ -7,7 +7,7 @@
import javax.persistence.ManyToOne;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import ai.elimu.model.BaseEntity;
import ai.elimu.model.contributor.Contributor;
diff --git a/src/main/java/ai/elimu/model/analytics/LearningEvent.java b/src/main/java/ai/elimu/model/analytics/LearningEvent.java
index a07ef64c8..1518880a7 100644
--- a/src/main/java/ai/elimu/model/analytics/LearningEvent.java
+++ b/src/main/java/ai/elimu/model/analytics/LearningEvent.java
@@ -10,7 +10,7 @@
import javax.persistence.MappedSuperclass;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@MappedSuperclass
public abstract class LearningEvent extends BaseEntity {
diff --git a/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java b/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java
index 7ce06e07f..458d1f02e 100644
--- a/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java
+++ b/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java
@@ -3,7 +3,7 @@
import ai.elimu.model.content.Letter;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class LetterLearningEvent extends LearningEvent {
diff --git a/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java b/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java
index c6a6d00ca..d8762a130 100644
--- a/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java
+++ b/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java
@@ -3,7 +3,7 @@
import ai.elimu.model.content.StoryBook;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class StoryBookLearningEvent extends LearningEvent {
diff --git a/src/main/java/ai/elimu/model/content/Content.java b/src/main/java/ai/elimu/model/content/Content.java
index 0005d2b01..85b1cb0ab 100644
--- a/src/main/java/ai/elimu/model/content/Content.java
+++ b/src/main/java/ai/elimu/model/content/Content.java
@@ -6,7 +6,7 @@
import javax.persistence.MappedSuperclass;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import ai.elimu.model.BaseEntity;
import ai.elimu.model.v2.enums.content.ContentStatus;
import ai.elimu.model.enums.PeerReviewStatus;
diff --git a/src/main/java/ai/elimu/model/content/Emoji.java b/src/main/java/ai/elimu/model/content/Emoji.java
index dd826de45..96539918f 100644
--- a/src/main/java/ai/elimu/model/content/Emoji.java
+++ b/src/main/java/ai/elimu/model/content/Emoji.java
@@ -7,7 +7,7 @@
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/Letter.java b/src/main/java/ai/elimu/model/content/Letter.java
index e89a2f70b..ddd84797b 100644
--- a/src/main/java/ai/elimu/model/content/Letter.java
+++ b/src/main/java/ai/elimu/model/content/Letter.java
@@ -2,7 +2,7 @@
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/Number.java b/src/main/java/ai/elimu/model/content/Number.java
index 9876f25e3..f2a6d4c0a 100644
--- a/src/main/java/ai/elimu/model/content/Number.java
+++ b/src/main/java/ai/elimu/model/content/Number.java
@@ -5,7 +5,7 @@
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.OrderColumn;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/Sound.java b/src/main/java/ai/elimu/model/content/Sound.java
index e1165a120..0c3564709 100644
--- a/src/main/java/ai/elimu/model/content/Sound.java
+++ b/src/main/java/ai/elimu/model/content/Sound.java
@@ -5,7 +5,7 @@
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.OneToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import ai.elimu.model.content.multimedia.Audio;
import ai.elimu.model.v2.enums.content.sound.ConsonantPlace;
diff --git a/src/main/java/ai/elimu/model/content/StoryBook.java b/src/main/java/ai/elimu/model/content/StoryBook.java
index 8cbfc0cec..a27a5db44 100644
--- a/src/main/java/ai/elimu/model/content/StoryBook.java
+++ b/src/main/java/ai/elimu/model/content/StoryBook.java
@@ -5,7 +5,7 @@
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import ai.elimu.model.content.multimedia.Image;
import ai.elimu.model.enums.ContentLicense;
diff --git a/src/main/java/ai/elimu/model/content/StoryBookChapter.java b/src/main/java/ai/elimu/model/content/StoryBookChapter.java
index 89d39ef88..c9966fa63 100644
--- a/src/main/java/ai/elimu/model/content/StoryBookChapter.java
+++ b/src/main/java/ai/elimu/model/content/StoryBookChapter.java
@@ -4,7 +4,7 @@
import ai.elimu.model.BaseEntity;
import ai.elimu.model.content.multimedia.Image;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class StoryBookChapter extends BaseEntity {
diff --git a/src/main/java/ai/elimu/model/content/StoryBookParagraph.java b/src/main/java/ai/elimu/model/content/StoryBookParagraph.java
index d9faff128..df5ce0b5c 100644
--- a/src/main/java/ai/elimu/model/content/StoryBookParagraph.java
+++ b/src/main/java/ai/elimu/model/content/StoryBookParagraph.java
@@ -8,7 +8,7 @@
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.OrderColumn;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class StoryBookParagraph extends BaseEntity {
diff --git a/src/main/java/ai/elimu/model/content/Syllable.java b/src/main/java/ai/elimu/model/content/Syllable.java
index b655ba1a6..bdf2c5467 100644
--- a/src/main/java/ai/elimu/model/content/Syllable.java
+++ b/src/main/java/ai/elimu/model/content/Syllable.java
@@ -5,7 +5,7 @@
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.OrderColumn;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class Syllable extends Content {
diff --git a/src/main/java/ai/elimu/model/content/Word.java b/src/main/java/ai/elimu/model/content/Word.java
index 0667a2ac0..bf8cf13e3 100644
--- a/src/main/java/ai/elimu/model/content/Word.java
+++ b/src/main/java/ai/elimu/model/content/Word.java
@@ -7,7 +7,7 @@
import javax.persistence.FetchType;
import javax.persistence.ManyToMany;
import javax.persistence.OrderColumn;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.SpellingConsistency;
import ai.elimu.model.v2.enums.content.WordType;
import javax.persistence.ManyToOne;
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Audio.java b/src/main/java/ai/elimu/model/content/multimedia/Audio.java
index 283f6193e..8113612f4 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Audio.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Audio.java
@@ -7,7 +7,7 @@
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Lob;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.AudioFormat;
import javax.persistence.ManyToOne;
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Image.java b/src/main/java/ai/elimu/model/content/multimedia/Image.java
index 9f3d5f3a8..f49124add 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Image.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Image.java
@@ -5,7 +5,7 @@
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Lob;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.ImageFormat;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java b/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java
index 8adc2d17c..44a9ab29a 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java
@@ -10,7 +10,7 @@
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.MappedSuperclass;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import ai.elimu.model.content.Content;
import ai.elimu.model.content.Letter;
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Video.java b/src/main/java/ai/elimu/model/content/multimedia/Video.java
index 3ed9c1517..95f4184fc 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Video.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Video.java
@@ -5,7 +5,7 @@
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Lob;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.VideoFormat;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java b/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java
index e60ea56b4..da86918a1 100644
--- a/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java
@@ -2,7 +2,7 @@
import ai.elimu.model.content.multimedia.Audio;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class AudioContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java
index 1c633f7e7..0edb17fa7 100644
--- a/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* An event where a {@link Contributor} peer-reviews a {@link Audio} which
diff --git a/src/main/java/ai/elimu/model/contributor/ContributionEvent.java b/src/main/java/ai/elimu/model/contributor/ContributionEvent.java
index 51b9f0813..8d853e6b1 100644
--- a/src/main/java/ai/elimu/model/contributor/ContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/ContributionEvent.java
@@ -3,7 +3,7 @@
import ai.elimu.model.BaseEntity;
import java.util.Calendar;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* Parent class for various types of content contribution events.
diff --git a/src/main/java/ai/elimu/model/contributor/Contributor.java b/src/main/java/ai/elimu/model/contributor/Contributor.java
index 02adebf14..bb1e07f26 100644
--- a/src/main/java/ai/elimu/model/contributor/Contributor.java
+++ b/src/main/java/ai/elimu/model/contributor/Contributor.java
@@ -11,7 +11,7 @@
import javax.persistence.FetchType;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;
import ai.elimu.model.enums.Role;
diff --git a/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java b/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java
index adaf5e383..5d0027ad6 100644
--- a/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java
@@ -2,7 +2,7 @@
import ai.elimu.model.content.multimedia.Image;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class ImageContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java b/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java
index 36c7300f5..33fb9c2d7 100644
--- a/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java
@@ -3,7 +3,7 @@
import ai.elimu.model.content.Letter;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class LetterContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java b/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java
index 4a5e65ab3..22f93edae 100644
--- a/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java
@@ -3,7 +3,7 @@
import ai.elimu.model.content.LetterSound;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class LetterSoundContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java
index da29fc2a6..556e09777 100644
--- a/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* An event where a {@link Contributor} peer-reviews a {@link LetterSound} which
diff --git a/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java b/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java
index 1f39110c2..2fb6eaca4 100644
--- a/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java
@@ -2,7 +2,7 @@
import ai.elimu.model.content.Number;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class NumberContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java
index 324c9a266..ad76cddc7 100644
--- a/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* An event where a {@link Contributor} peer-reviews a {@link Number} which
diff --git a/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java
index eb518b8d0..8fb304b7e 100644
--- a/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java
@@ -7,7 +7,7 @@
import javax.persistence.MappedSuperclass;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* An event where a {@link Contributor} peer-reviews a {@link ContributionEvent} of another {@link Contributor}.
diff --git a/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java b/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java
index 83199795c..cb54c4f4f 100644
--- a/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java
@@ -3,7 +3,7 @@
import ai.elimu.model.content.Sound;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class SoundContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java b/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java
index bed606b62..c64332b07 100644
--- a/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java
@@ -5,7 +5,7 @@
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class StoryBookContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java
index 776afc835..d72cd2c7b 100644
--- a/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java
@@ -2,7 +2,7 @@
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* An event where a {@link Contributor} peer-reviews a {@link StoryBook} which
diff --git a/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java b/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java
index 049fad573..cb663e4fc 100644
--- a/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java
@@ -3,7 +3,7 @@
import ai.elimu.model.content.Word;
import javax.persistence.Entity;
import javax.persistence.ManyToOne;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
@Entity
public class WordContributionEvent extends ContributionEvent {
diff --git a/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java
index 505adb7e0..bf17b9e63 100644
--- a/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
import javax.persistence.*;
-import javax.validation.constraints.NotNull;
+import jakarta.validation.constraints.NotNull;
/**
* An event where a {@link Contributor} peer-reviews a {@link Word} which
diff --git a/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java b/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java
index eb24e19c9..9925ac547 100644
--- a/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java
+++ b/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.admin.application;
import javax.servlet.http.HttpSession;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ApplicationDao;
diff --git a/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java b/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java
index 4f57db38f..ec9dad530 100644
--- a/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java
+++ b/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java
@@ -2,7 +2,7 @@
import java.util.List;
import javax.servlet.http.HttpSession;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ApplicationDao;
import ai.elimu.dao.ApplicationVersionDao;
diff --git a/src/main/java/ai/elimu/web/content/emoji/EmojiCreateController.java b/src/main/java/ai/elimu/web/content/emoji/EmojiCreateController.java
index eb84e84a7..93987ba87 100644
--- a/src/main/java/ai/elimu/web/content/emoji/EmojiCreateController.java
+++ b/src/main/java/ai/elimu/web/content/emoji/EmojiCreateController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.content.emoji;
import java.util.Calendar;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.EmojiDao;
diff --git a/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java b/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java
index a7e218ff2..811b5a6c1 100644
--- a/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java
+++ b/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java
@@ -2,7 +2,7 @@
import java.util.Calendar;
import java.util.List;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.EmojiDao;
diff --git a/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java b/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java
index b114456e0..a4a22d906 100644
--- a/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java
+++ b/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.content.letter;
import java.util.Calendar;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.LetterContributionEventDao;
diff --git a/src/main/java/ai/elimu/web/content/letter/LetterEditController.java b/src/main/java/ai/elimu/web/content/letter/LetterEditController.java
index 68dba699c..555256664 100644
--- a/src/main/java/ai/elimu/web/content/letter/LetterEditController.java
+++ b/src/main/java/ai/elimu/web/content/letter/LetterEditController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.content.letter;
import java.util.Calendar;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.LetterContributionEventDao;
diff --git a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java
index 8688041c1..7d8ef786b 100644
--- a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java
+++ b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.content.letter_sound;
import java.util.List;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import ai.elimu.model.contributor.LetterSoundContributionEvent;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java
index 4ddca0da8..bef59e922 100644
--- a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java
+++ b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.content.letter_sound;
import java.util.List;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import ai.elimu.model.contributor.LetterSoundContributionEvent;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/number/NumberCreateController.java b/src/main/java/ai/elimu/web/content/number/NumberCreateController.java
index 772060d0a..16447c680 100644
--- a/src/main/java/ai/elimu/web/content/number/NumberCreateController.java
+++ b/src/main/java/ai/elimu/web/content/number/NumberCreateController.java
@@ -4,7 +4,7 @@
import ai.elimu.dao.NumberContributionEventDao;
import java.util.Calendar;
import java.util.List;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.NumberDao;
diff --git a/src/main/java/ai/elimu/web/content/number/NumberEditController.java b/src/main/java/ai/elimu/web/content/number/NumberEditController.java
index 2f69a219d..c7dfe9c07 100644
--- a/src/main/java/ai/elimu/web/content/number/NumberEditController.java
+++ b/src/main/java/ai/elimu/web/content/number/NumberEditController.java
@@ -4,7 +4,7 @@
import ai.elimu.dao.NumberContributionEventDao;
import java.util.Calendar;
import java.util.List;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.NumberDao;
diff --git a/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java b/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java
index cf248f8e4..5f95315d1 100644
--- a/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java
+++ b/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java
@@ -3,7 +3,7 @@
import ai.elimu.dao.SoundContributionEventDao;
import java.util.Calendar;
import javax.servlet.http.HttpSession;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/sound/SoundEditController.java b/src/main/java/ai/elimu/web/content/sound/SoundEditController.java
index 6c9958123..9fc8fd5aa 100644
--- a/src/main/java/ai/elimu/web/content/sound/SoundEditController.java
+++ b/src/main/java/ai/elimu/web/content/sound/SoundEditController.java
@@ -4,7 +4,7 @@
import ai.elimu.dao.SoundContributionEventDao;
import java.util.Calendar;
import javax.servlet.http.HttpSession;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java b/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java
index fd3d756b1..dd5651104 100644
--- a/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java
@@ -2,7 +2,7 @@
import java.util.Calendar;
import java.util.List;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ImageDao;
diff --git a/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java b/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java
index e6581f213..4df0160e6 100644
--- a/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java
@@ -5,7 +5,7 @@
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ImageDao;
diff --git a/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java b/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java
index 368428663..d91d106b0 100644
--- a/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java
@@ -15,7 +15,7 @@
import java.util.Calendar;
import java.util.List;
import javax.servlet.http.HttpSession;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java
index 9b4406b1d..40c644f0a 100644
--- a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java
@@ -19,7 +19,7 @@
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java
index 596d40f27..f8d8d30e5 100644
--- a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java
@@ -15,7 +15,7 @@
import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/word/WordCreateController.java b/src/main/java/ai/elimu/web/content/word/WordCreateController.java
index 2a2430789..b1a18ecc0 100644
--- a/src/main/java/ai/elimu/web/content/word/WordCreateController.java
+++ b/src/main/java/ai/elimu/web/content/word/WordCreateController.java
@@ -3,7 +3,7 @@
import java.util.Calendar;
import java.util.List;
import java.util.Set;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.EmojiDao;
diff --git a/src/main/java/ai/elimu/web/content/word/WordEditController.java b/src/main/java/ai/elimu/web/content/word/WordEditController.java
index b82e594b2..0b6ca760b 100644
--- a/src/main/java/ai/elimu/web/content/word/WordEditController.java
+++ b/src/main/java/ai/elimu/web/content/word/WordEditController.java
@@ -2,7 +2,7 @@
import java.util.Calendar;
import java.util.List;
-import javax.validation.Valid;
+import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.AudioDao;
From ed42a4cb598e6a3f291f544d278705ef0453e484 Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 11:10:44 +0700
Subject: [PATCH 02/10] javax.servlet --> jakarta.servlet
refs #1691
---
pom.xml | 26 +++++++++----------
.../LetterAssessmentEventsRestController.java | 2 +-
.../LetterLearningEventsRestController.java | 2 +-
...tterSoundLearningEventsRestController.java | 2 +-
...StoryBookLearningEventsRestController.java | 2 +-
.../WordAssessmentEventsRestController.java | 2 +-
.../WordLearningEventsRestController.java | 2 +-
.../ApplicationsRestController.java | 2 +-
.../rest/v2/content/AudiosRestController.java | 2 +-
.../rest/v2/content/EmojisRestController.java | 2 +-
.../rest/v2/content/ImagesRestController.java | 2 +-
.../rest/v2/content/VideosRestController.java | 2 +-
.../java/ai/elimu/web/SignOnController.java | 2 +-
.../ai/elimu/web/SignOnControllerDiscord.java | 2 +-
.../ai/elimu/web/SignOnControllerGitHub.java | 2 +-
.../elimu/web/SignOnControllerSelenium.java | 2 +-
.../ai/elimu/web/SignOnControllerWeb3.java | 4 +--
.../ApplicationCreateController.java | 2 +-
.../ApplicationEditController.java | 2 +-
.../ApplicationVersionCreateController.java | 6 ++---
...yBookLearningEventCsvExportController.java | 2 +-
.../web/content/MainContentController.java | 4 +--
.../contributor/AddEmailController.java | 2 +-
.../ContributorCsvExportController.java | 2 +-
.../contributor/EditMotivationController.java | 2 +-
.../contributor/EditNameController.java | 2 +-
.../emoji/EmojiCsvExportController.java | 2 +-
.../content/emoji/EmojiEditController.java | 2 +-
.../letter/LetterCreateController.java | 4 +--
.../letter/LetterCsvExportController.java | 2 +-
.../content/letter/LetterEditController.java | 4 +--
.../LetterSoundCreateController.java | 4 +--
.../LetterSoundCsvExportController.java | 2 +-
.../LetterSoundEditController.java | 4 +--
.../LetterSoundPeerReviewsController.java | 2 +-
.../audio/AudioCreateController.java | 6 ++---
.../audio/AudioCsvExportController.java | 2 +-
.../multimedia/audio/AudioEditController.java | 6 ++---
.../image/ImageCreateController.java | 6 ++---
.../image/ImageCsvExportController.java | 2 +-
.../multimedia/image/ImageEditController.java | 6 ++---
.../video/VideoCreateController.java | 4 +--
.../video/VideoCsvExportController.java | 2 +-
.../multimedia/video/VideoEditController.java | 4 +--
.../number/NumberCreateController.java | 4 +--
.../number/NumberCsvExportController.java | 2 +-
.../content/number/NumberEditController.java | 4 +--
.../number/NumberPeerReviewsController.java | 2 +-
.../AudioPeerReviewEventCreateController.java | 2 +-
...rSoundPeerReviewEventCreateController.java | 2 +-
...NumberPeerReviewEventCreateController.java | 2 +-
...ryBookPeerReviewEventCreateController.java | 2 +-
.../WordPeerReviewEventCreateController.java | 2 +-
.../content/sound/SoundCreateController.java | 4 +--
.../sound/SoundCsvExportController.java | 2 +-
.../content/sound/SoundEditController.java | 4 +--
.../storybook/StoryBookCreateController.java | 4 +--
.../StoryBookCreateFromEPubController.java | 6 ++---
.../StoryBookCsvExportController.java | 2 +-
.../storybook/StoryBookEditController.java | 4 +--
.../StoryBookPeerReviewsController.java | 2 +-
.../StoryBookChapterCreateController.java | 2 +-
.../StoryBookChapterDeleteController.java | 2 +-
.../StoryBookParagraphCreateController.java | 4 +--
.../StoryBookParagraphDeleteController.java | 2 +-
.../StoryBookParagraphEditController.java | 4 +--
.../syllable/SyllableCsvExportController.java | 2 +-
.../content/word/WordCreateController.java | 4 +--
.../content/word/WordCsvExportController.java | 2 +-
.../web/content/word/WordEditController.java | 4 +--
.../word/WordPeerReviewsController.java | 2 +-
.../EnvironmentContextLoaderListener.java | 6 ++---
.../ai/elimu/web/download/ApkController.java | 4 +--
.../elimu/web/download/AudioController.java | 2 +-
.../elimu/web/download/ImageController.java | 2 +-
.../elimu/web/download/VideoController.java | 2 +-
.../CustomSimpleMappingExceptionResolver.java | 2 +-
src/main/java/ai/elimu/web/tags/AsideTag.java | 4 +--
.../java/ai/elimu/web/tags/BannerTag.java | 4 +--
.../java/ai/elimu/web/tags/GetAsideTag.java | 6 ++---
.../java/ai/elimu/web/tags/GetBannerTag.java | 6 ++---
.../java/ai/elimu/web/tags/GetSectionTag.java | 6 ++---
.../java/ai/elimu/web/tags/GetTitleTag.java | 6 ++---
.../java/ai/elimu/web/tags/SectionTag.java | 4 +--
src/main/java/ai/elimu/web/tags/TitleTag.java | 4 +--
85 files changed, 142 insertions(+), 142 deletions(-)
diff --git a/pom.xml b/pom.xml
index 139f1564f..0b5bc0748 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
2.0.73
5.6.15.Final
10.0.21
- 5.3.18
+ 6.0.0
5.6.2
3.1.2
@@ -499,12 +499,6 @@
2.2
-
- javax.servlet
- jstl
- 1.2
-
-
org.bitbucket.ijabz
@@ -534,17 +528,23 @@
1.4
+
+ jakarta.servlet.jsp.jstl
+ jakarta.servlet.jsp.jstl-api
+ 2.0.0
+
+
- javax.servlet
- javax.servlet-api
- 4.0.1
+ jakarta.servlet
+ jakarta.servlet-api
+ 5.0.0
provided
- javax.servlet.jsp
- javax.servlet.jsp-api
- 2.3.3
+ jakarta.servlet.jsp
+ jakarta.servlet.jsp-api
+ 3.0.0
provided
diff --git a/src/main/java/ai/elimu/rest/v2/analytics/LetterAssessmentEventsRestController.java b/src/main/java/ai/elimu/rest/v2/analytics/LetterAssessmentEventsRestController.java
index 73f1f9957..f861ecb66 100644
--- a/src/main/java/ai/elimu/rest/v2/analytics/LetterAssessmentEventsRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/analytics/LetterAssessmentEventsRestController.java
@@ -11,7 +11,7 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
diff --git a/src/main/java/ai/elimu/rest/v2/analytics/LetterLearningEventsRestController.java b/src/main/java/ai/elimu/rest/v2/analytics/LetterLearningEventsRestController.java
index a0e786dee..578f88744 100644
--- a/src/main/java/ai/elimu/rest/v2/analytics/LetterLearningEventsRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/analytics/LetterLearningEventsRestController.java
@@ -17,7 +17,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Calendar;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
diff --git a/src/main/java/ai/elimu/rest/v2/analytics/LetterSoundLearningEventsRestController.java b/src/main/java/ai/elimu/rest/v2/analytics/LetterSoundLearningEventsRestController.java
index 3a47e89cd..6630c8204 100644
--- a/src/main/java/ai/elimu/rest/v2/analytics/LetterSoundLearningEventsRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/analytics/LetterSoundLearningEventsRestController.java
@@ -3,7 +3,7 @@
import java.io.File;
import java.io.IOException;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/rest/v2/analytics/StoryBookLearningEventsRestController.java b/src/main/java/ai/elimu/rest/v2/analytics/StoryBookLearningEventsRestController.java
index 12c569176..1829f7485 100644
--- a/src/main/java/ai/elimu/rest/v2/analytics/StoryBookLearningEventsRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/analytics/StoryBookLearningEventsRestController.java
@@ -17,7 +17,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Calendar;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
diff --git a/src/main/java/ai/elimu/rest/v2/analytics/WordAssessmentEventsRestController.java b/src/main/java/ai/elimu/rest/v2/analytics/WordAssessmentEventsRestController.java
index 4b2ee7968..580e2b1d2 100644
--- a/src/main/java/ai/elimu/rest/v2/analytics/WordAssessmentEventsRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/analytics/WordAssessmentEventsRestController.java
@@ -11,7 +11,7 @@
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
diff --git a/src/main/java/ai/elimu/rest/v2/analytics/WordLearningEventsRestController.java b/src/main/java/ai/elimu/rest/v2/analytics/WordLearningEventsRestController.java
index ed80e7b1f..63c070c68 100644
--- a/src/main/java/ai/elimu/rest/v2/analytics/WordLearningEventsRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/analytics/WordLearningEventsRestController.java
@@ -17,7 +17,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Calendar;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVParser;
import org.apache.commons.csv.CSVRecord;
diff --git a/src/main/java/ai/elimu/rest/v2/applications/ApplicationsRestController.java b/src/main/java/ai/elimu/rest/v2/applications/ApplicationsRestController.java
index f17029e5c..4ab4d72e9 100644
--- a/src/main/java/ai/elimu/rest/v2/applications/ApplicationsRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/applications/ApplicationsRestController.java
@@ -10,7 +10,7 @@
import com.google.gson.Gson;
import java.util.ArrayList;
import java.util.List;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.json.JSONArray;
diff --git a/src/main/java/ai/elimu/rest/v2/content/AudiosRestController.java b/src/main/java/ai/elimu/rest/v2/content/AudiosRestController.java
index 05f6e1e95..bf7d8bf97 100644
--- a/src/main/java/ai/elimu/rest/v2/content/AudiosRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/content/AudiosRestController.java
@@ -5,7 +5,7 @@
import ai.elimu.model.v2.gson.content.AudioGson;
import ai.elimu.rest.v2.JpaToGsonConverter;
import com.google.gson.Gson;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.json.JSONArray;
diff --git a/src/main/java/ai/elimu/rest/v2/content/EmojisRestController.java b/src/main/java/ai/elimu/rest/v2/content/EmojisRestController.java
index 5525a8b2c..1be12c60a 100644
--- a/src/main/java/ai/elimu/rest/v2/content/EmojisRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/content/EmojisRestController.java
@@ -5,7 +5,7 @@
import ai.elimu.model.v2.gson.content.EmojiGson;
import ai.elimu.rest.v2.JpaToGsonConverter;
import com.google.gson.Gson;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.json.JSONArray;
diff --git a/src/main/java/ai/elimu/rest/v2/content/ImagesRestController.java b/src/main/java/ai/elimu/rest/v2/content/ImagesRestController.java
index 5bc5b3221..ef2dc1b3c 100644
--- a/src/main/java/ai/elimu/rest/v2/content/ImagesRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/content/ImagesRestController.java
@@ -5,7 +5,7 @@
import ai.elimu.model.v2.gson.content.ImageGson;
import ai.elimu.rest.v2.JpaToGsonConverter;
import com.google.gson.Gson;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.json.JSONArray;
diff --git a/src/main/java/ai/elimu/rest/v2/content/VideosRestController.java b/src/main/java/ai/elimu/rest/v2/content/VideosRestController.java
index e98e608a1..0f2c4f49d 100644
--- a/src/main/java/ai/elimu/rest/v2/content/VideosRestController.java
+++ b/src/main/java/ai/elimu/rest/v2/content/VideosRestController.java
@@ -5,7 +5,7 @@
import ai.elimu.model.v2.gson.content.VideoGson;
import ai.elimu.rest.v2.JpaToGsonConverter;
import com.google.gson.Gson;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.json.JSONArray;
diff --git a/src/main/java/ai/elimu/web/SignOnController.java b/src/main/java/ai/elimu/web/SignOnController.java
index eb069cdc4..f864b5bce 100644
--- a/src/main/java/ai/elimu/web/SignOnController.java
+++ b/src/main/java/ai/elimu/web/SignOnController.java
@@ -3,7 +3,7 @@
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashSet;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ContributorDao;
diff --git a/src/main/java/ai/elimu/web/SignOnControllerDiscord.java b/src/main/java/ai/elimu/web/SignOnControllerDiscord.java
index 98de350ce..fe11b1326 100644
--- a/src/main/java/ai/elimu/web/SignOnControllerDiscord.java
+++ b/src/main/java/ai/elimu/web/SignOnControllerDiscord.java
@@ -2,7 +2,7 @@
import java.io.IOException;
import java.util.Calendar;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.Logger;
import org.json.JSONObject;
import ai.elimu.dao.ContributorDao;
diff --git a/src/main/java/ai/elimu/web/SignOnControllerGitHub.java b/src/main/java/ai/elimu/web/SignOnControllerGitHub.java
index 5ec6dd2c8..32fcca401 100644
--- a/src/main/java/ai/elimu/web/SignOnControllerGitHub.java
+++ b/src/main/java/ai/elimu/web/SignOnControllerGitHub.java
@@ -2,7 +2,7 @@
import java.io.IOException;
import java.util.Calendar;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.Logger;
import org.json.JSONArray;
import org.json.JSONObject;
diff --git a/src/main/java/ai/elimu/web/SignOnControllerSelenium.java b/src/main/java/ai/elimu/web/SignOnControllerSelenium.java
index 1f2b8dab4..a67d1e903 100644
--- a/src/main/java/ai/elimu/web/SignOnControllerSelenium.java
+++ b/src/main/java/ai/elimu/web/SignOnControllerSelenium.java
@@ -4,7 +4,7 @@
import java.util.Calendar;
import java.util.HashSet;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ContributorDao;
diff --git a/src/main/java/ai/elimu/web/SignOnControllerWeb3.java b/src/main/java/ai/elimu/web/SignOnControllerWeb3.java
index 7ab7f7d1d..99f11f6f8 100644
--- a/src/main/java/ai/elimu/web/SignOnControllerWeb3.java
+++ b/src/main/java/ai/elimu/web/SignOnControllerWeb3.java
@@ -1,7 +1,7 @@
package ai.elimu.web;
import java.io.IOException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ContributorDao;
import ai.elimu.model.contributor.Contributor;
@@ -10,7 +10,7 @@
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashSet;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java b/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java
index 9925ac547..bb6a716df 100644
--- a/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java
+++ b/src/main/java/ai/elimu/web/admin/application/ApplicationCreateController.java
@@ -1,6 +1,6 @@
package ai.elimu.web.admin.application;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java b/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java
index ec9dad530..c1917a782 100644
--- a/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java
+++ b/src/main/java/ai/elimu/web/admin/application/ApplicationEditController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.admin.application;
import java.util.List;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ApplicationDao;
diff --git a/src/main/java/ai/elimu/web/admin/application_version/ApplicationVersionCreateController.java b/src/main/java/ai/elimu/web/admin/application_version/ApplicationVersionCreateController.java
index b36e629d1..278e985b6 100644
--- a/src/main/java/ai/elimu/web/admin/application_version/ApplicationVersionCreateController.java
+++ b/src/main/java/ai/elimu/web/admin/application_version/ApplicationVersionCreateController.java
@@ -3,9 +3,9 @@
import java.io.IOException;
import java.util.Calendar;
import java.util.List;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ApplicationDao;
diff --git a/src/main/java/ai/elimu/web/analytics/StoryBookLearningEventCsvExportController.java b/src/main/java/ai/elimu/web/analytics/StoryBookLearningEventCsvExportController.java
index 37e342d7e..870a2e345 100644
--- a/src/main/java/ai/elimu/web/analytics/StoryBookLearningEventCsvExportController.java
+++ b/src/main/java/ai/elimu/web/analytics/StoryBookLearningEventCsvExportController.java
@@ -14,7 +14,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/MainContentController.java b/src/main/java/ai/elimu/web/content/MainContentController.java
index 8147a8de1..79c8dafbc 100644
--- a/src/main/java/ai/elimu/web/content/MainContentController.java
+++ b/src/main/java/ai/elimu/web/content/MainContentController.java
@@ -3,8 +3,8 @@
import ai.elimu.dao.AudioContributionEventDao;
import java.security.Principal;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/contributor/AddEmailController.java b/src/main/java/ai/elimu/web/content/contributor/AddEmailController.java
index 92cf3b48f..a1f1e5784 100644
--- a/src/main/java/ai/elimu/web/content/contributor/AddEmailController.java
+++ b/src/main/java/ai/elimu/web/content/contributor/AddEmailController.java
@@ -1,6 +1,6 @@
package ai.elimu.web.content.contributor;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.validator.EmailValidator;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/contributor/ContributorCsvExportController.java b/src/main/java/ai/elimu/web/content/contributor/ContributorCsvExportController.java
index 7f69ee84a..452caff13 100644
--- a/src/main/java/ai/elimu/web/content/contributor/ContributorCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/contributor/ContributorCsvExportController.java
@@ -21,7 +21,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/contributor/EditMotivationController.java b/src/main/java/ai/elimu/web/content/contributor/EditMotivationController.java
index 02ec74ff1..64d78e9e1 100644
--- a/src/main/java/ai/elimu/web/content/contributor/EditMotivationController.java
+++ b/src/main/java/ai/elimu/web/content/contributor/EditMotivationController.java
@@ -1,7 +1,7 @@
package ai.elimu.web.content.contributor;
import java.util.Calendar;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/contributor/EditNameController.java b/src/main/java/ai/elimu/web/content/contributor/EditNameController.java
index 5de368b86..f5cd236fc 100644
--- a/src/main/java/ai/elimu/web/content/contributor/EditNameController.java
+++ b/src/main/java/ai/elimu/web/content/contributor/EditNameController.java
@@ -1,6 +1,6 @@
package ai.elimu.web.content.contributor;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.Logger;
import ai.elimu.dao.ContributorDao;
diff --git a/src/main/java/ai/elimu/web/content/emoji/EmojiCsvExportController.java b/src/main/java/ai/elimu/web/content/emoji/EmojiCsvExportController.java
index 8acd1e4f1..92dc0fa00 100644
--- a/src/main/java/ai/elimu/web/content/emoji/EmojiCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/emoji/EmojiCsvExportController.java
@@ -13,7 +13,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java b/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java
index 811b5a6c1..e46b6ccc1 100644
--- a/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java
+++ b/src/main/java/ai/elimu/web/content/emoji/EmojiEditController.java
@@ -13,7 +13,7 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java b/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java
index a4a22d906..b18910a7f 100644
--- a/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java
+++ b/src/main/java/ai/elimu/web/content/letter/LetterCreateController.java
@@ -11,8 +11,8 @@
import ai.elimu.model.contributor.LetterContributionEvent;
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/letter/LetterCsvExportController.java b/src/main/java/ai/elimu/web/content/letter/LetterCsvExportController.java
index 76f5fead7..ead29c397 100644
--- a/src/main/java/ai/elimu/web/content/letter/LetterCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/letter/LetterCsvExportController.java
@@ -13,7 +13,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/letter/LetterEditController.java b/src/main/java/ai/elimu/web/content/letter/LetterEditController.java
index 555256664..2787b5cc5 100644
--- a/src/main/java/ai/elimu/web/content/letter/LetterEditController.java
+++ b/src/main/java/ai/elimu/web/content/letter/LetterEditController.java
@@ -11,8 +11,8 @@
import ai.elimu.model.contributor.LetterContributionEvent;
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java
index 7d8ef786b..962515e86 100644
--- a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java
+++ b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCreateController.java
@@ -23,8 +23,8 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import ai.elimu.dao.SoundDao;
diff --git a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCsvExportController.java b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCsvExportController.java
index 14f5a0c30..47c8fc6e9 100644
--- a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundCsvExportController.java
@@ -13,7 +13,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java
index bef59e922..937b0a04e 100644
--- a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java
+++ b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundEditController.java
@@ -25,8 +25,8 @@
import ai.elimu.model.contributor.Contributor;
import ai.elimu.util.DiscordHelper;
import java.util.Calendar;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.stream.Collectors;
diff --git a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundPeerReviewsController.java b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundPeerReviewsController.java
index b40428af7..1fb15672a 100644
--- a/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundPeerReviewsController.java
+++ b/src/main/java/ai/elimu/web/content/letter_sound/LetterSoundPeerReviewsController.java
@@ -9,7 +9,7 @@
import ai.elimu.model.contributor.LetterSoundPeerReviewEvent;
import java.util.ArrayList;
import java.util.List;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCreateController.java b/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCreateController.java
index 20e264bd8..0e07dc72f 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCreateController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCreateController.java
@@ -3,8 +3,8 @@
import ai.elimu.dao.AudioContributionEventDao;
import java.io.IOException;
import java.util.Calendar;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
@@ -29,7 +29,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCsvExportController.java b/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCsvExportController.java
index f05ab48d3..351e71f39 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/audio/AudioCsvExportController.java
@@ -11,7 +11,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.logging.log4j.LogManager;
import org.springframework.web.bind.annotation.RequestMethod;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/audio/AudioEditController.java b/src/main/java/ai/elimu/web/content/multimedia/audio/AudioEditController.java
index 2e58490dc..ed3b4817f 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/audio/AudioEditController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/audio/AudioEditController.java
@@ -5,8 +5,8 @@
import java.util.Calendar;
import java.util.Iterator;
import java.util.Set;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
@@ -35,7 +35,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/image/ImageCreateController.java b/src/main/java/ai/elimu/web/content/multimedia/image/ImageCreateController.java
index 95d68a940..5cf0a2aa0 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/image/ImageCreateController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/image/ImageCreateController.java
@@ -5,8 +5,8 @@
import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
@@ -25,7 +25,7 @@
import ai.elimu.util.ImageHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Arrays;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/image/ImageCsvExportController.java b/src/main/java/ai/elimu/web/content/multimedia/image/ImageCsvExportController.java
index 095c04a5e..b6f4371f5 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/image/ImageCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/image/ImageCsvExportController.java
@@ -12,7 +12,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/image/ImageEditController.java b/src/main/java/ai/elimu/web/content/multimedia/image/ImageEditController.java
index a48592383..36dbc774d 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/image/ImageEditController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/image/ImageEditController.java
@@ -4,8 +4,8 @@
import java.util.Calendar;
import java.util.Iterator;
import java.util.Set;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
@@ -35,7 +35,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/video/VideoCreateController.java b/src/main/java/ai/elimu/web/content/multimedia/video/VideoCreateController.java
index c843b6e42..1e27cf470 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/video/VideoCreateController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/video/VideoCreateController.java
@@ -2,8 +2,8 @@
import java.io.IOException;
import java.util.Calendar;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/video/VideoCsvExportController.java b/src/main/java/ai/elimu/web/content/multimedia/video/VideoCsvExportController.java
index e3f4ad2ee..9c91ac6f2 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/video/VideoCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/video/VideoCsvExportController.java
@@ -11,7 +11,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.logging.log4j.LogManager;
import org.springframework.web.bind.annotation.RequestMethod;
diff --git a/src/main/java/ai/elimu/web/content/multimedia/video/VideoEditController.java b/src/main/java/ai/elimu/web/content/multimedia/video/VideoEditController.java
index c4d9af53c..8fa6a9c82 100644
--- a/src/main/java/ai/elimu/web/content/multimedia/video/VideoEditController.java
+++ b/src/main/java/ai/elimu/web/content/multimedia/video/VideoEditController.java
@@ -5,8 +5,8 @@
import java.util.Calendar;
import java.util.Iterator;
import java.util.Set;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/number/NumberCreateController.java b/src/main/java/ai/elimu/web/content/number/NumberCreateController.java
index 16447c680..67295d45f 100644
--- a/src/main/java/ai/elimu/web/content/number/NumberCreateController.java
+++ b/src/main/java/ai/elimu/web/content/number/NumberCreateController.java
@@ -18,8 +18,8 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.HashMap;
import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/number/NumberCsvExportController.java b/src/main/java/ai/elimu/web/content/number/NumberCsvExportController.java
index 754e06cf1..b49d1d24c 100644
--- a/src/main/java/ai/elimu/web/content/number/NumberCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/number/NumberCsvExportController.java
@@ -13,7 +13,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/number/NumberEditController.java b/src/main/java/ai/elimu/web/content/number/NumberEditController.java
index c7dfe9c07..74d573a97 100644
--- a/src/main/java/ai/elimu/web/content/number/NumberEditController.java
+++ b/src/main/java/ai/elimu/web/content/number/NumberEditController.java
@@ -19,8 +19,8 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.HashMap;
import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/number/NumberPeerReviewsController.java b/src/main/java/ai/elimu/web/content/number/NumberPeerReviewsController.java
index eb84eb6d4..4b57ecb0f 100644
--- a/src/main/java/ai/elimu/web/content/number/NumberPeerReviewsController.java
+++ b/src/main/java/ai/elimu/web/content/number/NumberPeerReviewsController.java
@@ -9,7 +9,7 @@
import ai.elimu.model.contributor.NumberPeerReviewEvent;
import java.util.ArrayList;
import java.util.List;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/peer_review/AudioPeerReviewEventCreateController.java b/src/main/java/ai/elimu/web/content/peer_review/AudioPeerReviewEventCreateController.java
index 1126afaca..e54274cdf 100644
--- a/src/main/java/ai/elimu/web/content/peer_review/AudioPeerReviewEventCreateController.java
+++ b/src/main/java/ai/elimu/web/content/peer_review/AudioPeerReviewEventCreateController.java
@@ -12,7 +12,7 @@
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/peer_review/LetterSoundPeerReviewEventCreateController.java b/src/main/java/ai/elimu/web/content/peer_review/LetterSoundPeerReviewEventCreateController.java
index b39eddbf9..2bae82dc2 100644
--- a/src/main/java/ai/elimu/web/content/peer_review/LetterSoundPeerReviewEventCreateController.java
+++ b/src/main/java/ai/elimu/web/content/peer_review/LetterSoundPeerReviewEventCreateController.java
@@ -14,7 +14,7 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
import java.util.stream.Collectors;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/peer_review/NumberPeerReviewEventCreateController.java b/src/main/java/ai/elimu/web/content/peer_review/NumberPeerReviewEventCreateController.java
index 4f3a946db..663aae979 100644
--- a/src/main/java/ai/elimu/web/content/peer_review/NumberPeerReviewEventCreateController.java
+++ b/src/main/java/ai/elimu/web/content/peer_review/NumberPeerReviewEventCreateController.java
@@ -12,7 +12,7 @@
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/peer_review/StoryBookPeerReviewEventCreateController.java b/src/main/java/ai/elimu/web/content/peer_review/StoryBookPeerReviewEventCreateController.java
index b31903398..ca0377c42 100644
--- a/src/main/java/ai/elimu/web/content/peer_review/StoryBookPeerReviewEventCreateController.java
+++ b/src/main/java/ai/elimu/web/content/peer_review/StoryBookPeerReviewEventCreateController.java
@@ -12,7 +12,7 @@
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/peer_review/WordPeerReviewEventCreateController.java b/src/main/java/ai/elimu/web/content/peer_review/WordPeerReviewEventCreateController.java
index 556894fd1..06ad64c58 100644
--- a/src/main/java/ai/elimu/web/content/peer_review/WordPeerReviewEventCreateController.java
+++ b/src/main/java/ai/elimu/web/content/peer_review/WordPeerReviewEventCreateController.java
@@ -12,7 +12,7 @@
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java b/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java
index 5f95315d1..b53602347 100644
--- a/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java
+++ b/src/main/java/ai/elimu/web/content/sound/SoundCreateController.java
@@ -2,7 +2,7 @@
import ai.elimu.dao.SoundContributionEventDao;
import java.util.Calendar;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import org.apache.commons.lang.StringUtils;
@@ -21,7 +21,7 @@
import ai.elimu.model.contributor.SoundContributionEvent;
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
@Controller
@RequestMapping("/content/sound/create")
diff --git a/src/main/java/ai/elimu/web/content/sound/SoundCsvExportController.java b/src/main/java/ai/elimu/web/content/sound/SoundCsvExportController.java
index 9a67d2b1c..edb666809 100644
--- a/src/main/java/ai/elimu/web/content/sound/SoundCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/sound/SoundCsvExportController.java
@@ -11,7 +11,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/sound/SoundEditController.java b/src/main/java/ai/elimu/web/content/sound/SoundEditController.java
index 9fc8fd5aa..9aacd573f 100644
--- a/src/main/java/ai/elimu/web/content/sound/SoundEditController.java
+++ b/src/main/java/ai/elimu/web/content/sound/SoundEditController.java
@@ -3,7 +3,7 @@
import ai.elimu.dao.LetterSoundDao;
import ai.elimu.dao.SoundContributionEventDao;
import java.util.Calendar;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import org.apache.commons.lang.StringUtils;
@@ -23,7 +23,7 @@
import ai.elimu.model.contributor.SoundContributionEvent;
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
@Controller
@RequestMapping("/content/sound/edit")
diff --git a/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java b/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java
index dd5651104..a2b8e2aee 100644
--- a/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateController.java
@@ -16,8 +16,8 @@
import ai.elimu.model.v2.enums.ReadingLevel;
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateFromEPubController.java b/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateFromEPubController.java
index 8ae19115b..fa435e1c5 100644
--- a/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateFromEPubController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/StoryBookCreateFromEPubController.java
@@ -7,9 +7,9 @@
import ai.elimu.dao.StoryBookDao;
import ai.elimu.dao.StoryBookParagraphDao;
import java.io.IOException;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.Logger;
import ai.elimu.model.content.StoryBook;
diff --git a/src/main/java/ai/elimu/web/content/storybook/StoryBookCsvExportController.java b/src/main/java/ai/elimu/web/content/storybook/StoryBookCsvExportController.java
index ccf509e36..c40c677dd 100644
--- a/src/main/java/ai/elimu/web/content/storybook/StoryBookCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/StoryBookCsvExportController.java
@@ -22,7 +22,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java b/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java
index 4df0160e6..7ca808455 100644
--- a/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/StoryBookEditController.java
@@ -4,7 +4,7 @@
import java.util.Calendar;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.Valid;
import org.apache.logging.log4j.Logger;
@@ -36,7 +36,7 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.ArrayList;
import java.util.HashMap;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/storybook/StoryBookPeerReviewsController.java b/src/main/java/ai/elimu/web/content/storybook/StoryBookPeerReviewsController.java
index b3e7a70b5..538e80796 100644
--- a/src/main/java/ai/elimu/web/content/storybook/StoryBookPeerReviewsController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/StoryBookPeerReviewsController.java
@@ -9,7 +9,7 @@
import ai.elimu.model.contributor.StoryBookPeerReviewEvent;
import java.util.ArrayList;
import java.util.List;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java b/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java
index d91d106b0..736d8483f 100644
--- a/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterCreateController.java
@@ -14,7 +14,7 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
import java.util.List;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterDeleteController.java b/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterDeleteController.java
index 6cdc9143d..6d3d57780 100644
--- a/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterDeleteController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/chapter/StoryBookChapterDeleteController.java
@@ -22,7 +22,7 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
import java.util.List;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java
index 40c644f0a..e66a85f0c 100644
--- a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphCreateController.java
@@ -17,8 +17,8 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
import java.util.List;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphDeleteController.java b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphDeleteController.java
index 1bac26f31..53142271d 100644
--- a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphDeleteController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphDeleteController.java
@@ -17,7 +17,7 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
import java.util.List;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
diff --git a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java
index f8d8d30e5..740847b5f 100644
--- a/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java
+++ b/src/main/java/ai/elimu/web/content/storybook/paragraph/StoryBookParagraphEditController.java
@@ -13,8 +13,8 @@
import ai.elimu.util.DiscordHelper;
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.util.Calendar;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/syllable/SyllableCsvExportController.java b/src/main/java/ai/elimu/web/content/syllable/SyllableCsvExportController.java
index d2922c4c9..67b883336 100644
--- a/src/main/java/ai/elimu/web/content/syllable/SyllableCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/syllable/SyllableCsvExportController.java
@@ -13,7 +13,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.logging.log4j.LogManager;
import org.springframework.web.bind.annotation.RequestMethod;
diff --git a/src/main/java/ai/elimu/web/content/word/WordCreateController.java b/src/main/java/ai/elimu/web/content/word/WordCreateController.java
index b1a18ecc0..5756ee3bd 100644
--- a/src/main/java/ai/elimu/web/content/word/WordCreateController.java
+++ b/src/main/java/ai/elimu/web/content/word/WordCreateController.java
@@ -25,8 +25,8 @@
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/word/WordCsvExportController.java b/src/main/java/ai/elimu/web/content/word/WordCsvExportController.java
index 07ee8582c..7a1111e73 100644
--- a/src/main/java/ai/elimu/web/content/word/WordCsvExportController.java
+++ b/src/main/java/ai/elimu/web/content/word/WordCsvExportController.java
@@ -15,7 +15,7 @@
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import org.apache.commons.csv.CSVFormat;
import org.apache.commons.csv.CSVPrinter;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/content/word/WordEditController.java b/src/main/java/ai/elimu/web/content/word/WordEditController.java
index 0b6ca760b..faee76bb6 100644
--- a/src/main/java/ai/elimu/web/content/word/WordEditController.java
+++ b/src/main/java/ai/elimu/web/content/word/WordEditController.java
@@ -29,8 +29,8 @@
import java.util.HashMap;
import java.util.Map;
import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.springframework.beans.factory.annotation.Autowired;
diff --git a/src/main/java/ai/elimu/web/content/word/WordPeerReviewsController.java b/src/main/java/ai/elimu/web/content/word/WordPeerReviewsController.java
index 1f3bff4f9..24319d631 100644
--- a/src/main/java/ai/elimu/web/content/word/WordPeerReviewsController.java
+++ b/src/main/java/ai/elimu/web/content/word/WordPeerReviewsController.java
@@ -13,7 +13,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/context/EnvironmentContextLoaderListener.java b/src/main/java/ai/elimu/web/context/EnvironmentContextLoaderListener.java
index fe3363d32..a5a99bef4 100644
--- a/src/main/java/ai/elimu/web/context/EnvironmentContextLoaderListener.java
+++ b/src/main/java/ai/elimu/web/context/EnvironmentContextLoaderListener.java
@@ -5,8 +5,8 @@
import java.io.InputStream;
import java.util.Properties;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletContextEvent;
import org.apache.commons.lang.StringUtils;
import org.apache.logging.log4j.Logger;
@@ -24,7 +24,7 @@
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
- * Use {@link WebApplicationContextUtils#getWebApplicationContext(javax.servlet.ServletContext)}
+ * Use {@link WebApplicationContextUtils#getWebApplicationContext(jakarta.servlet.ServletContext)}
* to access this listener anywhere in the web application, outside of the framework.
*/
public class EnvironmentContextLoaderListener extends ContextLoaderListener {
diff --git a/src/main/java/ai/elimu/web/download/ApkController.java b/src/main/java/ai/elimu/web/download/ApkController.java
index 712221d9c..4ba5d93d8 100644
--- a/src/main/java/ai/elimu/web/download/ApkController.java
+++ b/src/main/java/ai/elimu/web/download/ApkController.java
@@ -3,7 +3,7 @@
import java.io.EOFException;
import java.io.IOException;
import java.io.OutputStream;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,7 +11,7 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import ai.elimu.dao.ApplicationDao;
import ai.elimu.dao.ApplicationVersionDao;
import ai.elimu.model.admin.Application;
diff --git a/src/main/java/ai/elimu/web/download/AudioController.java b/src/main/java/ai/elimu/web/download/AudioController.java
index 1a95e1c30..9db655d12 100644
--- a/src/main/java/ai/elimu/web/download/AudioController.java
+++ b/src/main/java/ai/elimu/web/download/AudioController.java
@@ -10,7 +10,7 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import ai.elimu.dao.AudioDao;
import ai.elimu.model.content.multimedia.Audio;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/download/ImageController.java b/src/main/java/ai/elimu/web/download/ImageController.java
index d35710a8c..6b7eafebe 100644
--- a/src/main/java/ai/elimu/web/download/ImageController.java
+++ b/src/main/java/ai/elimu/web/download/ImageController.java
@@ -10,7 +10,7 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import ai.elimu.dao.ImageDao;
import ai.elimu.model.content.multimedia.Image;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/download/VideoController.java b/src/main/java/ai/elimu/web/download/VideoController.java
index 50a0cdfe0..2a576b8f6 100644
--- a/src/main/java/ai/elimu/web/download/VideoController.java
+++ b/src/main/java/ai/elimu/web/download/VideoController.java
@@ -10,7 +10,7 @@
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
import ai.elimu.dao.VideoDao;
import ai.elimu.model.content.multimedia.Video;
import org.apache.logging.log4j.LogManager;
diff --git a/src/main/java/ai/elimu/web/servlet/CustomSimpleMappingExceptionResolver.java b/src/main/java/ai/elimu/web/servlet/CustomSimpleMappingExceptionResolver.java
index 3182aa84d..88702780a 100644
--- a/src/main/java/ai/elimu/web/servlet/CustomSimpleMappingExceptionResolver.java
+++ b/src/main/java/ai/elimu/web/servlet/CustomSimpleMappingExceptionResolver.java
@@ -1,6 +1,6 @@
package ai.elimu.web.servlet;
-import javax.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequest;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/src/main/java/ai/elimu/web/tags/AsideTag.java b/src/main/java/ai/elimu/web/tags/AsideTag.java
index 0e83749f6..ce11cdcb6 100644
--- a/src/main/java/ai/elimu/web/tags/AsideTag.java
+++ b/src/main/java/ai/elimu/web/tags/AsideTag.java
@@ -1,7 +1,7 @@
package ai.elimu.web.tags;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.BodyTagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.tagext.BodyTagSupport;
/**
* Implementation of the {@code content:aside} tag.
diff --git a/src/main/java/ai/elimu/web/tags/BannerTag.java b/src/main/java/ai/elimu/web/tags/BannerTag.java
index e41466c33..28d7fccb6 100644
--- a/src/main/java/ai/elimu/web/tags/BannerTag.java
+++ b/src/main/java/ai/elimu/web/tags/BannerTag.java
@@ -1,7 +1,7 @@
package ai.elimu.web.tags;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.BodyTagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.tagext.BodyTagSupport;
/**
* Implementation of the {@code content:banner} tag.
diff --git a/src/main/java/ai/elimu/web/tags/GetAsideTag.java b/src/main/java/ai/elimu/web/tags/GetAsideTag.java
index 860926c6e..a3b34df78 100644
--- a/src/main/java/ai/elimu/web/tags/GetAsideTag.java
+++ b/src/main/java/ai/elimu/web/tags/GetAsideTag.java
@@ -2,9 +2,9 @@
import java.io.IOException;
import java.io.Writer;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspTagException;
-import javax.servlet.jsp.tagext.TagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspTagException;
+import jakarta.servlet.jsp.tagext.TagSupport;
/**
* Implementation of the {@code content:getaside} tag.
diff --git a/src/main/java/ai/elimu/web/tags/GetBannerTag.java b/src/main/java/ai/elimu/web/tags/GetBannerTag.java
index e3d688329..2b4c0a766 100644
--- a/src/main/java/ai/elimu/web/tags/GetBannerTag.java
+++ b/src/main/java/ai/elimu/web/tags/GetBannerTag.java
@@ -2,9 +2,9 @@
import java.io.IOException;
import java.io.Writer;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspTagException;
-import javax.servlet.jsp.tagext.TagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspTagException;
+import jakarta.servlet.jsp.tagext.TagSupport;
/**
* Implementation of the {@code content:getbanner} tag.
diff --git a/src/main/java/ai/elimu/web/tags/GetSectionTag.java b/src/main/java/ai/elimu/web/tags/GetSectionTag.java
index 2e0c17f85..cc376d912 100644
--- a/src/main/java/ai/elimu/web/tags/GetSectionTag.java
+++ b/src/main/java/ai/elimu/web/tags/GetSectionTag.java
@@ -2,9 +2,9 @@
import java.io.IOException;
import java.io.Writer;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspTagException;
-import javax.servlet.jsp.tagext.TagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspTagException;
+import jakarta.servlet.jsp.tagext.TagSupport;
/**
* Implementation of the {@code content:getsection} tag.
diff --git a/src/main/java/ai/elimu/web/tags/GetTitleTag.java b/src/main/java/ai/elimu/web/tags/GetTitleTag.java
index 737d9d576..7ad2eb02e 100644
--- a/src/main/java/ai/elimu/web/tags/GetTitleTag.java
+++ b/src/main/java/ai/elimu/web/tags/GetTitleTag.java
@@ -2,9 +2,9 @@
import java.io.IOException;
import java.io.Writer;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspTagException;
-import javax.servlet.jsp.tagext.TagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.JspTagException;
+import jakarta.servlet.jsp.tagext.TagSupport;
/**
* Implementation of the {@code content:gettitle} tag.
diff --git a/src/main/java/ai/elimu/web/tags/SectionTag.java b/src/main/java/ai/elimu/web/tags/SectionTag.java
index ae8231a3e..d33c7aa90 100644
--- a/src/main/java/ai/elimu/web/tags/SectionTag.java
+++ b/src/main/java/ai/elimu/web/tags/SectionTag.java
@@ -1,7 +1,7 @@
package ai.elimu.web.tags;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.BodyTagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.tagext.BodyTagSupport;
/**
* Implementation of the {@code content:section} tag.
diff --git a/src/main/java/ai/elimu/web/tags/TitleTag.java b/src/main/java/ai/elimu/web/tags/TitleTag.java
index d82fbb646..668ccb0e9 100644
--- a/src/main/java/ai/elimu/web/tags/TitleTag.java
+++ b/src/main/java/ai/elimu/web/tags/TitleTag.java
@@ -1,7 +1,7 @@
package ai.elimu.web.tags;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.tagext.BodyTagSupport;
+import jakarta.servlet.jsp.JspException;
+import jakarta.servlet.jsp.tagext.BodyTagSupport;
/**
* Implementation of the {@code content:title} tag.
From ee1cf6050b224d88e447925d519e216e0cb3275d Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 11:17:29 +0700
Subject: [PATCH 03/10] javax.persistence --> jakarta.persistence
refs #1691
---
pom.xml | 6 +++---
.../ai/elimu/dao/jpa/ApplicationDaoJpa.java | 2 +-
.../dao/jpa/ApplicationVersionDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/AudioDaoJpa.java | 2 +-
.../dao/jpa/AudioPeerReviewEventDaoJpa.java | 2 +-
.../ai/elimu/dao/jpa/ContributorDaoJpa.java | 2 +-
.../ai/elimu/dao/jpa/DbMigrationDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/DeviceDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/EmojiDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/GenericDaoJpa.java | 4 ++--
.../java/ai/elimu/dao/jpa/ImageDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/LetterDaoJpa.java | 2 +-
.../dao/jpa/LetterLearningEventDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/NumberDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/SoundDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/StoryBookDaoJpa.java | 2 +-
.../dao/jpa/StoryBookLearningEventDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/SyllableDaoJpa.java | 2 +-
.../java/ai/elimu/dao/jpa/VideoDaoJpa.java | 2 +-
src/main/java/ai/elimu/dao/jpa/WordDaoJpa.java | 4 ++--
.../elimu/dao/jpa/WordLearningEventDaoJpa.java | 2 +-
src/main/java/ai/elimu/model/BaseEntity.java | 8 ++++----
src/main/java/ai/elimu/model/DbMigration.java | 8 ++++----
src/main/java/ai/elimu/model/Device.java | 8 ++++----
.../java/ai/elimu/model/admin/Application.java | 12 ++++++------
.../elimu/model/admin/ApplicationVersion.java | 12 ++++++------
.../elimu/model/analytics/LearningEvent.java | 12 ++++++------
.../model/analytics/LetterLearningEvent.java | 4 ++--
.../analytics/StoryBookLearningEvent.java | 4 ++--
.../model/analytics/WordLearningEvent.java | 4 ++--
.../java/ai/elimu/model/content/Content.java | 10 +++++-----
.../java/ai/elimu/model/content/Emoji.java | 12 ++++++------
.../java/ai/elimu/model/content/Letter.java | 4 ++--
.../ai/elimu/model/content/LetterSound.java | 8 ++++----
.../java/ai/elimu/model/content/Number.java | 8 ++++----
.../java/ai/elimu/model/content/Sound.java | 10 +++++-----
.../java/ai/elimu/model/content/StoryBook.java | 10 +++++-----
.../elimu/model/content/StoryBookChapter.java | 4 ++--
.../model/content/StoryBookParagraph.java | 12 ++++++------
.../java/ai/elimu/model/content/Syllable.java | 8 ++++----
src/main/java/ai/elimu/model/content/Word.java | 14 +++++++-------
.../elimu/model/content/multimedia/Audio.java | 12 ++++++------
.../elimu/model/content/multimedia/Image.java | 10 +++++-----
.../model/content/multimedia/Multimedia.java | 18 +++++++++---------
.../elimu/model/content/multimedia/Video.java | 10 +++++-----
.../contributor/AudioContributionEvent.java | 2 +-
.../contributor/AudioPeerReviewEvent.java | 2 +-
.../model/contributor/ContributionEvent.java | 2 +-
.../elimu/model/contributor/Contributor.java | 16 ++++++++--------
.../contributor/ImageContributionEvent.java | 2 +-
.../contributor/LetterContributionEvent.java | 4 ++--
.../LetterSoundContributionEvent.java | 4 ++--
.../LetterSoundPeerReviewEvent.java | 2 +-
.../contributor/NumberContributionEvent.java | 2 +-
.../contributor/NumberPeerReviewEvent.java | 2 +-
.../model/contributor/PeerReviewEvent.java | 10 +++++-----
.../contributor/SoundContributionEvent.java | 4 ++--
.../StoryBookContributionEvent.java | 6 +++---
.../contributor/StoryBookPeerReviewEvent.java | 4 ++--
.../contributor/WordContributionEvent.java | 4 ++--
.../model/contributor/WordPeerReviewEvent.java | 2 +-
.../web/servlet/CustomDispatcherServlet.java | 2 +-
62 files changed, 171 insertions(+), 171 deletions(-)
diff --git a/pom.xml b/pom.xml
index 0b5bc0748..8594ae6d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -494,9 +494,9 @@
${hibernate.version}
- javax.persistence
- javax.persistence-api
- 2.2
+ jakarta.persistence
+ jakarta.persistence-api
+ 3.0.0
diff --git a/src/main/java/ai/elimu/dao/jpa/ApplicationDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/ApplicationDaoJpa.java
index 2f42f5e80..a201539c0 100644
--- a/src/main/java/ai/elimu/dao/jpa/ApplicationDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/ApplicationDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.ApplicationDao;
import ai.elimu.model.admin.Application;
diff --git a/src/main/java/ai/elimu/dao/jpa/ApplicationVersionDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/ApplicationVersionDaoJpa.java
index 5e9a48b57..8b3820b25 100644
--- a/src/main/java/ai/elimu/dao/jpa/ApplicationVersionDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/ApplicationVersionDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.ApplicationVersionDao;
import ai.elimu.model.admin.Application;
import ai.elimu.model.admin.ApplicationVersion;
diff --git a/src/main/java/ai/elimu/dao/jpa/AudioDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/AudioDaoJpa.java
index 7cf3ef27f..3865056c3 100644
--- a/src/main/java/ai/elimu/dao/jpa/AudioDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/AudioDaoJpa.java
@@ -2,7 +2,7 @@
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.AudioDao;
import ai.elimu.model.content.StoryBookParagraph;
import ai.elimu.model.content.Word;
diff --git a/src/main/java/ai/elimu/dao/jpa/AudioPeerReviewEventDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/AudioPeerReviewEventDaoJpa.java
index de9208b4a..b69fcd033 100644
--- a/src/main/java/ai/elimu/dao/jpa/AudioPeerReviewEventDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/AudioPeerReviewEventDaoJpa.java
@@ -6,7 +6,7 @@
import ai.elimu.model.contributor.AudioPeerReviewEvent;
import ai.elimu.model.contributor.Contributor;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import org.springframework.dao.DataAccessException;
public class AudioPeerReviewEventDaoJpa extends GenericDaoJpa implements AudioPeerReviewEventDao {
diff --git a/src/main/java/ai/elimu/dao/jpa/ContributorDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/ContributorDaoJpa.java
index 098249a03..0b43d5f69 100644
--- a/src/main/java/ai/elimu/dao/jpa/ContributorDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/ContributorDaoJpa.java
@@ -2,7 +2,7 @@
import java.util.Calendar;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.ContributorDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/DbMigrationDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/DbMigrationDaoJpa.java
index 26f28efb0..2d23b7c91 100644
--- a/src/main/java/ai/elimu/dao/jpa/DbMigrationDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/DbMigrationDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.DbMigrationDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/DeviceDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/DeviceDaoJpa.java
index 24974ec5d..b8f7e28af 100644
--- a/src/main/java/ai/elimu/dao/jpa/DeviceDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/DeviceDaoJpa.java
@@ -1,6 +1,6 @@
package ai.elimu.dao.jpa;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.DeviceDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/EmojiDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/EmojiDaoJpa.java
index be58c4aca..57cf62acb 100644
--- a/src/main/java/ai/elimu/dao/jpa/EmojiDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/EmojiDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.EmojiDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/GenericDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/GenericDaoJpa.java
index 9f83fb950..ef908c64d 100644
--- a/src/main/java/ai/elimu/dao/jpa/GenericDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/GenericDaoJpa.java
@@ -4,8 +4,8 @@
import java.lang.reflect.Type;
import java.util.List;
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;
diff --git a/src/main/java/ai/elimu/dao/jpa/ImageDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/ImageDaoJpa.java
index 8c3a5cba7..25a8eb811 100644
--- a/src/main/java/ai/elimu/dao/jpa/ImageDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/ImageDaoJpa.java
@@ -2,7 +2,7 @@
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/LetterDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/LetterDaoJpa.java
index db391ef9e..c27f60ca6 100644
--- a/src/main/java/ai/elimu/dao/jpa/LetterDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/LetterDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.LetterDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/LetterLearningEventDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/LetterLearningEventDaoJpa.java
index f26ff2b27..8b89e9edd 100644
--- a/src/main/java/ai/elimu/dao/jpa/LetterLearningEventDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/LetterLearningEventDaoJpa.java
@@ -5,7 +5,7 @@
import ai.elimu.model.analytics.LetterLearningEvent;
import ai.elimu.model.content.Letter;
import java.util.Calendar;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import org.springframework.dao.DataAccessException;
public class LetterLearningEventDaoJpa extends GenericDaoJpa implements LetterLearningEventDao {
diff --git a/src/main/java/ai/elimu/dao/jpa/NumberDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/NumberDaoJpa.java
index efca11db8..7a401c9f3 100644
--- a/src/main/java/ai/elimu/dao/jpa/NumberDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/NumberDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/SoundDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/SoundDaoJpa.java
index cbd7bb172..28abf04f2 100644
--- a/src/main/java/ai/elimu/dao/jpa/SoundDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/SoundDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.model.content.Sound;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/StoryBookDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/StoryBookDaoJpa.java
index 96fd8d67b..e832bc842 100644
--- a/src/main/java/ai/elimu/dao/jpa/StoryBookDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/StoryBookDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.StoryBookDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/StoryBookLearningEventDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/StoryBookLearningEventDaoJpa.java
index 9729a2bcb..486e64783 100644
--- a/src/main/java/ai/elimu/dao/jpa/StoryBookLearningEventDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/StoryBookLearningEventDaoJpa.java
@@ -6,7 +6,7 @@
import ai.elimu.model.content.StoryBook;
import java.util.Calendar;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import org.springframework.dao.DataAccessException;
public class StoryBookLearningEventDaoJpa extends GenericDaoJpa implements StoryBookLearningEventDao {
diff --git a/src/main/java/ai/elimu/dao/jpa/SyllableDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/SyllableDaoJpa.java
index c3a72e4db..1d243fec9 100644
--- a/src/main/java/ai/elimu/dao/jpa/SyllableDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/SyllableDaoJpa.java
@@ -1,7 +1,7 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.SyllableDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/VideoDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/VideoDaoJpa.java
index 1d0f7cf64..ac738fe50 100644
--- a/src/main/java/ai/elimu/dao/jpa/VideoDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/VideoDaoJpa.java
@@ -2,7 +2,7 @@
import java.util.List;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import ai.elimu.dao.VideoDao;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/WordDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/WordDaoJpa.java
index 23065df71..68eb036c2 100644
--- a/src/main/java/ai/elimu/dao/jpa/WordDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/WordDaoJpa.java
@@ -1,8 +1,8 @@
package ai.elimu.dao.jpa;
import java.util.List;
-import javax.persistence.NoResultException;
-import javax.persistence.Query;
+import jakarta.persistence.NoResultException;
+import jakarta.persistence.Query;
import ai.elimu.model.v2.enums.content.WordType;
import org.springframework.dao.DataAccessException;
diff --git a/src/main/java/ai/elimu/dao/jpa/WordLearningEventDaoJpa.java b/src/main/java/ai/elimu/dao/jpa/WordLearningEventDaoJpa.java
index 96f47db59..3ab64327f 100644
--- a/src/main/java/ai/elimu/dao/jpa/WordLearningEventDaoJpa.java
+++ b/src/main/java/ai/elimu/dao/jpa/WordLearningEventDaoJpa.java
@@ -5,7 +5,7 @@
import ai.elimu.model.analytics.WordLearningEvent;
import ai.elimu.model.content.Word;
import java.util.Calendar;
-import javax.persistence.NoResultException;
+import jakarta.persistence.NoResultException;
import org.springframework.dao.DataAccessException;
public class WordLearningEventDaoJpa extends GenericDaoJpa implements WordLearningEventDao {
diff --git a/src/main/java/ai/elimu/model/BaseEntity.java b/src/main/java/ai/elimu/model/BaseEntity.java
index 437a55a89..c7cb72105 100644
--- a/src/main/java/ai/elimu/model/BaseEntity.java
+++ b/src/main/java/ai/elimu/model/BaseEntity.java
@@ -1,10 +1,10 @@
package ai.elimu.model;
import java.io.Serializable;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.MappedSuperclass;
@MappedSuperclass
public abstract class BaseEntity implements Serializable {
diff --git a/src/main/java/ai/elimu/model/DbMigration.java b/src/main/java/ai/elimu/model/DbMigration.java
index 9a944d461..b632f3abc 100644
--- a/src/main/java/ai/elimu/model/DbMigration.java
+++ b/src/main/java/ai/elimu/model/DbMigration.java
@@ -1,10 +1,10 @@
package ai.elimu.model;
import java.util.Calendar;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/Device.java b/src/main/java/ai/elimu/model/Device.java
index 1a31ca276..eccfd5996 100644
--- a/src/main/java/ai/elimu/model/Device.java
+++ b/src/main/java/ai/elimu/model/Device.java
@@ -1,10 +1,10 @@
package ai.elimu.model;
import java.util.Calendar;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/admin/Application.java b/src/main/java/ai/elimu/model/admin/Application.java
index 6f0785bec..563966779 100644
--- a/src/main/java/ai/elimu/model/admin/Application.java
+++ b/src/main/java/ai/elimu/model/admin/Application.java
@@ -1,12 +1,12 @@
package ai.elimu.model.admin;
import java.util.Set;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.ElementCollection;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
import ai.elimu.model.BaseEntity;
import ai.elimu.model.contributor.Contributor;
diff --git a/src/main/java/ai/elimu/model/admin/ApplicationVersion.java b/src/main/java/ai/elimu/model/admin/ApplicationVersion.java
index 9117de64a..178741937 100644
--- a/src/main/java/ai/elimu/model/admin/ApplicationVersion.java
+++ b/src/main/java/ai/elimu/model/admin/ApplicationVersion.java
@@ -1,12 +1,12 @@
package ai.elimu.model.admin;
import java.util.Calendar;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
import jakarta.validation.constraints.NotNull;
import ai.elimu.model.BaseEntity;
import ai.elimu.model.contributor.Contributor;
diff --git a/src/main/java/ai/elimu/model/analytics/LearningEvent.java b/src/main/java/ai/elimu/model/analytics/LearningEvent.java
index 1518880a7..8ea4fcb22 100644
--- a/src/main/java/ai/elimu/model/analytics/LearningEvent.java
+++ b/src/main/java/ai/elimu/model/analytics/LearningEvent.java
@@ -4,12 +4,12 @@
import ai.elimu.model.admin.Application;
import ai.elimu.model.v2.enums.analytics.LearningEventType;
import java.util.Calendar;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.ManyToOne;
-import javax.persistence.MappedSuperclass;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.MappedSuperclass;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
import jakarta.validation.constraints.NotNull;
@MappedSuperclass
diff --git a/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java b/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java
index 458d1f02e..9ecc55470 100644
--- a/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java
+++ b/src/main/java/ai/elimu/model/analytics/LetterLearningEvent.java
@@ -1,8 +1,8 @@
package ai.elimu.model.analytics;
import ai.elimu.model.content.Letter;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java b/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java
index d8762a130..196a54d9c 100644
--- a/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java
+++ b/src/main/java/ai/elimu/model/analytics/StoryBookLearningEvent.java
@@ -1,8 +1,8 @@
package ai.elimu.model.analytics;
import ai.elimu.model.content.StoryBook;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/analytics/WordLearningEvent.java b/src/main/java/ai/elimu/model/analytics/WordLearningEvent.java
index 8757b3332..a09f45e83 100644
--- a/src/main/java/ai/elimu/model/analytics/WordLearningEvent.java
+++ b/src/main/java/ai/elimu/model/analytics/WordLearningEvent.java
@@ -1,8 +1,8 @@
package ai.elimu.model.analytics;
import ai.elimu.model.content.Word;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
@Entity
public class WordLearningEvent extends LearningEvent {
diff --git a/src/main/java/ai/elimu/model/content/Content.java b/src/main/java/ai/elimu/model/content/Content.java
index 85b1cb0ab..66df43126 100644
--- a/src/main/java/ai/elimu/model/content/Content.java
+++ b/src/main/java/ai/elimu/model/content/Content.java
@@ -1,11 +1,11 @@
package ai.elimu.model.content;
import java.util.Calendar;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.MappedSuperclass;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.MappedSuperclass;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
import jakarta.validation.constraints.NotNull;
import ai.elimu.model.BaseEntity;
import ai.elimu.model.v2.enums.content.ContentStatus;
diff --git a/src/main/java/ai/elimu/model/content/Emoji.java b/src/main/java/ai/elimu/model/content/Emoji.java
index 96539918f..8dc62e5dc 100644
--- a/src/main/java/ai/elimu/model/content/Emoji.java
+++ b/src/main/java/ai/elimu/model/content/Emoji.java
@@ -1,12 +1,12 @@
package ai.elimu.model.content;
import java.util.Set;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
diff --git a/src/main/java/ai/elimu/model/content/Letter.java b/src/main/java/ai/elimu/model/content/Letter.java
index ddd84797b..9ad355d40 100644
--- a/src/main/java/ai/elimu/model/content/Letter.java
+++ b/src/main/java/ai/elimu/model/content/Letter.java
@@ -1,7 +1,7 @@
package ai.elimu.model.content;
-import javax.persistence.Column;
-import javax.persistence.Entity;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
diff --git a/src/main/java/ai/elimu/model/content/LetterSound.java b/src/main/java/ai/elimu/model/content/LetterSound.java
index 068dddf34..2fec563fb 100644
--- a/src/main/java/ai/elimu/model/content/LetterSound.java
+++ b/src/main/java/ai/elimu/model/content/LetterSound.java
@@ -1,10 +1,10 @@
package ai.elimu.model.content;
import java.util.List;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToMany;
-import javax.persistence.OrderColumn;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.OrderColumn;
import org.hibernate.validator.constraints.NotEmpty;
/**
diff --git a/src/main/java/ai/elimu/model/content/Number.java b/src/main/java/ai/elimu/model/content/Number.java
index f2a6d4c0a..aefcb5beb 100644
--- a/src/main/java/ai/elimu/model/content/Number.java
+++ b/src/main/java/ai/elimu/model/content/Number.java
@@ -1,10 +1,10 @@
package ai.elimu.model.content;
import java.util.List;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToMany;
-import javax.persistence.OrderColumn;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.OrderColumn;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;
diff --git a/src/main/java/ai/elimu/model/content/Sound.java b/src/main/java/ai/elimu/model/content/Sound.java
index 0c3564709..77f0aa49c 100644
--- a/src/main/java/ai/elimu/model/content/Sound.java
+++ b/src/main/java/ai/elimu/model/content/Sound.java
@@ -1,10 +1,10 @@
package ai.elimu.model.content;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.OneToOne;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.OneToOne;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import ai.elimu.model.content.multimedia.Audio;
diff --git a/src/main/java/ai/elimu/model/content/StoryBook.java b/src/main/java/ai/elimu/model/content/StoryBook.java
index a27a5db44..41aebb6aa 100644
--- a/src/main/java/ai/elimu/model/content/StoryBook.java
+++ b/src/main/java/ai/elimu/model/content/StoryBook.java
@@ -1,10 +1,10 @@
package ai.elimu.model.content;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import ai.elimu.model.content.multimedia.Image;
diff --git a/src/main/java/ai/elimu/model/content/StoryBookChapter.java b/src/main/java/ai/elimu/model/content/StoryBookChapter.java
index c9966fa63..58ea89fe9 100644
--- a/src/main/java/ai/elimu/model/content/StoryBookChapter.java
+++ b/src/main/java/ai/elimu/model/content/StoryBookChapter.java
@@ -1,9 +1,9 @@
package ai.elimu.model.content;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
import ai.elimu.model.BaseEntity;
import ai.elimu.model.content.multimedia.Image;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/StoryBookParagraph.java b/src/main/java/ai/elimu/model/content/StoryBookParagraph.java
index df5ce0b5c..ca8df2a64 100644
--- a/src/main/java/ai/elimu/model/content/StoryBookParagraph.java
+++ b/src/main/java/ai/elimu/model/content/StoryBookParagraph.java
@@ -1,13 +1,13 @@
package ai.elimu.model.content;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
import ai.elimu.model.BaseEntity;
import java.util.List;
-import javax.persistence.Column;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToMany;
-import javax.persistence.ManyToOne;
-import javax.persistence.OrderColumn;
+import jakarta.persistence.Column;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.OrderColumn;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/Syllable.java b/src/main/java/ai/elimu/model/content/Syllable.java
index bdf2c5467..49f4a9b50 100644
--- a/src/main/java/ai/elimu/model/content/Syllable.java
+++ b/src/main/java/ai/elimu/model/content/Syllable.java
@@ -1,10 +1,10 @@
package ai.elimu.model.content;
import java.util.List;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToMany;
-import javax.persistence.OrderColumn;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.OrderColumn;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/Word.java b/src/main/java/ai/elimu/model/content/Word.java
index bf8cf13e3..f0a71262a 100644
--- a/src/main/java/ai/elimu/model/content/Word.java
+++ b/src/main/java/ai/elimu/model/content/Word.java
@@ -1,16 +1,16 @@
package ai.elimu.model.content;
import java.util.List;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.ManyToMany;
-import javax.persistence.OrderColumn;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.OrderColumn;
import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.SpellingConsistency;
import ai.elimu.model.v2.enums.content.WordType;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.ManyToOne;
import org.hibernate.validator.constraints.NotEmpty;
@Entity
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Audio.java b/src/main/java/ai/elimu/model/content/multimedia/Audio.java
index 8113612f4..e3b836722 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Audio.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Audio.java
@@ -2,14 +2,14 @@
import ai.elimu.model.content.StoryBookParagraph;
import ai.elimu.model.content.Word;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.Lob;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.Lob;
import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.AudioFormat;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.ManyToOne;
@Entity
public class Audio extends Multimedia {
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Image.java b/src/main/java/ai/elimu/model/content/multimedia/Image.java
index f49124add..45f3f9362 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Image.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Image.java
@@ -1,10 +1,10 @@
package ai.elimu.model.content.multimedia;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.Lob;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.Lob;
import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.ImageFormat;
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java b/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java
index 44a9ab29a..80b8d688d 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Multimedia.java
@@ -1,15 +1,15 @@
package ai.elimu.model.content.multimedia;
import java.util.Set;
-import javax.persistence.Column;
-import javax.persistence.ElementCollection;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.ManyToMany;
-import javax.persistence.MappedSuperclass;
+import jakarta.persistence.Column;
+import jakarta.persistence.ElementCollection;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.JoinTable;
+import jakarta.persistence.ManyToMany;
+import jakarta.persistence.MappedSuperclass;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.Length;
import ai.elimu.model.content.Content;
diff --git a/src/main/java/ai/elimu/model/content/multimedia/Video.java b/src/main/java/ai/elimu/model/content/multimedia/Video.java
index 95f4184fc..acd2f9250 100644
--- a/src/main/java/ai/elimu/model/content/multimedia/Video.java
+++ b/src/main/java/ai/elimu/model/content/multimedia/Video.java
@@ -1,10 +1,10 @@
package ai.elimu.model.content.multimedia;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.Lob;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.Lob;
import jakarta.validation.constraints.NotNull;
import ai.elimu.model.v2.enums.content.VideoFormat;
diff --git a/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java b/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java
index da86918a1..7152e7da4 100644
--- a/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/AudioContributionEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
import ai.elimu.model.content.multimedia.Audio;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java
index 0edb17fa7..1e2ce2551 100644
--- a/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/AudioPeerReviewEvent.java
@@ -1,6 +1,6 @@
package ai.elimu.model.contributor;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
/**
diff --git a/src/main/java/ai/elimu/model/contributor/ContributionEvent.java b/src/main/java/ai/elimu/model/contributor/ContributionEvent.java
index 8d853e6b1..5cb510e90 100644
--- a/src/main/java/ai/elimu/model/contributor/ContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/ContributionEvent.java
@@ -2,7 +2,7 @@
import ai.elimu.model.BaseEntity;
import java.util.Calendar;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
/**
diff --git a/src/main/java/ai/elimu/model/contributor/Contributor.java b/src/main/java/ai/elimu/model/contributor/Contributor.java
index bb1e07f26..461a9853c 100644
--- a/src/main/java/ai/elimu/model/contributor/Contributor.java
+++ b/src/main/java/ai/elimu/model/contributor/Contributor.java
@@ -3,14 +3,14 @@
import ai.elimu.model.BaseEntity;
import java.util.Calendar;
import java.util.Set;
-import javax.persistence.Column;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import jakarta.persistence.Column;
+import jakarta.persistence.ElementCollection;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
import jakarta.validation.constraints.NotNull;
import org.hibernate.validator.constraints.NotEmpty;
import ai.elimu.model.enums.Role;
diff --git a/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java b/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java
index 5d0027ad6..f1b1ab9c0 100644
--- a/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/ImageContributionEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
import ai.elimu.model.content.multimedia.Image;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java b/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java
index 33fb9c2d7..85a57c308 100644
--- a/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/LetterContributionEvent.java
@@ -1,8 +1,8 @@
package ai.elimu.model.contributor;
import ai.elimu.model.content.Letter;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java b/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java
index 22f93edae..3bc7c7be7 100644
--- a/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/LetterSoundContributionEvent.java
@@ -1,8 +1,8 @@
package ai.elimu.model.contributor;
import ai.elimu.model.content.LetterSound;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java
index 556e09777..112b2601d 100644
--- a/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/LetterSoundPeerReviewEvent.java
@@ -1,6 +1,6 @@
package ai.elimu.model.contributor;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
/**
diff --git a/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java b/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java
index 2fb6eaca4..da4a1d6c2 100644
--- a/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/NumberContributionEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
import ai.elimu.model.content.Number;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java
index ad76cddc7..0f86afeca 100644
--- a/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/NumberPeerReviewEvent.java
@@ -1,6 +1,6 @@
package ai.elimu.model.contributor;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
/**
diff --git a/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java
index 8fb304b7e..b1246c070 100644
--- a/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/PeerReviewEvent.java
@@ -2,11 +2,11 @@
import ai.elimu.model.BaseEntity;
import java.util.Calendar;
-import javax.persistence.Column;
-import javax.persistence.ManyToOne;
-import javax.persistence.MappedSuperclass;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
+import jakarta.persistence.Column;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.MappedSuperclass;
+import jakarta.persistence.Temporal;
+import jakarta.persistence.TemporalType;
import jakarta.validation.constraints.NotNull;
/**
diff --git a/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java b/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java
index cb54c4f4f..45a452162 100644
--- a/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/SoundContributionEvent.java
@@ -1,8 +1,8 @@
package ai.elimu.model.contributor;
import ai.elimu.model.content.Sound;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java b/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java
index c64332b07..148cd9616 100644
--- a/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/StoryBookContributionEvent.java
@@ -2,9 +2,9 @@
import ai.elimu.model.content.StoryBook;
import ai.elimu.model.content.StoryBookParagraph;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java
index d72cd2c7b..bfcfc3ce3 100644
--- a/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/StoryBookPeerReviewEvent.java
@@ -1,7 +1,7 @@
package ai.elimu.model.contributor;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
/**
diff --git a/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java b/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java
index cb663e4fc..c17d882c6 100644
--- a/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/WordContributionEvent.java
@@ -1,8 +1,8 @@
package ai.elimu.model.contributor;
import ai.elimu.model.content.Word;
-import javax.persistence.Entity;
-import javax.persistence.ManyToOne;
+import jakarta.persistence.Entity;
+import jakarta.persistence.ManyToOne;
import jakarta.validation.constraints.NotNull;
@Entity
diff --git a/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java b/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java
index bf17b9e63..e5e5d6dbb 100644
--- a/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java
+++ b/src/main/java/ai/elimu/model/contributor/WordPeerReviewEvent.java
@@ -1,6 +1,6 @@
package ai.elimu.model.contributor;
-import javax.persistence.*;
+import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
/**
diff --git a/src/main/java/ai/elimu/web/servlet/CustomDispatcherServlet.java b/src/main/java/ai/elimu/web/servlet/CustomDispatcherServlet.java
index 74a287c5b..80ff7f9cd 100644
--- a/src/main/java/ai/elimu/web/servlet/CustomDispatcherServlet.java
+++ b/src/main/java/ai/elimu/web/servlet/CustomDispatcherServlet.java
@@ -13,7 +13,7 @@
import ai.elimu.web.context.EnvironmentContextLoaderListener;
import java.io.File;
import java.util.EnumSet;
-import javax.persistence.Entity;
+import jakarta.persistence.Entity;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.hibernate.boot.Metadata;
From 3883e2e1742df4373fefb54667eb888ad17283d5 Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 11:23:46 +0700
Subject: [PATCH 04/10] refactor(spring): replace CommonsMultipartResolver
refs #1691
---
pom.xml | 7 -------
src/main/webapp/WEB-INF/spring/applicationContext.xml | 2 +-
2 files changed, 1 insertion(+), 8 deletions(-)
diff --git a/pom.xml b/pom.xml
index 8594ae6d9..fb6fd5c24 100644
--- a/pom.xml
+++ b/pom.xml
@@ -301,13 +301,6 @@
model-${model.version}
-
- commons-fileupload
- commons-fileupload
-
- 1.4
-
-
org.springframework
diff --git a/src/main/webapp/WEB-INF/spring/applicationContext.xml b/src/main/webapp/WEB-INF/spring/applicationContext.xml
index 2ec761095..edd582974 100644
--- a/src/main/webapp/WEB-INF/spring/applicationContext.xml
+++ b/src/main/webapp/WEB-INF/spring/applicationContext.xml
@@ -62,7 +62,7 @@
-
+
From d6e1ad25f77c45853ea2e877c4ad17c88f9fd3fd Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 11:26:37 +0700
Subject: [PATCH 05/10] javax.transaction --> jakarta.transaction
refs #1691
---
pom.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/pom.xml b/pom.xml
index fb6fd5c24..ef9d70b9f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -501,9 +501,9 @@
- javax.transaction
- jta
- 1.1
+ jakarta.transaction
+ jakarta.transaction-api
+ 2.0.0
org.hsqldb
From 8543406664b535cfb7221ca450760e10889add77 Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 12:04:48 +0700
Subject: [PATCH 06/10] build(java): upgrade from v11 to v17
closes #1795
---
.github/workflows/maven-build.yml | 2 +-
.github/workflows/maven-release.yml | 2 +-
pom.xml | 2 +-
src/main/config/DEPLOY.md | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/maven-build.yml b/.github/workflows/maven-build.yml
index 5275669a7..a813245a0 100644
--- a/.github/workflows/maven-build.yml
+++ b/.github/workflows/maven-build.yml
@@ -11,7 +11,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
- java: [11, 17, 21]
+ java: [17, 21]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml
index 066d82ad6..70af2378e 100644
--- a/.github/workflows/maven-release.yml
+++ b/.github/workflows/maven-release.yml
@@ -11,7 +11,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
- java-version: 11
+ java-version: 17
cache: maven
- run: git config user.name 'Nya Ξlimu'
- run: git config user.email 'info@elimu.ai'
diff --git a/pom.xml b/pom.xml
index ef9d70b9f..7f42a1ade 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
2.4.24-SNAPSHOT
- 11
+ 17
UTF-8
2.0.73
5.6.15.Final
diff --git a/src/main/config/DEPLOY.md b/src/main/config/DEPLOY.md
index d1671272c..a5dc677ce 100644
--- a/src/main/config/DEPLOY.md
+++ b/src/main/config/DEPLOY.md
@@ -13,7 +13,7 @@ Version: `CentOS 9 Stream`
## Java Virtual Machine (JVM) ☕
-Install Java 11 or newer. We will be using [OpenJDK](https://openjdk.org/), but you can also use the JDK from [Oracle](https://www.oracle.com/java/).
+Install Java 17 or newer. We will be using [OpenJDK](https://openjdk.org/), but you can also use the JDK from [Oracle](https://www.oracle.com/java/).
Version: `17`
From 0c2b19b3c1ef3db2f48a2020b9dbb3bec68982ee Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 13:40:02 +0700
Subject: [PATCH 07/10] chore(spring): spring security 5.8.13
refs #1796
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 7f42a1ade..4f855d395 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
5.6.15.Final
10.0.21
6.0.0
- 5.6.2
+ 5.8.13
3.1.2
From f0eba245e9f276bfb808ffa2822ea05d1689f6e0 Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 13:41:24 +0700
Subject: [PATCH 08/10] chore(spring): upgrade to spring 6.0.0
refs #1796
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 4f855d395..08df2c8b2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
5.6.15.Final
10.0.21
6.0.0
- 5.8.13
+ 6.0.0
3.1.2
From ddb76295e07b6c08b4b10132faf13c3e0a52cdeb Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Mon, 29 Jul 2024 14:53:33 +0700
Subject: [PATCH 09/10] chore(jetty): upgrade from 10.x to 11.x
closes #1797
---
pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 08df2c8b2..674724309 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
UTF-8
2.0.73
5.6.15.Final
- 10.0.21
+ 11.0.22
6.0.0
6.0.0
3.1.2
From 3f6ba3710fdb4b8b2cca502eb4b29cde9f95f737 Mon Sep 17 00:00:00 2001
From: jo-elimu <1451036+jo-elimu@users.noreply.github.com>
Date: Thu, 1 Aug 2024 17:53:36 +0700
Subject: [PATCH 10/10] chore(spring): upgrade to spring 6.0.0
refs #1796
---
src/main/webapp/WEB-INF/spring/applicationContext.xml | 5 +----
src/main/webapp/WEB-INF/web.xml | 5 -----
2 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/src/main/webapp/WEB-INF/spring/applicationContext.xml b/src/main/webapp/WEB-INF/spring/applicationContext.xml
index edd582974..d80479d06 100644
--- a/src/main/webapp/WEB-INF/spring/applicationContext.xml
+++ b/src/main/webapp/WEB-INF/spring/applicationContext.xml
@@ -62,10 +62,7 @@
-
-
-
-
+
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index f9561ba55..0acf0d8a4 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -30,11 +30,6 @@
contextConfigLocation
/WEB-INF/spring/applicationContext.xml
-
- 1073741824
- 1073741824
- 0
-