You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2023/04/11 08:25:59 UTC

[openmeetings] branch jakarta-spring-6 updated (3c8548ef5 -> 14022bfb1)

This is an automated email from the ASF dual-hosted git repository.

solomax pushed a change to branch jakarta-spring-6
in repository https://gitbox.apache.org/repos/asf/openmeetings.git


 discard 3c8548ef5 [OPENMEETINGS-2756] prometheus is back, code clean-up
 discard 88aa928b1 [OPENMEETINGS-2756] build is green for me; trublemakers so far: wicket-ioc, prometheus, jackrabbit-webdav
 discard 51514b306 javax.annotation -> jakarta.annotation
 discard 0da96c6c8 Project is compilable, tests are RED
 discard b588ba83c [OPENMEETINGS-2756] spring, cxf, tomcat, wicket
     add 9f12a4899 [OPENMEETINGS-2765] paths are being validated
     add 8e65a1344 [OPENMEETINGS-2765] paths are being validated
     add afa6bc415 [OPENMEETINGS-2758] deprecated KMS API is dropped
     add f91ff1917 [OPENMEETINGS-2765] config creation is fixed
     add bdfa4af4b [OPENMEETINGS-2757] bytebuddy
     add 1681800c2 [OPENMEETINGS-2757] maven plugins
     add a304dc0d5 [OPENMEETINGS-2757] font-awesome, maven plugins
     add b184fdd7f [OPENMEETINGS-2757] bytebuddy; maven-site-plugin downgraded
     add 00dedcdb9 no jira: NotInited page behavior is fixed
     add 1d1db94a4 [OPENMEETINGS-2757] maven-site-plugin, ical4j, ldap-api-all
     new 3edc9200d [OPENMEETINGS-2756] spring, cxf, tomcat, wicket
     new e3edd39ed Project is compilable, tests are RED
     new 7dd9fa045 javax.annotation -> jakarta.annotation
     new 5e0f74190 [OPENMEETINGS-2756] build is green for me; trublemakers so far: wicket-ioc, prometheus, jackrabbit-webdav
     new 14022bfb1 [OPENMEETINGS-2756] prometheus is back, code clean-up

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (3c8548ef5)
            \
             N -- N -- N   refs/heads/jakarta-spring-6 (14022bfb1)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 5 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../db/entity/basic/Configuration.java             |  1 +
 .../apache/openmeetings/backup/BackupImport.java   |  5 ++++
 .../installation/ImportInitvalues.java             |  8 ++---
 .../apache/openmeetings/mediaserver/KStream.java   |  6 ++--
 .../web/admin/configurations/ConfigForm.java       | 35 ++++++++++++++++++++--
 .../openmeetings/web/common/FormActionsPanel.java  |  2 +-
 .../apache/openmeetings/web/pages/BasePage.java    |  2 +-
 pom.xml                                            | 20 ++++++-------
 8 files changed, 58 insertions(+), 21 deletions(-)


[openmeetings] 04/05: [OPENMEETINGS-2756] build is green for me; trublemakers so far: wicket-ioc, prometheus, jackrabbit-webdav

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch jakarta-spring-6
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 5e0f74190b4599c141a2cf57348164ec62f6b93b
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Tue Jan 17 20:55:46 2023 +0700

    [OPENMEETINGS-2756] build is green for me; trublemakers so far: wicket-ioc, prometheus, jackrabbit-webdav
---
 LICENSE                                            | 124 ---------------------
 openmeetings-core/pom.xml                          |   4 -
 openmeetings-install/pom.xml                       |   6 -
 .../src/site/xdoc/BuildInstructions.xml            |   8 +-
 openmeetings-web/pom.xml                           |   4 -
 pom.xml                                            |  12 --
 6 files changed, 4 insertions(+), 154 deletions(-)

diff --git a/LICENSE b/LICENSE
index 036575ded..3fd7d6e20 100644
--- a/LICENSE
+++ b/LICENSE
@@ -299,130 +299,6 @@ conditions of the following licenses.
 
 ======================================================================================================================
 
-For GlassFish components
-
-webapps/openmeetings/WEB-INF/lib/activation-*.jar
-webapps/openmeetings/WEB-INF/lib/javax.mail-1.6.0.jar
-
-
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-
-1. Definitions.
-
-1.1. Contributor means each individual or entity that creates or contributes to the creation of Modifications.
-
-1.2. Contributor Version means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
-
-1.3. Covered Software means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
-
-1.4. Executable means the Covered Software in any form other than Source Code.
-
-1.5. Initial Developer means the individual or entity that first makes Original Software available under this License.
-
-1.6. Larger Work means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
-
-1.7. License means this document.
-
-1.8. Licensable means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
-
-1.9. Modifications means the Source Code and Executable form of any of the following:
-
-A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
-
-B. Any new file that contains any part of the Original Software or previous Modification; or
-
-C. Any new file that is contributed or otherwise made available under the terms of this License.
-
-1.10. Original Software means the Source Code and Executable form of computer software code that is originally released under this License.
-
-1.11. Patent Claims means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
-
-1.12. Source Code means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
-
-1.13. You (or Your) means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, You includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, control means (a)�the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b)�ownership of more than fifty percent (50%) of the outstanding sh [...]
-
-2. License Grants.
-
-2.1. The Initial Developer Grant.
-Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
-(a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
-(b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
-(c) The licenses granted in Sections�2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
-(d) Notwithstanding Section�2.1(b) above, no patent license is granted: (1)�for code that You delete from the Original Software, or (2)�for infringements caused by: (i)�the modification of the Original Software, or (ii)�the combination of the Original Software with other software or devices.
-
-2.2. Contributor Grant.
-Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
-(a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
-(b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1)�Modifications made by that Contributor (or portions thereof); and (2)�the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
-(c) The licenses granted in Sections�2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
-(d) Notwithstanding Section�2.2(b) above, no patent license is granted: (1)�for any code that Contributor has deleted from the Contributor Version; (2)�for infringements caused by: (i)�third party modifications of Contributor Version, or (ii)�the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3)�under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-3.1. Availability of Source Code.
-
-Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software i [...]
-
-3.2. Modifications.
-
-The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
-
-3.3. Required Notices.
-You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
-
-3.4. Application of Additional Terms.
-You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such  [...]
-
-3.5. Distribution of Executable Versions.
-You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipients rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form un [...]
-
-3.6. Larger Works.
-You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-4.1. New Versions.
-Sun Microsystems, Inc. is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
-
-4.2. Effect of New Versions.
-
-You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which [...]
-4.3. Modified Versions.
-
-When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a)�rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b)�otherwise make it clear that the license contains terms which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN AS IS BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE C [...]
-
-6. TERMINATION.
-
-6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
-
-6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as Participant) alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights gran [...]
-
-6.3. In the event of termination under Sections�6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL O [...]
-
-8. U.S. GOVERNMENT END USERS.
-
-The Covered Software is a commercial item, as that term is defined in 48�C.F.R.�2.101 (Oct. 1995), consisting of commercial computer software (as that term is defined at 48 C.F.R. �252.227-7014(a)(1)) and commercial computer software documentation as such terms are used in 48�C.F.R.�12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. T [...]
-
-9. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdictions conflict-of-law provisions. Any litigation r [...]
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
-
-NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
-The GlassFish code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.
-
-======================================================================================================================
 
 For SLF4J:
 
diff --git a/openmeetings-core/pom.xml b/openmeetings-core/pom.xml
index d7ef03f1c..61eaf5882 100644
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-core/pom.xml
@@ -120,10 +120,6 @@
 			<artifactId>jakarta.activation</artifactId> <!-- required for jakarta.mail -->
 			<version>2.0.1</version>
 		</dependency>
-		<dependency>
-			<groupId>javax.annotation</groupId>
-			<artifactId>javax.annotation-api</artifactId>
-		</dependency>
 		<!-- Test dependencies -->
 		<dependency>
 			<groupId>org.junit.jupiter</groupId>
diff --git a/openmeetings-install/pom.xml b/openmeetings-install/pom.xml
index a51343515..d93aaad16 100644
--- a/openmeetings-install/pom.xml
+++ b/openmeetings-install/pom.xml
@@ -54,12 +54,6 @@
 			<groupId>commons-cli</groupId>
 			<artifactId>commons-cli</artifactId>
 		</dependency>
-		<!-- FIXME TODO -->
-		<dependency>
-			<groupId>javax.activation</groupId>
-			<artifactId>activation</artifactId> <!-- required for CXF and for backup import/export (jaxb 2)-->
-			<version>1.1.1</version>
-		</dependency>
 		<dependency>
 			<groupId>org.apache.openmeetings</groupId>
 			<artifactId>openmeetings-util</artifactId>
diff --git a/openmeetings-server/src/site/xdoc/BuildInstructions.xml b/openmeetings-server/src/site/xdoc/BuildInstructions.xml
index 78c3ae7db..972959180 100644
--- a/openmeetings-server/src/site/xdoc/BuildInstructions.xml
+++ b/openmeetings-server/src/site/xdoc/BuildInstructions.xml
@@ -63,10 +63,10 @@
 		<section name="Tips and Gotchas">
 			<p>Eclipse ANSI colors plugin for colors in console</p>
 			<source><![CDATA[
-MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n' mvn clean -P allModules,quick,mysql jetty:run-exploded -Dwicket.configuration=DEVELOPMENT -Dwicket.ioc.useByteBuddy=true
+MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n' mvn clean -P allModules,quick,mysql jetty:run-exploded -Dwicket.configuration=DEVELOPMENT
 
 #Quick rebuild and run
-cd ..; mvn clean install -PallModules,quick,mysql -pl openmeetings-util,openmeetings-core; cd openmeetings-web; MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n' mvn clean -P allModules,quick,mysql jetty:run-exploded -Dwicket.configuration=DEVELOPMENT -Dwicket.ioc.useByteBuddy=true
+cd ..; mvn clean install -PallModules,quick,mysql -pl openmeetings-util,openmeetings-core; cd openmeetings-web; MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n' mvn clean -P allModules,quick,mysql jetty:run-exploded -Dwicket.configuration=DEVELOPMENT
 
 			]]></source>
 			<p>Run OpenMeetings with Embedded Jetty for Development purpose in JDK17</p>
@@ -77,14 +77,14 @@ export MAVEN_OPTS='-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,s
 
 # Just run Webapp, requires other modules to be compiled separated if changed
 cd openmeetings-webapp
-mvn install -P allModules,quick,mysql jetty:run-exploded -Dwicket.configuration=DEVELOPMENT -Dwicket.ioc.useByteBuddy=true
+mvn install -P allModules,quick,mysql jetty:run-exploded -Dwicket.configuration=DEVELOPMENT
 
 # OpenMeetings logs for embedded jetty are in
 cd openmeetings-webapp
 tail -f -n 1000 target/openmeetings.log
 ]]>
 			</source>
-			
+
 			<p>In case you would like to develop Openmeetings you need to run <i>"unpacked"</i> build: </p>
 			<source>
 <![CDATA[
diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml
index 963359f8d..f60b80b23 100644
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@ -47,10 +47,6 @@
 					<groupId>com.mysql</groupId>
 					<artifactId>mysql-connector-j</artifactId>
 				</dependency>
-				<dependency>
-					<groupId>net.bytebuddy</groupId>
-					<artifactId>byte-buddy</artifactId>
-				</dependency>
 			</dependencies>
 		</profile>
 		<profile>
diff --git a/pom.xml b/pom.xml
index e3e7c05ed..273be5999 100644
--- a/pom.xml
+++ b/pom.xml
@@ -135,8 +135,6 @@
 		<jquery-ui-touch-punch.version>0.2.3-2</jquery-ui-touch-punch.version>
 		<apacheds-test-framework.version>2.0.0.AM26</apacheds-test-framework.version>
 		<swagger.version>2.2.9</swagger.version>
-		<bytebuddy.version>1.14.4</bytebuddy.version>
-		<annotation-api.version>1.3.2</annotation-api.version>
 		<jsr305.version>3.0.2</jsr305.version>
 		<totp.version>1.7.1</totp.version>
 		<!--  Exclude all generated code  -->
@@ -920,11 +918,6 @@
 				<artifactId>mysql-connector-j</artifactId>
 				<version>${mysql.version}</version>
 			</dependency>
-			<dependency>
-				<groupId>net.bytebuddy</groupId>
-				<artifactId>byte-buddy</artifactId>
-				<version>${bytebuddy.version}</version>
-			</dependency>
 			<dependency>
 				<groupId>org.webjars</groupId>
 				<artifactId>jasny-bootstrap</artifactId>
@@ -1001,11 +994,6 @@
 				<artifactId>swagger-annotations</artifactId>
 				<version>${swagger.version}</version>
 			</dependency>
-			<dependency>
-				<groupId>javax.annotation</groupId>
-				<artifactId>javax.annotation-api</artifactId>
-				<version>${annotation-api.version}</version>
-			</dependency>
 			<dependency>
 				<!-- required for @NonNull, temporary -->
 				<groupId>com.google.code.findbugs</groupId>


[openmeetings] 03/05: javax.annotation -> jakarta.annotation

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch jakarta-spring-6
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 7dd9fa0454b10df42b54d1a1350043de209629ca
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Fri Jan 13 23:08:00 2023 +0700

    javax.annotation -> jakarta.annotation
---
 openmeetings-core/pom.xml                                           | 4 ++++
 .../src/main/java/org/apache/openmeetings/core/sip/SipManager.java  | 4 ++--
 .../java/org/apache/openmeetings/mediaserver/KurentoHandler.java    | 4 ++--
 .../openmeetings/service/calendar/caldav/AppointmentManager.java    | 2 +-
 .../java/org/apache/openmeetings/service/notifier/MailNotifier.java | 2 +-
 .../java/org/apache/openmeetings/service/notifier/TextNotifier.java | 2 +-
 .../src/main/java/org/apache/openmeetings/web/app/OtpManager.java   | 2 +-
 .../src/main/java/org/apache/openmeetings/web/app/TimerService.java | 2 +-
 .../java/org/apache/openmeetings/web/pages/auth/SignInPage.java     | 1 +
 .../src/main/webapp/WEB-INF/classes/applicationContext.xml          | 2 +-
 .../java/org/apache/openmeetings/webservice/NetTestWebService.java  | 2 +-
 pom.xml                                                             | 6 ++++++
 12 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/openmeetings-core/pom.xml b/openmeetings-core/pom.xml
index de9f504c8..d7ef03f1c 100644
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-core/pom.xml
@@ -70,6 +70,10 @@
 		</plugins>
 	</build>
 	<dependencies>
+		<dependency>
+			<groupId>jakarta.annotation</groupId>
+			<artifactId>jakarta.annotation-api</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>org.apache.openmeetings</groupId>
 			<artifactId>openmeetings-db</artifactId>
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
index 68358aa16..ef1a61d27 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/sip/SipManager.java
@@ -25,8 +25,8 @@ import java.util.BitSet;
 import java.util.Optional;
 import java.util.function.Function;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.PreDestroy;
 
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java
index 33fd09c0f..957d33abe 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java
@@ -36,8 +36,8 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.PreDestroy;
 import javax.crypto.Mac;
 import javax.crypto.spec.SecretKeySpec;
 
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
index c425eb90f..f90eb26b9 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
@@ -27,7 +27,7 @@ import java.util.Collection;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 
-import javax.annotation.PreDestroy;
+import jakarta.annotation.PreDestroy;
 
 import org.apache.http.HttpResponse;
 import org.apache.http.auth.AuthScope;
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java
index 131e786f5..9649e2042 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java
@@ -22,7 +22,7 @@ import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
 
 import java.util.TimeZone;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import org.apache.openmeetings.core.notifier.INotifier;
 import org.apache.openmeetings.core.notifier.NotifierService;
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java
index 0dded20c0..9eea5728e 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.service.notifier;
 
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REMINDER_MESSAGE;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import org.apache.openmeetings.core.notifier.INotifier;
 import org.apache.openmeetings.core.notifier.NotifierService;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OtpManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OtpManager.java
index 0c6abfe50..c8f1d07c2 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OtpManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/OtpManager.java
@@ -24,7 +24,7 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.getApplicationN
 
 import java.net.UnknownHostException;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
index 6b460fe3f..7e6f9bfca 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
@@ -27,7 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import org.apache.openmeetings.core.sip.SipManager;
 import org.apache.openmeetings.core.util.WebSocketHelper;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
index a960c99d3..28c5201f4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
@@ -109,6 +109,7 @@ public class SignInPage extends BaseInitedPage {
 	};
 	RegisterDialog r = new RegisterDialog("register");
 	private final OtpDialog otpDialog = new OtpDialog("otpDialog", Model.of());
+
 	@Inject
 	private ConfigurationDao cfgDao;
 	@Inject
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
index 1c50a99e0..a069c52cd 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/applicationContext.xml
@@ -39,10 +39,10 @@
 	<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
 
 	<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />
-	<context:annotation-config />
 	<!-- Start annotation Prometheus metrics
 	<aop:aspectj-autoproxy/>
 	End annotation -->
+	<context:annotation-config />
 	<context:component-scan base-package="org.apache.openmeetings" />
 
 	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
index 1db37f87c..f7a4cfb0f 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
@@ -34,7 +34,7 @@ import jakarta.ws.rs.core.MediaType;
 import jakarta.ws.rs.core.Response;
 import jakarta.ws.rs.core.Response.Status;
 
-import javax.annotation.PostConstruct;
+import jakarta.annotation.PostConstruct;
 
 import org.apache.openmeetings.webservice.util.RateLimited;
 import org.slf4j.Logger;
diff --git a/pom.xml b/pom.xml
index 750d5f593..e3e7c05ed 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,6 +99,7 @@
 		<openjpa.version>3.2.2</openjpa.version>
 		<jakarta.persistence.version>3.1.0</jakarta.persistence.version>
 		<jakarta.transaction.version>2.0.1</jakarta.transaction.version>
+		<jakarta.annotation.version>2.1.1</jakarta.annotation.version>
 		<asterisk-java.version>3.37.0</asterisk-java.version>
 		<commons-lang3.version>3.12.0</commons-lang3.version>
 		<commons-dbcp.version>2.9.0</commons-dbcp.version>
@@ -845,6 +846,11 @@
 				<artifactId>jakarta.transaction-api</artifactId>
 				<version>${jakarta.transaction.version}</version>
 			</dependency>
+			<dependency>
+				<groupId>jakarta.annotation</groupId>
+				<artifactId>jakarta.annotation-api</artifactId>
+				<version>${jakarta.annotation.version}</version>
+			</dependency>
 			<dependency>
 				<groupId>org.apache.commons</groupId>
 				<artifactId>commons-dbcp2</artifactId>


[openmeetings] 05/05: [OPENMEETINGS-2756] prometheus is back, code clean-up

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch jakarta-spring-6
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 14022bfb1faa4a6ee3d16d01d6dd17a243852772
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Jan 18 12:32:23 2023 +0700

    [OPENMEETINGS-2756] prometheus is back, code clean-up
---
 openmeetings-core/pom.xml                                           | 6 ------
 openmeetings-util/pom.xml                                           | 2 +-
 .../openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java   | 4 ++--
 openmeetings-web/src/main/webapp/WEB-INF/web.xml                    | 2 +-
 pom.xml                                                             | 2 +-
 5 files changed, 5 insertions(+), 11 deletions(-)

diff --git a/openmeetings-core/pom.xml b/openmeetings-core/pom.xml
index 61eaf5882..482e63b80 100644
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-core/pom.xml
@@ -114,12 +114,6 @@
 			<groupId>javax.sip</groupId>
 			<artifactId>jain-sip-ri</artifactId>
 		</dependency>
-		<!-- FIXME TODO -->
-		<dependency>
-			<groupId>com.sun.activation</groupId>
-			<artifactId>jakarta.activation</artifactId> <!-- required for jakarta.mail -->
-			<version>2.0.1</version>
-		</dependency>
 		<!-- Test dependencies -->
 		<dependency>
 			<groupId>org.junit.jupiter</groupId>
diff --git a/openmeetings-util/pom.xml b/openmeetings-util/pom.xml
index e8261877b..65887d54f 100644
--- a/openmeetings-util/pom.xml
+++ b/openmeetings-util/pom.xml
@@ -133,7 +133,7 @@
 		</dependency>
 		<dependency>
 			<groupId>io.prometheus</groupId>
-			<artifactId>simpleclient_servlet</artifactId>
+			<artifactId>simpleclient_servlet_jakarta</artifactId>
 		</dependency>
 	</dependencies>
 </project>
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java
index ed6375beb..f068ddbbc 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java
@@ -18,9 +18,9 @@
  */
 package org.apache.openmeetings.web.util.logging;
 
-//INCOMPATIBLE with Jackarta! import io.prometheus.client.exporter.MetricsServlet;
+import io.prometheus.client.servlet.jakarta.exporter.MetricsServlet;
 
-public class OpenMeetingsMetricsServlet /*extends MetricsServlet*/ {
+public class OpenMeetingsMetricsServlet extends MetricsServlet {
 	private static final long serialVersionUID = 1L;
 
 	public OpenMeetingsMetricsServlet() {
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/web.xml b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
index 6877a51da..7dbe3091b 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/web.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
@@ -60,7 +60,7 @@
 	<!-- Start Prometheus Filter HTTP Servlet metrics
 	<filter>
 		<filter-name>prometheusFilter</filter-name>
-		<filter-class>io.prometheus.client.filter.MetricsFilter</filter-class>
+		<filter-class>io.prometheus.client.servlet.jakarta.filter.MetricsFilter</filter-class>
 		<init-param>
 			<param-name>metric-name</param-name>
 			<param-value>webapp_metrics_filter</param-value>
diff --git a/pom.xml b/pom.xml
index 273be5999..2c6b8df7f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -597,7 +597,7 @@
 			</dependency>
 			<dependency>
 				<groupId>io.prometheus</groupId>
-				<artifactId>simpleclient_servlet</artifactId>
+				<artifactId>simpleclient_servlet_jakarta</artifactId>
 				<version>${io.prometheus.version}</version>
 			</dependency>
 			<dependency>


[openmeetings] 02/05: Project is compilable, tests are RED

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch jakarta-spring-6
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit e3edd39ed7310c0b36a95a1a11d59cb6e3195dc4
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Jan 12 23:47:56 2023 +0700

    Project is compilable, tests are RED
---
 openmeetings-core/pom.xml                          |  4 --
 .../openmeetings/core/converter/BaseConverter.java | 12 +++--
 .../core/converter/DocumentConverter.java          |  8 +--
 .../core/converter/ImageConverter.java             |  6 ++-
 .../openmeetings/core/data/file/FileProcessor.java | 12 +++--
 .../openmeetings/core/ldap/LdapLoginManager.java   | 13 +++--
 .../apache/openmeetings/core/mail/MailHandler.java |  7 +--
 openmeetings-db/pom.xml                            | 15 +++++-
 .../bind/adapter/AppointmentReminderAdapter.java   |  2 +-
 .../db/bind/adapter/BooleanAdapter.java            |  2 +-
 .../db/bind/adapter/ConfigTypeAdapter.java         |  2 +-
 .../openmeetings/db/bind/adapter/DateAdapter.java  |  2 +-
 .../db/bind/adapter/EntityAdapter.java             |  2 +-
 .../db/bind/adapter/FileTypeAdapter.java           |  2 +-
 .../openmeetings/db/bind/adapter/IntAdapter.java   |  2 +-
 .../db/bind/adapter/LocalDateAdapter.java          |  2 +-
 .../openmeetings/db/bind/adapter/LongAdapter.java  |  2 +-
 .../db/bind/adapter/OauthMapAdapter.java           |  2 +-
 .../db/bind/adapter/PollTypeAdapter.java           |  2 +-
 .../db/bind/adapter/RecordingStatusAdapter.java    |  2 +-
 .../db/bind/adapter/RoomElementAdapter.java        |  2 +-
 .../db/bind/adapter/RoomTypeAdapter.java           |  2 +-
 .../db/bind/adapter/SalutationAdapter.java         |  2 +-
 .../db/bind/adapter/UserRightAdapter.java          |  2 +-
 .../db/bind/adapter/UserTypeAdapter.java           |  2 +-
 .../apache/openmeetings/db/dao/basic/ChatDao.java  |  4 +-
 .../db/dao/basic/ConfigurationDao.java             | 13 ++---
 .../openmeetings/db/dao/basic/MailMessageDao.java  |  4 +-
 .../db/dao/calendar/AppointmentDao.java            | 21 ++++----
 .../db/dao/calendar/MeetingMemberDao.java          |  4 +-
 .../db/dao/calendar/OmCalendarDao.java             | 10 ++--
 .../openmeetings/db/dao/file/BaseFileItemDao.java  | 14 ++---
 .../openmeetings/db/dao/file/FileItemDao.java      |  2 +-
 .../openmeetings/db/dao/file/FileItemLogDao.java   |  4 +-
 .../openmeetings/db/dao/log/ConferenceLogDao.java  |  4 +-
 .../db/dao/record/RecordingChunkDao.java           | 10 ++--
 .../openmeetings/db/dao/record/RecordingDao.java   |  7 +--
 .../openmeetings/db/dao/room/ExtraMenuDao.java     | 12 ++---
 .../openmeetings/db/dao/room/InvitationDao.java    | 14 ++---
 .../apache/openmeetings/db/dao/room/PollDao.java   |  6 +--
 .../apache/openmeetings/db/dao/room/RoomDao.java   | 23 ++++----
 .../openmeetings/db/dao/server/LdapConfigDao.java  | 13 ++---
 .../openmeetings/db/dao/server/OAuth2Dao.java      | 10 ++--
 .../openmeetings/db/dao/server/SOAPLoginDao.java   |  4 +-
 .../openmeetings/db/dao/server/SessiondataDao.java |  4 +-
 .../apache/openmeetings/db/dao/user/GroupDao.java  | 12 ++---
 .../openmeetings/db/dao/user/GroupUserDao.java     | 12 ++---
 .../db/dao/user/PrivateMessageDao.java             |  8 +--
 .../db/dao/user/PrivateMessageFolderDao.java       |  4 +-
 .../openmeetings/db/dao/user/UserContactDao.java   | 12 +++--
 .../apache/openmeetings/db/dao/user/UserDao.java   | 18 +++----
 .../apache/openmeetings/db/dto/basic/Health.java   |  6 +--
 .../org/apache/openmeetings/db/dto/basic/Info.java |  6 +--
 .../openmeetings/db/dto/basic/ServiceResult.java   |  8 +--
 .../db/dto/calendar/AppointmentDTO.java            |  6 +--
 .../db/dto/calendar/MeetingMemberDTO.java          |  6 +--
 .../db/dto/file/FileExplorerObject.java            |  6 +--
 .../openmeetings/db/dto/file/FileItemDTO.java      |  6 +--
 .../openmeetings/db/dto/record/RecordingDTO.java   |  6 +--
 .../openmeetings/db/dto/room/InvitationDTO.java    |  6 +--
 .../apache/openmeetings/db/dto/room/RoomDTO.java   |  6 +--
 .../openmeetings/db/dto/room/RoomFileDTO.java      |  6 +--
 .../openmeetings/db/dto/room/RoomOptionsDTO.java   |  6 +--
 .../openmeetings/db/dto/user/ExternalUserDTO.java  |  6 +--
 .../apache/openmeetings/db/dto/user/GroupDTO.java  |  2 +-
 .../apache/openmeetings/db/dto/user/UserDTO.java   |  2 +-
 .../openmeetings/db/dto/user/UserSearchResult.java |  2 +-
 .../openmeetings/db/entity/HistoricalEntity.java   | 16 +++---
 .../openmeetings/db/entity/basic/ChatMessage.java  | 34 ++++++------
 .../db/entity/basic/Configuration.java             | 38 +++++++-------
 .../openmeetings/db/entity/basic/MailMessage.java  | 20 +++----
 .../db/entity/calendar/Appointment.java            | 44 ++++++++--------
 .../db/entity/calendar/MeetingMember.java          | 36 ++++++-------
 .../db/entity/calendar/OmCalendar.java             | 34 ++++++------
 .../openmeetings/db/entity/file/BaseFileItem.java  | 34 ++++++------
 .../openmeetings/db/entity/file/FileItem.java      | 16 +++---
 .../openmeetings/db/entity/file/FileItemLog.java   | 16 +++---
 .../openmeetings/db/entity/log/ConferenceLog.java  | 18 +++----
 .../openmeetings/db/entity/record/Recording.java   | 32 ++++++------
 .../db/entity/record/RecordingChunk.java           | 38 +++++++-------
 .../openmeetings/db/entity/room/ExtraMenu.java     | 34 ++++++------
 .../openmeetings/db/entity/room/Invitation.java    | 30 +++++------
 .../apache/openmeetings/db/entity/room/Room.java   | 50 +++++++++---------
 .../openmeetings/db/entity/room/RoomFile.java      | 28 +++++-----
 .../openmeetings/db/entity/room/RoomGroup.java     | 30 +++++------
 .../openmeetings/db/entity/room/RoomModerator.java | 32 ++++++------
 .../openmeetings/db/entity/room/RoomPoll.java      | 44 ++++++++--------
 .../db/entity/room/RoomPollAnswer.java             | 32 ++++++------
 .../openmeetings/db/entity/server/LdapConfig.java  | 34 ++++++------
 .../openmeetings/db/entity/server/OAuthServer.java | 42 +++++++--------
 .../openmeetings/db/entity/server/SOAPLogin.java   | 16 +++---
 .../openmeetings/db/entity/server/Sessiondata.java | 24 ++++-----
 .../openmeetings/db/entity/user/Address.java       | 26 ++++-----
 .../db/entity/user/AsteriskSipUser.java            | 28 +++++-----
 .../apache/openmeetings/db/entity/user/Group.java  | 28 +++++-----
 .../openmeetings/db/entity/user/GroupUser.java     | 32 ++++++------
 .../db/entity/user/PrivateMessage.java             | 34 ++++++------
 .../db/entity/user/PrivateMessageFolder.java       | 24 ++++-----
 .../apache/openmeetings/db/entity/user/User.java   | 56 ++++++++++----------
 .../openmeetings/db/entity/user/UserContact.java   | 32 ++++++------
 .../openmeetings/db/mapper/CalendarMapper.java     | 12 +++--
 .../apache/openmeetings/db/mapper/RoomMapper.java  | 12 +++--
 .../apache/openmeetings/db/mapper/UserMapper.java  |  8 +--
 .../org/apache/openmeetings/db/util/DaoHelper.java | 20 +++----
 .../apache/openmeetings/backup/BackupExport.java   | 41 ++++++++-------
 .../apache/openmeetings/backup/BackupImport.java   | 43 +++++++--------
 .../apache/openmeetings/backup/BackupVersion.java  | 10 ++--
 .../installation/ImportInitvalues.java             | 16 +++---
 .../org/apache/openmeetings/mediaserver/KRoom.java |  2 +-
 .../apache/openmeetings/mediaserver/KStream.java   |  2 +-
 .../openmeetings/mediaserver/KTestStream.java      |  2 +-
 .../openmeetings/mediaserver/KurentoHandler.java   | 12 +++--
 .../openmeetings/mediaserver/StreamProcessor.java  | 18 ++++---
 .../mediaserver/StreamProcessorActions.java        | 10 ++--
 .../mediaserver/TestStreamProcessor.java           |  6 ++-
 .../openmeetings/mediaserver/BaseMockedTest.java   |  2 +-
 .../src/main/assembly/conf/context.xml             |  5 +-
 .../src/main/assembly/conf/server.xml              | 50 ++++++++++++------
 openmeetings-server/src/main/assembly/conf/web.xml | 27 +++++-----
 openmeetings-service/pom.xml                       |  7 ++-
 .../service/calendar/AppointmentLogic.java         | 10 ++--
 .../calendar/caldav/AppointmentManager.java        | 10 ++--
 .../service/calendar/caldav/IcalUtils.java         |  4 +-
 .../openmeetings/service/mail/EmailManager.java    |  6 ++-
 .../mail/template/AbstractTemplatePanel.java       |  5 +-
 .../subject/RecordingExpiringTemplate.java         |  5 +-
 .../service/notifier/MailNotifier.java             |  8 +--
 .../service/notifier/TextNotifier.java             | 10 ++--
 .../service/room/InvitationManager.java            |  8 +--
 .../service/scheduler/AbstractJob.java             |  8 +--
 .../openmeetings/service/scheduler/CleanupJob.java | 10 ++--
 .../service/scheduler/ReminderJob.java             | 14 ++---
 .../web/admin/AdminUserChoiceProvider.java         |  6 ++-
 .../openmeetings/web/admin/backup/BackupPanel.java |  6 +--
 .../backup/BackupUploadResourceReference.java      |  9 ++--
 .../web/admin/configurations/ConfigForm.java       |  6 ++-
 .../web/admin/configurations/ConfigsPanel.java     |  5 +-
 .../web/admin/connection/ConnectionsPanel.java     | 11 ++--
 .../openmeetings/web/admin/email/EmailForm.java    |  5 +-
 .../openmeetings/web/admin/extra/ExtraForm.java    |  7 +--
 .../openmeetings/web/admin/groups/GroupForm.java   | 10 ++--
 .../web/admin/groups/GroupUsersPanel.java          |  5 +-
 .../openmeetings/web/admin/ldaps/LdapForm.java     |  6 ++-
 .../openmeetings/web/admin/oauth/OAuthForm.java    |  4 +-
 .../openmeetings/web/admin/rooms/RoomForm.java     | 13 ++---
 .../openmeetings/web/admin/rooms/RoomsPanel.java   |  6 ++-
 .../web/admin/users/PasswordDialog.java            |  5 +-
 .../openmeetings/web/admin/users/UserForm.java     | 11 ++--
 .../openmeetings/web/admin/users/UsersPanel.java   |  5 +-
 .../apache/openmeetings/web/app/Application.java   | 20 +++----
 .../apache/openmeetings/web/app/ClientManager.java | 11 ++--
 .../apache/openmeetings/web/app/TimerService.java  | 12 +++--
 .../apache/openmeetings/web/app/UserManager.java   | 14 ++---
 .../apache/openmeetings/web/app/WebSession.java    | 21 ++++----
 .../openmeetings/web/app/WhiteboardManager.java    |  6 ++-
 .../openmeetings/web/common/GeneralUserForm.java   |  8 +--
 .../web/common/GroupChoiceProvider.java            |  8 +--
 .../openmeetings/web/common/InvitationForm.java    |  8 +--
 .../apache/openmeetings/web/common/MainPanel.java  | 10 ++--
 .../openmeetings/web/common/OmWebSocketPanel.java  |  6 ++-
 .../openmeetings/web/common/ProfileImagePanel.java |  6 ++-
 .../web/common/UploadableProfileImagePanel.java    |  8 +--
 .../web/common/tree/ConvertingErrorsDialog.java    |  4 +-
 .../web/common/tree/FileItemPanel.java             |  6 ++-
 .../web/common/tree/FileTreePanel.java             |  6 +--
 .../openmeetings/web/common/tree/FolderPanel.java  |  8 +--
 .../web/common/tree/OmTreeProvider.java            | 10 ++--
 .../web/common/upload/UploadResourceReference.java |  6 +--
 .../openmeetings/web/pages/ActivatePage.java       |  6 ++-
 .../apache/openmeetings/web/pages/HashPage.java    |  7 +--
 .../apache/openmeetings/web/pages/ResetPage.java   |  5 +-
 .../web/pages/auth/ForgetPasswordDialog.java       |  7 +--
 .../openmeetings/web/pages/auth/OtpDialog.java     |  8 +--
 .../web/pages/auth/RegisterDialog.java             |  7 +--
 .../web/pages/auth/ResetPasswordDialog.java        |  5 +-
 .../openmeetings/web/pages/auth/SignInDialog.java  | 12 +++--
 .../openmeetings/web/pages/auth/SignInPage.java    |  8 +--
 .../web/pages/install/InstallWizard.java           |  5 +-
 .../openmeetings/web/room/NicknameDialog.java      |  6 ++-
 .../apache/openmeetings/web/room/RoomPanel.java    | 19 +++----
 .../web/room/RoomResourceReference.java            | 11 ++--
 .../web/room/activities/ActivitiesPanel.java       |  7 ++-
 .../openmeetings/web/room/menu/ActionsSubMenu.java |  7 ++-
 .../openmeetings/web/room/menu/ExtrasSubMenu.java  |  8 +--
 .../openmeetings/web/room/menu/PollsSubMenu.java   |  9 ++--
 .../web/room/menu/RoomInvitationForm.java          | 11 ++--
 .../openmeetings/web/room/menu/RoomMenuPanel.java  | 14 ++---
 .../web/room/menu/SipDialerDialog.java             |  6 ++-
 .../web/room/poll/CreatePollDialog.java            | 10 ++--
 .../web/room/poll/PollResultsDialog.java           |  8 +--
 .../openmeetings/web/room/poll/VoteDialog.java     |  8 +--
 .../web/room/sidebar/RoomFilePanel.java            |  9 ++--
 .../sidebar/RoomFileUploadResourceReference.java   | 12 +++--
 .../openmeetings/web/room/sidebar/RoomSidebar.java |  8 +--
 .../openmeetings/web/room/wb/InterviewWbPanel.java |  7 ++-
 .../apache/openmeetings/web/room/wb/WbPanel.java   |  9 ++--
 .../web/user/InviteUserMessageDialog.java          |  8 +--
 .../web/user/InviteUserToRoomDialog.java           |  8 +--
 .../openmeetings/web/user/MessageDialog.java       | 18 ++++---
 .../openmeetings/web/user/UserInfoDialog.java      |  8 +--
 .../web/user/calendar/AppointmentDialog.java       | 16 +++---
 .../web/user/calendar/CalendarDialog.java          | 10 ++--
 .../web/user/calendar/CalendarPanel.java           | 11 ++--
 .../apache/openmeetings/web/user/chat/Chat.java    | 12 +++--
 .../openmeetings/web/user/chat/ChatForm.java       | 12 +++--
 .../openmeetings/web/user/chat/ChatToolbar.java    |  7 +--
 .../web/user/dashboard/MyRoomsWidgetView.java      |  7 ++-
 .../web/user/dashboard/RecentRoomsWidgetView.java  |  7 ++-
 .../web/user/dashboard/WelcomeWidgetView.java      |  9 ++--
 .../dashboard/admin/AdminCleanupInfoDialog.java    | 10 ++--
 .../web/user/profile/ChangePasswordDialog.java     |  6 ++-
 .../web/user/profile/EditProfileForm.java          |  5 +-
 .../web/user/profile/InvitationDetails.java        |  6 ++-
 .../web/user/profile/MessagesContactsPanel.java    | 12 +++--
 .../web/user/profile/ToggleOtpDialog.java          |  7 +--
 .../web/user/profile/UserProfilePanel.java         |  9 ++--
 .../web/user/profile/UserSearchPanel.java          | 10 ++--
 .../web/user/profile/WidgetsPanel.java             |  7 ++-
 .../web/user/record/RecordingInvitationForm.java   |  7 ++-
 .../user/record/RecordingResourceReference.java    | 13 +++--
 .../web/user/record/RecordingsPanel.java           | 11 ++--
 .../openmeetings/web/user/record/VideoInfo.java    |  9 ++--
 .../openmeetings/web/user/rooms/RoomListPanel.java |  6 ++-
 .../openmeetings/web/user/rooms/RoomsPanel.java    | 11 ++--
 .../web/user/rooms/RoomsSelectorPanel.java         |  7 ++-
 .../web/user/rooms/RoomsTabbedPanel.java           |  8 +--
 .../web/util/FileItemResourceReference.java        |  6 ++-
 .../web/util/GroupLogoResourceReference.java       |  8 +--
 .../web/util/ProfileImageResourceReference.java    |  5 +-
 .../openmeetings/web/util/UserChoiceProvider.java  |  7 ++-
 .../util/logging/OpenMeetingsMetricsServlet.java   |  7 ++-
 .../WEB-INF/classes/META-INF/h2_persistence.xml    |  4 +-
 .../src/main/webapp/WEB-INF/classes/hazelcast.xml  |  2 +-
 openmeetings-web/src/main/webapp/WEB-INF/web.xml   |  6 ++-
 .../apache/openmeetings/AbstractOmServerTest.java  | 16 +++---
 .../openmeetings/backup/AbstractTestImport.java    |  6 ++-
 .../org/apache/openmeetings/backup/TestExport.java | 13 +----
 .../org/apache/openmeetings/backup/TestImport.java | 16 +++---
 .../openmeetings/backup/TestImportCalendar.java    |  8 +--
 .../apache/openmeetings/backup/TestImportOld.java  | 10 ++--
 .../apache/openmeetings/backup/TestImportRoom.java |  6 ++-
 .../apache/openmeetings/backup/TestImportUser.java |  6 ++-
 .../calendar/TestAppointmentAddAppointment.java    |  8 +--
 .../calendar/TestAppointmentSchedulerTask.java     |  6 ++-
 .../openmeetings/calendar/TestGetAppointment.java  |  6 ++-
 .../openmeetings/calendar/TestOmCalendar.java      |  6 ++-
 .../openmeetings/calendar/TestSendIcalMessage.java |  5 +-
 .../openmeetings/core/file/TestFileProcessor.java  |  6 ++-
 .../apache/openmeetings/db/dao/TestFileDao.java    |  8 +--
 .../apache/openmeetings/db/dao/TestRoomDao.java    |  6 ++-
 .../openmeetings/invitiation/TestInvitation.java   | 10 ++--
 .../org/apache/openmeetings/ldap/TestLdap.java     |  6 ++-
 .../openmeetings/service/scheduler/TestJob.java    |  8 +--
 .../apache/openmeetings/user/TestUserGroup.java    |  6 ++-
 .../org/apache/openmeetings/userdata/TestAuth.java |  6 ++-
 .../openmeetings/web/pages/TestHashPage.java       |  9 ++--
 openmeetings-web/src/test/jetty/web.xml            |  6 ++-
 openmeetings-webservice/pom.xml                    |  5 +-
 .../openmeetings/webservice/BaseWebService.java    | 12 +++--
 .../webservice/CalendarWebService.java             |  7 +--
 .../openmeetings/webservice/FileWebService.java    |  5 +-
 .../openmeetings/webservice/GroupWebService.java   |  7 +--
 .../webservice/RecordingWebService.java            |  5 +-
 .../openmeetings/webservice/RoomWebService.java    | 13 ++---
 .../openmeetings/webservice/UserWebService.java    | 11 ++--
 .../openmeetings/webservice/WbWebService.java      |  7 +--
 pom.xml                                            | 61 ++++++++++++++++++++--
 267 files changed, 1714 insertions(+), 1342 deletions(-)

diff --git a/openmeetings-core/pom.xml b/openmeetings-core/pom.xml
index 2f7f72752..de9f504c8 100644
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-core/pom.xml
@@ -90,10 +90,6 @@
 			<groupId>org.apache.wicket</groupId>
 			<artifactId>wicket-core</artifactId>
 		</dependency>
-		<dependency>
-			<groupId>org.apache.wicket</groupId>
-			<artifactId>wicket-ioc</artifactId>
-		</dependency>
 		<dependency>
 			<groupId>org.apache.directory.api</groupId>
 			<artifactId>api-all</artifactId>
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
index e62d3b1b5..c018e8640 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/BaseConverter.java
@@ -55,7 +55,9 @@ import org.apache.openmeetings.util.process.ProcessResultList;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 public abstract class BaseConverter {
 	private static final Logger log = LoggerFactory.getLogger(BaseConverter.class);
@@ -65,13 +67,13 @@ public abstract class BaseConverter {
 	public static final int TIME_TO_WAIT_FOR_FRAME = 5 * MINUTE_MULTIPLIER;
 	public static final double HALF_STEP = 1. / 2;
 
-	@Autowired
+	@Inject
 	protected ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	protected RecordingChunkDao chunkDao;
-	@Autowired
+	@Inject
 	protected FileItemLogDao logDao;
-	@Autowired
+	@Inject
 	protected RecordingDao recordingDao;
 
 	protected record Dimension(int width, int height) {}
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java
index 379f09c19..39bbb873e 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/DocumentConverter.java
@@ -41,17 +41,19 @@ import org.jodconverter.local.LocalConverter;
 import org.jodconverter.local.office.LocalOfficeManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class DocumentConverter {
 	private static final Logger log = LoggerFactory.getLogger(DocumentConverter.class);
 	private static final String JOD_JOD_NAME = "doJodConvert";
 
-	@Autowired
+	@Inject
 	protected ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private ImageConverter imageConverter;
 
 	public ProcessResultList convertPDF(FileItem f, StoredFile sf) throws Exception {
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
index a6dc99380..e57c0eacc 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/converter/ImageConverter.java
@@ -54,16 +54,18 @@ import org.apache.tika.parser.Parser;
 import org.apache.tika.parser.image.ImageParser;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 import org.xml.sax.helpers.DefaultHandler;
 
+import jakarta.inject.Inject;
+
 @Component
 public class ImageConverter extends BaseConverter {
 	private static final Logger log = LoggerFactory.getLogger(ImageConverter.class);
 	private static final String PAGE_TMPLT = DOC_PAGE_PREFIX + "-%04d." + EXTENSION_PNG;
 
-	@Autowired
+	@Inject
 	private UserDao userDao;
 
 	public ProcessResultList convertImage(BaseFileItem f, StoredFile sf, Optional<DoubleConsumer> progress) throws IOException {
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
index 901f7d007..aeb8a2961 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/data/file/FileProcessor.java
@@ -40,21 +40,23 @@ import org.apache.openmeetings.util.process.ProcessResultList;
 import org.apache.tika.exception.UnsupportedFormatException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class FileProcessor {
 	private static final Logger log = LoggerFactory.getLogger(FileProcessor.class);
 
 	//Spring loaded Beans
-	@Autowired
+	@Inject
 	private VideoConverter videoConverter;
-	@Autowired
+	@Inject
 	private FileItemDao fileDao;
-	@Autowired
+	@Inject
 	private ImageConverter imageConverter;
-	@Autowired
+	@Inject
 	private DocumentConverter docConverter;
 
 	public ProcessResultList processFile(FileItem f, InputStream is, Optional<DoubleConsumer> progress) throws Exception {
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
index 33139d299..284da6c4a 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManager.java
@@ -74,9 +74,11 @@ import org.apache.openmeetings.util.StoredFile;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 /**
  * Management of optional LDAP Login
  *
@@ -134,13 +136,14 @@ public class LdapLoginManager {
 		, ATTRIBUTE
 		, QUERY
 	}
-	@Autowired
+
+	@Inject
 	private LdapConfigDao ldapConfigDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private ImageConverter imageConverter;
 
 	private static void bindAdmin(LdapConnection conn, LdapOptions options) throws LdapException {
diff --git a/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java b/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
index d673220d2..027e203b4 100644
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
@@ -47,11 +47,12 @@ import org.apache.openmeetings.util.mail.MailUtil;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Component;
 
 import jakarta.activation.DataHandler;
+import jakarta.inject.Inject;
 import jakarta.mail.Authenticator;
 import jakarta.mail.BodyPart;
 import jakarta.mail.Message;
@@ -79,9 +80,9 @@ public class MailHandler {
 	private static final int MAIL_SEND_TIMEOUT = 60 * 60 * 1000; // 1 hour
 	private static final int MAXIMUM_ERROR_COUNT = 5;
 
-	@Autowired
+	@Inject
 	private TaskExecutor taskExecutor;
-	@Autowired
+	@Inject
 	private MailMessageDao mailMessageDao;
 
 	protected MimeMessage appendIcsBody(MimeMessage msg, MailMessage m) throws Exception {
diff --git a/openmeetings-db/pom.xml b/openmeetings-db/pom.xml
index c720b9980..97791cd16 100644
--- a/openmeetings-db/pom.xml
+++ b/openmeetings-db/pom.xml
@@ -43,13 +43,26 @@
 			<groupId>org.glassfish.jaxb</groupId>
 			<artifactId>jaxb-runtime</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.apache.wicket</groupId>
+			<artifactId>wicket-ioc</artifactId>
+		</dependency>
 		<dependency>
 			<groupId>org.wicketstuff</groupId>
 			<artifactId>wicketstuff-datastore-hazelcast</artifactId>
 		</dependency>
 		<dependency>
-		<groupId>org.apache.openjpa</groupId>
+			<groupId>org.apache.openjpa</groupId>
 			<artifactId>openjpa</artifactId>
+			<classifier>jakarta</classifier>
+		</dependency>
+		<dependency>
+			<groupId>jakarta.persistence</groupId>
+			<artifactId>jakarta.persistence-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>jakarta.transaction</groupId>
+			<artifactId>jakarta.transaction-api</artifactId>
 		</dependency>
 		<dependency>
 			<groupId>org.springframework</groupId>
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/AppointmentReminderAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/AppointmentReminderAdapter.java
index c6af037fb..93d145d99 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/AppointmentReminderAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/AppointmentReminderAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import static org.apache.commons.lang3.math.NumberUtils.toInt;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/BooleanAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/BooleanAdapter.java
index 8b12587c0..fd61652eb 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/BooleanAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/BooleanAdapter.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.db.bind.adapter;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class BooleanAdapter extends XmlAdapter<String, Boolean> {
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/ConfigTypeAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/ConfigTypeAdapter.java
index f85379aac..d06594d9c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/ConfigTypeAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/ConfigTypeAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import java.util.Locale;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/DateAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/DateAdapter.java
index c681c9229..27d163ece 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/DateAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/DateAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import java.util.Date;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class DateAdapter extends XmlAdapter<String, Date> {
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/EntityAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/EntityAdapter.java
index b9dad2936..bf2bb5608 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/EntityAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/EntityAdapter.java
@@ -22,7 +22,7 @@ import static org.apache.commons.lang3.math.NumberUtils.toLong;
 
 import java.util.Map;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/FileTypeAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/FileTypeAdapter.java
index 7f3c59afe..bf3cb55b6 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/FileTypeAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/FileTypeAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import java.util.Locale;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/IntAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/IntAdapter.java
index ae3b5052a..928aa56d8 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/IntAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/IntAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import static org.apache.commons.lang3.math.NumberUtils.toInt;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class IntAdapter extends XmlAdapter<String, Integer> {
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LocalDateAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LocalDateAdapter.java
index 0d3a3a8e6..d35a4b14c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LocalDateAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LocalDateAdapter.java
@@ -23,7 +23,7 @@ import java.time.LocalDate;
 import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.util.CalendarPatterns;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LongAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LongAdapter.java
index 77c3a4fea..50e1a043d 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LongAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/LongAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import static org.apache.commons.lang3.math.NumberUtils.toLong;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class LongAdapter extends XmlAdapter<String, Long> {
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
index 9807541ed..9ba090398 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/OauthMapAdapter.java
@@ -22,7 +22,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.dto.user.OAuthUser;
 import org.apache.openmeetings.db.util.XmlHelper;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/PollTypeAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/PollTypeAdapter.java
index 91bffabd9..7f5205eae 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/PollTypeAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/PollTypeAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import static org.apache.commons.lang3.math.NumberUtils.toInt;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RecordingStatusAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RecordingStatusAdapter.java
index 0934dea9a..dbc3c8ed0 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RecordingStatusAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RecordingStatusAdapter.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.db.bind.adapter;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.record.Recording.Status;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomElementAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomElementAdapter.java
index 21cb13f1d..f5453cd82 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomElementAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomElementAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import java.util.Locale;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomTypeAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomTypeAdapter.java
index 8bb266fd8..3387e7469 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomTypeAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/RoomTypeAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import static org.apache.commons.lang3.math.NumberUtils.toInt;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/SalutationAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/SalutationAdapter.java
index 1d5ab519f..f5e2f80e0 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/SalutationAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/SalutationAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import static org.apache.commons.lang3.math.NumberUtils.toInt;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserRightAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserRightAdapter.java
index fdaf3dd53..ad7655f8c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserRightAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserRightAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import java.util.Locale;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserTypeAdapter.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserTypeAdapter.java
index bbb0256f0..be14a2046 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserTypeAdapter.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/bind/adapter/UserTypeAdapter.java
@@ -20,7 +20,7 @@ package org.apache.openmeetings.db.bind.adapter;
 
 import java.util.Locale;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ChatDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ChatDao.java
index 2624887f3..e8a6f2c17 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ChatDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ChatDao.java
@@ -24,8 +24,8 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.entity.basic.ChatMessage;
 import org.springframework.stereotype.Repository;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index dfff60d21..143eadb39 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -32,8 +32,9 @@ import java.util.List;
 import java.util.Set;
 import java.util.TimeZone;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.event.RemoteCommitProvider;
@@ -55,7 +56,7 @@ import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -84,11 +85,11 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
 	@PersistenceContext
 	private EntityManager em;
 
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private OAuth2Dao oauthDao;
-	@Autowired
+	@Inject
 	private IApplication app;
 
 	public void updateClusterAddresses(String addresses) throws UnknownHostException {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
index b954828ab..0269dde33 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/MailMessageDao.java
@@ -24,8 +24,8 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_STATUS;
 import java.util.Calendar;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.basic.MailMessage;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
index 209860fb7..fa67ae42b 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
@@ -30,10 +30,11 @@ import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.persistence.TypedQuery;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.openmeetings.db.dao.IDataProviderDao;
@@ -49,7 +50,7 @@ import org.apache.openmeetings.db.manager.IInvitationManager;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -59,15 +60,17 @@ public class AppointmentDao implements IDataProviderDao<Appointment>{
 	private static final Logger log = LoggerFactory.getLogger(AppointmentDao.class);
 	private static final String PARAM_START = "start";
 	private static final String PARAM_CALID = "calId";
+
 	@PersistenceContext
 	private EntityManager em;
-	@Autowired
+
+	@Inject
 	private MeetingMemberDao meetingMemberDao;
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
-	@Autowired
+	@Inject
 	private ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private IInvitationManager invitationManager;
 
 	/*
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
index a45c24663..e20d8c572 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/MeetingMemberDao.java
@@ -24,8 +24,8 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.slf4j.Logger;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
index 21f9c834c..aca8fafd5 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/calendar/OmCalendarDao.java
@@ -24,13 +24,14 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
 
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.calendar.OmCalendar;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -39,7 +40,8 @@ import org.springframework.transaction.annotation.Transactional;
 public class OmCalendarDao implements IDataProviderDao<OmCalendar> {
 	@PersistenceContext
 	private EntityManager em;
-	@Autowired
+
+	@Inject
 	private AppointmentDao appointmentDao;
 
 	public List<OmCalendar> get() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/BaseFileItemDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/BaseFileItemDao.java
index 9ef4ce279..8a4320a6b 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/BaseFileItemDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/BaseFileItemDao.java
@@ -23,8 +23,9 @@ import static org.apache.openmeetings.db.util.DaoHelper.single;
 
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -38,7 +39,7 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -48,11 +49,12 @@ public class BaseFileItemDao implements IDataProviderDao<BaseFileItem> {
 	private static final Logger log = LoggerFactory.getLogger(BaseFileItemDao.class);
 	@PersistenceContext
 	protected EntityManager em;
-	@Autowired
+
+	@Inject
 	private RoomDao roomDao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
 
 	public <T extends BaseFileItem> T get(String hash, Class<T> clazz) {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
index e3e5d3485..6c6f98145 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemDao.java
@@ -25,7 +25,7 @@ import java.io.File;
 import java.util.Collection;
 import java.util.List;
 
-import javax.persistence.TypedQuery;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.db.entity.file.BaseFileItem.Type;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
index 1bccb9c46..0bc68bb22 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/file/FileItemLogDao.java
@@ -21,8 +21,8 @@ package org.apache.openmeetings.db.dao.file;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.db.entity.file.FileItemLog;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
index 8c25f8504..107597fa0 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/log/ConferenceLogDao.java
@@ -20,8 +20,8 @@ package org.apache.openmeetings.db.dao.log;
 
 import java.util.Date;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.entity.log.ConferenceLog;
 import org.apache.openmeetings.db.entity.log.ConferenceLog.Type;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingChunkDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingChunkDao.java
index bc09bb106..bb5ef7e83 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingChunkDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingChunkDao.java
@@ -23,15 +23,16 @@ import static org.apache.openmeetings.db.util.DaoHelper.only;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.entity.record.RecordingChunk;
 import org.apache.openmeetings.db.entity.record.RecordingChunk.Status;
 import org.apache.openmeetings.db.entity.record.RecordingChunk.Type;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -42,7 +43,8 @@ public class RecordingChunkDao {
 	private static final String PARAM_RECID = "recordingId";
 	@PersistenceContext
 	private EntityManager em;
-	@Autowired
+
+	@Inject
 	private RecordingDao recordingDao;
 
 	public RecordingChunk get(Long id) {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java
index b45278781..9a053bc92 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java
@@ -28,7 +28,8 @@ import java.time.Instant;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.TypedQuery;
+import jakarta.inject.Inject;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.dao.file.BaseFileItemDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -39,7 +40,7 @@ import org.apache.openmeetings.db.entity.record.Recording.Status;
 import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -52,7 +53,7 @@ import org.springframework.transaction.annotation.Transactional;
 public class RecordingDao extends BaseFileItemDao {
 	private static final Logger log = LoggerFactory.getLogger(RecordingDao.class);
 
-	@Autowired
+	@Inject
 	private UserDao userDao;
 
 	@Override
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
index 814c2d2c1..1a975f490 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/ExtraMenuDao.java
@@ -24,12 +24,12 @@ import static org.apache.openmeetings.db.util.DaoHelper.single;
 
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Predicate;
+import jakarta.persistence.criteria.Root;
 
 import org.apache.openmeetings.db.dao.IGroupAdminDataProviderDao;
 import org.apache.openmeetings.db.entity.room.ExtraMenu;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
index 54c7b015c..3c1a2eaea 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/InvitationDao.java
@@ -27,13 +27,13 @@ import java.time.ZonedDateTime;
 import java.util.List;
 import java.util.TimeZone;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import javax.persistence.criteria.Subquery;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Predicate;
+import jakarta.persistence.criteria.Root;
+import jakarta.persistence.criteria.Subquery;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.record.Recording;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
index c2d42b649..4707a3af6 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/PollDao.java
@@ -24,9 +24,9 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
 
 import org.apache.openmeetings.db.entity.room.RoomPoll;
 import org.apache.openmeetings.db.entity.room.RoomPollAnswer;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
index 9eed7c2fb..76c820fc0 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/room/RoomDao.java
@@ -35,13 +35,14 @@ import java.util.List;
 import java.util.Set;
 import java.util.TimeZone;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.TypedQuery;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.TypedQuery;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Predicate;
+import jakarta.persistence.criteria.Root;
 
 import org.apache.openmeetings.db.dao.IGroupAdminDataProviderDao;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
@@ -58,7 +59,7 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -73,11 +74,11 @@ public class RoomDao implements IGroupAdminDataProviderDao<Room> {
 
 	@PersistenceContext
 	private EntityManager em;
-	@Autowired
+	@Inject
 	private ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private ISipManager sipManager;
-	@Autowired
+	@Inject
 	private UserDao userDao;
 
 	@Override
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/LdapConfigDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/LdapConfigDao.java
index d2a6a5ea0..9e9520d2c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/LdapConfigDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/LdapConfigDao.java
@@ -24,10 +24,11 @@ import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.PersistenceException;
-import javax.persistence.TypedQuery;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.PersistenceException;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
@@ -36,7 +37,7 @@ import org.apache.openmeetings.db.util.DaoHelper;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -56,7 +57,7 @@ public class LdapConfigDao implements IDataProviderDao<LdapConfig> {
 	@PersistenceContext
 	private EntityManager em;
 
-	@Autowired
+	@Inject
 	private UserDao userDao;
 
 	@Override
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
index c626c510c..3dc7872e8 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/OAuth2Dao.java
@@ -24,8 +24,9 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.isAllowRegister
 
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
@@ -33,7 +34,7 @@ import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.server.OAuthServer;
 import org.apache.openmeetings.db.util.DaoHelper;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -43,7 +44,8 @@ public class OAuth2Dao implements IDataProviderDao<OAuthServer> {
 	private static final List<String> searchFields = List.of("name");
 	@PersistenceContext
 	private EntityManager em;
-	@Autowired
+
+	@Inject
 	private ConfigurationDao cfgDao;
 
 	public List<OAuthServer> getActive() {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
index 5dbeab254..da55f07c2 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SOAPLoginDao.java
@@ -23,8 +23,8 @@ import static org.apache.openmeetings.db.util.DaoHelper.only;
 
 import java.util.Date;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.dto.room.RoomOptionsDTO;
 import org.apache.openmeetings.db.entity.server.SOAPLogin;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
index fd67e9b05..d8da2e383 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/server/SessiondataDao.java
@@ -23,8 +23,8 @@ import static java.util.UUID.randomUUID;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.slf4j.Logger;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupDao.java
index 7c0303479..22effd4fe 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupDao.java
@@ -25,12 +25,12 @@ import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
 import java.util.Collection;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Predicate;
+import jakarta.persistence.criteria.Root;
 
 import org.apache.openmeetings.db.dao.IGroupAdminDataProviderDao;
 import org.apache.openmeetings.db.entity.user.Group;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupUserDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupUserDao.java
index d72e4fc4e..3d10ba07c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupUserDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/GroupUserDao.java
@@ -27,12 +27,12 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Predicate;
+import jakarta.persistence.criteria.Root;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.user.GroupUser;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
index b6ad0bd7d..3e14a9de7 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageDao.java
@@ -28,10 +28,10 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.Query;
-import javax.persistence.TypedQuery;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.Query;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
index 9e1607ebe..fc59043fd 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/PrivateMessageFolderDao.java
@@ -25,8 +25,8 @@ import static org.apache.openmeetings.db.util.DaoHelper.setLimits;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
 
 import org.apache.openmeetings.db.dao.IDataProviderDao;
 import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java
index f6576d09e..332325f25 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserContactDao.java
@@ -25,14 +25,15 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.PARAM_USER_ID;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.TypedQuery;
+import jakarta.inject.Inject;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.TypedQuery;
 
 import org.apache.openmeetings.db.entity.user.UserContact;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Repository;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -43,7 +44,8 @@ public class UserContactDao {
 	private static final String PARAM_OWNERID = "ownerId";
 	@PersistenceContext
 	private EntityManager em;
-	@Autowired
+
+	@Inject
 	private UserDao userDao;
 
 	public UserContact add(Long userId, Long ownerId, boolean pending) {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
index 4923f71bf..216f3eedb 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
@@ -41,15 +41,15 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Set;
 
-import javax.persistence.EntityManager;
-import javax.persistence.PersistenceContext;
-import javax.persistence.TypedQuery;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.JoinType;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import javax.persistence.criteria.Subquery;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.PersistenceContext;
+import jakarta.persistence.TypedQuery;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.JoinType;
+import jakarta.persistence.criteria.Predicate;
+import jakarta.persistence.criteria.Root;
+import jakarta.persistence.criteria.Subquery;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.openmeetings.db.dao.IGroupAdminDataProviderDao;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Health.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Health.java
index 6f86f47b1..338b854ed 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Health.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Health.java
@@ -22,9 +22,9 @@ import static org.apache.openmeetings.util.OpenmeetingsVariables.isInitComplete;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
index cd31c4a24..c8f0fdd8c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/Info.java
@@ -20,9 +20,9 @@ package org.apache.openmeetings.db.dto.basic;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.util.OmVersion;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
index de3ed5ddc..a26e8f95f 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/basic/ServiceResult.java
@@ -20,10 +20,10 @@ package org.apache.openmeetings.db.dto.basic;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.openmeetings.util.OmException;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
index 2a904e002..f197924a2 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/AppointmentDTO.java
@@ -25,9 +25,9 @@ import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.dto.room.RoomDTO;
 import org.apache.openmeetings.db.dto.user.UserDTO;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
index 4fa265da7..0a5875132 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/calendar/MeetingMemberDTO.java
@@ -22,9 +22,9 @@ import static org.apache.openmeetings.db.util.DtoHelper.optLong;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.dto.user.UserDTO;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
index e1c77eaca..67965760e 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
@@ -21,9 +21,9 @@ package org.apache.openmeetings.db.dto.file;
 import java.io.Serializable;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.file.FileItem;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileItemDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileItemDTO.java
index d92977504..3e8b6fdd5 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileItemDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileItemDTO.java
@@ -22,9 +22,9 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.file.BaseFileItem.Type;
 import org.apache.openmeetings.db.entity.file.FileItem;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java
index 4ccaf5ced..36351c5d6 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/record/RecordingDTO.java
@@ -23,9 +23,9 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.record.Recording;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java
index d9741506d..c531d4fa1 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/InvitationDTO.java
@@ -20,9 +20,9 @@ package org.apache.openmeetings.db.dto.room;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.room.Invitation.Valid;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
index f774f1bb8..76c950d87 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
@@ -29,9 +29,9 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.room.Room.RoomElement;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomFileDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomFileDTO.java
index 053f7f9c4..1adb40567 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomFileDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomFileDTO.java
@@ -24,9 +24,9 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.room.RoomFile;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
index 000762a24..1509e5248 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
@@ -22,9 +22,9 @@ import static org.apache.openmeetings.db.util.DtoHelper.optLong;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import com.github.openjson.JSONObject;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
index 2f1403005..f3c2964e2 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/ExternalUserDTO.java
@@ -20,9 +20,9 @@ package org.apache.openmeetings.db.dto.user;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import com.github.openjson.JSONObject;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/GroupDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/GroupDTO.java
index 828d8006e..700b46297 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/GroupDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/GroupDTO.java
@@ -22,7 +22,7 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.user.Group;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
index b4848be43..dbd77aa15 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserDTO.java
@@ -28,7 +28,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.User;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserSearchResult.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserSearchResult.java
index 04530d1d2..caf9b370c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserSearchResult.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/user/UserSearchResult.java
@@ -21,7 +21,7 @@ package org.apache.openmeetings.db.dto.user;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.dto.basic.SearchResult;
 import org.apache.openmeetings.db.entity.user.User;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java
index 916985cda..978cb1129 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/HistoricalEntity.java
@@ -20,14 +20,14 @@ package org.apache.openmeetings.db.entity;
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.MappedSuperclass;
-import javax.persistence.PrePersist;
-import javax.persistence.PreUpdate;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.MappedSuperclass;
+import jakarta.persistence.PrePersist;
+import jakarta.persistence.PreUpdate;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
 import org.apache.openmeetings.db.bind.adapter.DateAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
index 13512f900..6d14f6eb0 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/ChatMessage.java
@@ -22,23 +22,23 @@ import static org.apache.openmeetings.db.bind.Constants.CHAT_NODE;
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
index 6b94bb824..529ccdded 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/Configuration.java
@@ -21,25 +21,25 @@ package org.apache.openmeetings.db.entity.basic;
 import static java.lang.Boolean.TRUE;
 import static org.apache.openmeetings.db.bind.Constants.CFG_NODE;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.ConfigTypeAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
index 90a296243..4eb756697 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/basic/MailMessage.java
@@ -20,16 +20,16 @@ package org.apache.openmeetings.db.entity.basic;
 
 import java.io.IOException;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Lob;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Lob;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import org.apache.openmeetings.db.entity.HistoricalEntity;
 import org.apache.openmeetings.util.mail.IcalHandler;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
index e592d3bcb..8bd27db77 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
@@ -26,28 +26,28 @@ import java.util.Date;
 import java.util.List;
 import java.util.TimeZone;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.AppointmentReminderAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
index 63a5de1e1..d3ab90cef 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/MeetingMember.java
@@ -20,24 +20,24 @@ package org.apache.openmeetings.db.entity.calendar;
 
 import static org.apache.openmeetings.db.bind.Constants.MMEMBER_NODE;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.AppointmentAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
index 0dd1bfca8..7392bb908 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/calendar/OmCalendar.java
@@ -20,23 +20,23 @@ package org.apache.openmeetings.db.entity.calendar;
 
 import static org.apache.openmeetings.db.bind.Constants.CALENDAR_NODE;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.LongAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
index ccab06e80..a03d09ca7 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/BaseFileItem.java
@@ -36,23 +36,23 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.Inheritance;
+import jakarta.persistence.InheritanceType;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.FileTypeAdapter;
 import org.apache.openmeetings.db.bind.adapter.IntAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
index 90e84f5b0..fd8b147a8 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItem.java
@@ -20,14 +20,14 @@ package org.apache.openmeetings.db.entity.file;
 
 import static org.apache.openmeetings.db.bind.Constants.FILE_NODE;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.NamedQuery;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.NamedQuery;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.LongAdapter;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
index b88205963..045f57718 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/file/FileItemLog.java
@@ -22,14 +22,14 @@ import static org.apache.openmeetings.util.process.ProcessResult.ZERO;
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Lob;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Lob;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
index aab393b79..56a5e9437 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/log/ConferenceLog.java
@@ -20,15 +20,15 @@ package org.apache.openmeetings.db.entity.log;
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
index 2253b34c4..7555aa00f 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/Recording.java
@@ -26,22 +26,22 @@ import static org.apache.openmeetings.util.OmFileHelper.RECORDING_FILE_NAME;
 import java.util.Date;
 import java.util.List;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.JoinColumn;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.FetchAttribute;
 import org.apache.openjpa.persistence.FetchGroup;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java
index 5cf2ee32a..3d4bd4d99 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/record/RecordingChunk.java
@@ -20,25 +20,25 @@ package org.apache.openmeetings.db.entity.record;
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.DateAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
index cf8ede7b9..229b77a2e 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/ExtraMenu.java
@@ -23,23 +23,23 @@ import static org.apache.openmeetings.db.bind.Constants.EXTRA_MENU_NODE;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.persistence.CollectionTable;
-import javax.persistence.Column;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CollectionTable;
+import jakarta.persistence.Column;
+import jakarta.persistence.ElementCollection;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.LongAdapter;
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
index be1295ae8..981c26d8c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Invitation.java
@@ -21,21 +21,21 @@ package org.apache.openmeetings.db.entity.room;
 import java.util.Date;
 import java.util.stream.Stream;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.persistence.Transient;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.entity.HistoricalEntity;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
index 09dd3ebf7..f96ca0a4d 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
@@ -29,31 +29,31 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 
-import javax.persistence.CascadeType;
-import javax.persistence.CollectionTable;
-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.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.CollectionTable;
+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.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.Lob;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.ElementDependent;
 import org.apache.openjpa.persistence.FetchAttribute;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomFile.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomFile.java
index a9e4d71de..fdd1cc440 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomFile.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomFile.java
@@ -20,20 +20,20 @@ package org.apache.openmeetings.db.entity.room;
 
 import static org.apache.openmeetings.db.bind.Constants.ROOM_FILE_NODE;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.FileAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
index 495979f22..07785d07b 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomGroup.java
@@ -20,21 +20,21 @@ package org.apache.openmeetings.db.entity.room;
 
 import static org.apache.openmeetings.db.bind.Constants.ROOM_GRP_NODE;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.GroupAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
index f26fd32f9..5a5725876 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomModerator.java
@@ -18,22 +18,22 @@
  */
 package org.apache.openmeetings.db.entity.room;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java
index f34776994..f917b9e24 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPoll.java
@@ -24,28 +24,28 @@ import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
index 43e6bacf2..83afe02f4 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/RoomPollAnswer.java
@@ -20,22 +20,22 @@ package org.apache.openmeetings.db.entity.room;
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
index 1e322e548..40f64af8f 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/LdapConfig.java
@@ -20,23 +20,23 @@ package org.apache.openmeetings.db.entity.server;
 
 import static org.apache.openmeetings.db.bind.Constants.LDAP_NODE;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
index 049eba852..9e55662cb 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/OAuthServer.java
@@ -23,27 +23,27 @@ import static org.apache.openmeetings.db.bind.Constants.OAUTH_NODE;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import javax.persistence.CollectionTable;
-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.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.MapKeyColumn;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAnyElement;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CollectionTable;
+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.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.MapKeyColumn;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlAnyElement;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
 import org.apache.openmeetings.db.bind.adapter.LongAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
index 6f884a62f..e57771e5e 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/SOAPLogin.java
@@ -21,14 +21,14 @@ package org.apache.openmeetings.db.entity.server;
 import java.io.Serializable;
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
 
 @Entity
 @Table(name = "soaplogin", indexes = {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
index 9ba80c533..3e44cc67c 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Sessiondata.java
@@ -21,18 +21,18 @@ package org.apache.openmeetings.db.entity.server;
 import java.io.Serializable;
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.Lob;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.Lob;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 @Entity
 @NamedQuery(name = "getSessionById", query = "SELECT s FROM Sessiondata s WHERE s.sessionId LIKE :sessionId")
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
index 4836fed09..99f8118f8 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
@@ -18,19 +18,19 @@
  */
 package org.apache.openmeetings.db.entity.user;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.Lob;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.Lob;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
 
 import org.apache.openmeetings.db.entity.HistoricalEntity;
 
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/AsteriskSipUser.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/AsteriskSipUser.java
index 1e9404c7d..30267895d 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/AsteriskSipUser.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/AsteriskSipUser.java
@@ -20,20 +20,20 @@ package org.apache.openmeetings.db.entity.user;
 
 import java.io.Serializable;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.EnumType;
-import javax.persistence.Enumerated;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.EnumType;
+import jakarta.persistence.Enumerated;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.IntAdapter;
 import org.apache.openmeetings.db.bind.adapter.LongAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
index 30b0c33e9..ee91698b1 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Group.java
@@ -20,20 +20,20 @@ package org.apache.openmeetings.db.entity.user;
 
 import static org.apache.openmeetings.db.bind.Constants.GROUP_NODE;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
 import org.apache.openmeetings.db.bind.adapter.IntAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
index b693ef542..7df5736a0 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/GroupUser.java
@@ -18,22 +18,22 @@
  */
 package org.apache.openmeetings.db.entity.user;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
index 3ca489ce2..d50aedb17 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessage.java
@@ -22,23 +22,23 @@ import static org.apache.openmeetings.db.bind.Constants.MSG_NODE;
 
 import java.util.Date;
 
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.Lob;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessageFolder.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessageFolder.java
index b4ef4d36a..bd07fbcae 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessageFolder.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/PrivateMessageFolder.java
@@ -22,18 +22,18 @@ import static org.apache.openmeetings.db.bind.Constants.MSG_FOLDER_NODE;
 
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.DateAdapter;
 import org.apache.openmeetings.db.bind.adapter.LongAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
index ed3365a82..c7029275f 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/User.java
@@ -36,34 +36,34 @@ import java.util.Set;
 import java.util.StringJoiner;
 import java.util.stream.Stream;
 
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.CollectionTable;
-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.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Index;
-import javax.persistence.JoinColumn;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.PrimaryKeyJoinColumn;
-import javax.persistence.Table;
-import javax.persistence.Transient;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Basic;
+import jakarta.persistence.CascadeType;
+import jakarta.persistence.CollectionTable;
+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.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.Index;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.OneToMany;
+import jakarta.persistence.OneToOne;
+import jakarta.persistence.PrimaryKeyJoinColumn;
+import jakarta.persistence.Table;
+import jakarta.persistence.Transient;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.ElementDependent;
 import org.apache.openjpa.persistence.FetchAttribute;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/UserContact.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/UserContact.java
index bbf8b67df..fed9a1a97 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/UserContact.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/UserContact.java
@@ -23,22 +23,22 @@ import static org.apache.openmeetings.db.bind.Constants.CONTACT_NODE;
 import java.io.Serializable;
 import java.util.Date;
 
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.NamedQuery;
-import javax.persistence.Table;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlTransient;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.persistence.Column;
+import jakarta.persistence.Entity;
+import jakarta.persistence.FetchType;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
+import jakarta.persistence.JoinColumn;
+import jakarta.persistence.ManyToOne;
+import jakarta.persistence.NamedQuery;
+import jakarta.persistence.Table;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlTransient;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openjpa.persistence.jdbc.ForeignKey;
 import org.apache.openmeetings.db.bind.adapter.BooleanAdapter;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/CalendarMapper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/CalendarMapper.java
index 6fd6d68f1..a12beaae2 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/CalendarMapper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/CalendarMapper.java
@@ -30,18 +30,20 @@ import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.apache.openmeetings.db.entity.calendar.MeetingMember;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.util.string.Strings;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class CalendarMapper {
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private AppointmentDao appointmentDao;
-	@Autowired
+	@Inject
 	private UserMapper uMapper;
-	@Autowired
+	@Inject
 	private RoomMapper rMapper;
 
 	public Appointment get(AppointmentDTO dto, User u) {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/RoomMapper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/RoomMapper.java
index 51020af71..39b18cdcc 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/RoomMapper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/RoomMapper.java
@@ -41,20 +41,22 @@ import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class RoomMapper {
 	private static final Logger log = LoggerFactory.getLogger(RoomMapper.class);
 	private static final FastDateFormat SDF = FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss");
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private FileItemDao fileDao;
 
 	public Room get(RoomDTO dto) {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/UserMapper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/UserMapper.java
index cd5fc13fe..23d9fc740 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/UserMapper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/mapper/UserMapper.java
@@ -26,14 +26,16 @@ import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.wicket.util.string.Strings;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class UserMapper {
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
 
 	public User get(UserDTO dto) {
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java
index 3e5515e7e..3a3435e52 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/DaoHelper.java
@@ -24,16 +24,16 @@ import java.util.function.BiFunction;
 import java.util.function.Function;
 import java.util.stream.Stream;
 
-import javax.persistence.EntityManager;
-import javax.persistence.TypedQuery;
-import javax.persistence.criteria.AbstractQuery;
-import javax.persistence.criteria.CriteriaBuilder;
-import javax.persistence.criteria.CriteriaQuery;
-import javax.persistence.criteria.Expression;
-import javax.persistence.criteria.Path;
-import javax.persistence.criteria.Predicate;
-import javax.persistence.criteria.Root;
-import javax.persistence.criteria.Subquery;
+import jakarta.persistence.EntityManager;
+import jakarta.persistence.TypedQuery;
+import jakarta.persistence.criteria.AbstractQuery;
+import jakarta.persistence.criteria.CriteriaBuilder;
+import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Expression;
+import jakarta.persistence.criteria.Path;
+import jakarta.persistence.criteria.Predicate;
+import jakarta.persistence.criteria.Root;
+import jakarta.persistence.criteria.Subquery;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.openjpa.persistence.OpenJPAEntityManager;
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
index c47267b1f..fdc95b1eb 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
@@ -62,8 +62,9 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
+import jakarta.inject.Inject;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.Marshaller;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
@@ -101,7 +102,7 @@ import org.apache.openmeetings.installation.ImportInitvalues;
 import org.apache.openmeetings.installation.InstallationConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
 /**
@@ -120,39 +121,39 @@ public class BackupExport {
  ###############################################
 """;
 
-	@Autowired
+	@Inject
 	private AppointmentDao appointmentDao;
-	@Autowired
+	@Inject
 	private OmCalendarDao calendarDao;
-	@Autowired
+	@Inject
 	private FileItemDao fileItemDao;
-	@Autowired
+	@Inject
 	private RecordingDao recordingDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private MeetingMemberDao meetingMemberDao;
-	@Autowired
+	@Inject
 	private LdapConfigDao ldapConfigDao;
-	@Autowired
+	@Inject
 	private PrivateMessageDao privateMessageDao;
-	@Autowired
+	@Inject
 	private PrivateMessageFolderDao privateMessageFolderDao;
-	@Autowired
+	@Inject
 	private UserContactDao userContactDao;
-	@Autowired
+	@Inject
 	private PollDao pollManager;
-	@Autowired
+	@Inject
 	private ConfigurationDao configurationDao;
-	@Autowired
+	@Inject
 	private ChatDao chatDao;
-	@Autowired
+	@Inject
 	private OAuth2Dao auth2Dao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
-	@Autowired
+	@Inject
 	private ExtraMenuDao menuDao;
 
 	public void performExport(File zip, boolean includeFiles, AtomicInteger progress) throws Exception {
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index 6ec134772..8495997b1 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@ -167,8 +167,9 @@ import java.util.regex.Pattern;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
+import jakarta.inject.Inject;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.Unmarshaller;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamConstants;
 import javax.xml.stream.XMLStreamReader;
@@ -236,7 +237,7 @@ import org.apache.openmeetings.util.crypt.SCryptImplementation;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
 @Component
@@ -322,41 +323,41 @@ public class BackupImport {
 			);
 	private static final Pattern UUID_PATTERN = Pattern.compile("^[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}$");
 
-	@Autowired
+	@Inject
 	private AppointmentDao appointmentDao;
-	@Autowired
+	@Inject
 	private OmCalendarDao calendarDao;
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private RecordingDao recordingDao;
-	@Autowired
+	@Inject
 	private PrivateMessageFolderDao privateMessageFolderDao;
-	@Autowired
+	@Inject
 	private PrivateMessageDao privateMessageDao;
-	@Autowired
+	@Inject
 	private MeetingMemberDao meetingMemberDao;
-	@Autowired
+	@Inject
 	private LdapConfigDao ldapConfigDao;
-	@Autowired
+	@Inject
 	private FileItemDao fileItemDao;
-	@Autowired
+	@Inject
 	private UserContactDao userContactDao;
-	@Autowired
+	@Inject
 	private PollDao pollDao;
-	@Autowired
+	@Inject
 	private ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private ChatDao chatDao;
-	@Autowired
+	@Inject
 	private OAuth2Dao auth2Dao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private ExtraMenuDao menuDao;
-	@Autowired
+	@Inject
 	private DocumentConverter docConverter;
 
 	private final Map<Long, Long> ldapMap = new HashMap<>();
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java
index 3e33e12e4..2429ac0f6 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupVersion.java
@@ -23,11 +23,11 @@ import static org.apache.openmeetings.db.bind.Constants.VERSION_NODE;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.openmeetings.db.bind.adapter.IntAdapter;
 import org.apache.openmeetings.util.OmVersion;
diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
index 1f8f7ce01..17f2a33f7 100644
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
@@ -148,9 +148,11 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class ImportInitvalues {
 	private static final Logger log = LoggerFactory.getLogger(ImportInitvalues.class);
@@ -168,17 +170,17 @@ public class ImportInitvalues {
 	private static final String FNAME_PARAM = "first_name";
 	private static final String LNAME_PARAM = "last_name";
 
-	@Autowired
+	@Inject
 	private ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private SipManager sipDao;
-	@Autowired
+	@Inject
 	private OAuth2Dao oauthDao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
 
 	private int progress = 0;
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KRoom.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KRoom.java
index 810c938b1..abffc893a 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KRoom.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KRoom.java
@@ -27,7 +27,7 @@ import java.util.Date;
 import java.util.Optional;
 import java.util.concurrent.atomic.AtomicBoolean;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.openmeetings.IApplication;
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KStream.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KStream.java
index 8a6856a59..9aaff56bd 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KStream.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KStream.java
@@ -43,7 +43,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Consumer;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 
 import org.apache.openmeetings.core.sip.ISipCallbacks;
 import org.apache.openmeetings.core.sip.SipManager;
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KTestStream.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KTestStream.java
index 3df66efce..3875c590a 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KTestStream.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KTestStream.java
@@ -36,7 +36,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.IWsClient;
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java
index 0f6fe7876..33fd09c0f 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/KurentoHandler.java
@@ -69,13 +69,15 @@ import org.kurento.client.WebRtcEndpoint;
 import org.kurento.jsonrpc.client.JsonRpcClientNettyWebSocket;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import com.github.openjson.JSONArray;
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 @Component
 public class KurentoHandler {
 	private static final Logger log = LoggerFactory.getLogger(KurentoHandler.class);
@@ -117,13 +119,13 @@ public class KurentoHandler {
 	private final Map<Long, KRoom> rooms = new ConcurrentHashMap<>();
 	private final Set<String> ignoredKuids = new HashSet<>();
 
-	@Autowired
+	@Inject
 	private IClientManager cm;
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
-	@Autowired
+	@Inject
 	private TestStreamProcessor testProcessor;
-	@Autowired
+	@Inject
 	private StreamProcessor streamProcessor;
 
 	boolean isConnected() {
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessor.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessor.java
index 4738d69b1..e5116d70c 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessor.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessor.java
@@ -50,12 +50,14 @@ import org.apache.openmeetings.db.util.ws.TextRoomMessage;
 import org.apache.openmeetings.util.logging.TimedApplication;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Component;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 @Component
 public class StreamProcessor implements IStreamProcessor {
 	private static final Logger log = LoggerFactory.getLogger(StreamProcessor.class);
@@ -64,19 +66,19 @@ public class StreamProcessor implements IStreamProcessor {
 	 */
 	private final Map<String, KStream> streamByUid = new ConcurrentHashMap<>();
 
-	@Autowired
+	@Inject
 	private IClientManager cm;
-	@Autowired
+	@Inject
 	private RecordingDao recDao;
-	@Autowired
+	@Inject
 	private KurentoHandler kHandler;
-	@Autowired
+	@Inject
 	private TaskExecutor taskExecutor;
-	@Autowired
+	@Inject
 	private RecordingConverter recordingConverter;
-	@Autowired
+	@Inject
 	private InterviewConverter interviewConverter;
-	@Autowired
+	@Inject
 	private StreamProcessorActions streamProcessorActions;
 
 	@TimedApplication
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessorActions.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessorActions.java
index eafe4cae4..ea8f7d63e 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessorActions.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/StreamProcessorActions.java
@@ -34,20 +34,22 @@ import org.kurento.client.IceCandidate;
 import org.kurento.client.internal.server.KurentoServerException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 @Component
 public class StreamProcessorActions {
 	private static final Logger log = LoggerFactory.getLogger(StreamProcessorActions.class);
 
-	@Autowired
+	@Inject
 	private IClientManager cm;
-	@Autowired
+	@Inject
 	private KurentoHandler kHandler;
-	@Autowired
+	@Inject
 	private StreamProcessor streamProcessor;
 
 	@TimedApplication
diff --git a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/TestStreamProcessor.java b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/TestStreamProcessor.java
index eaa164282..a7309d122 100644
--- a/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/TestStreamProcessor.java
+++ b/openmeetings-mediaserver/src/main/java/org/apache/openmeetings/mediaserver/TestStreamProcessor.java
@@ -31,16 +31,18 @@ import java.util.concurrent.ConcurrentHashMap;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.IWsClient;
 import org.kurento.client.IceCandidate;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 @Component
 class TestStreamProcessor implements IStreamProcessor {
 	private final Map<String, KTestStream> streamByUid = new ConcurrentHashMap<>();
 
-	@Autowired
+	@Inject
 	private KurentoHandler kHandler;
 
 	void onMessage(IWsClient c, final String cmdId, JSONObject msg) {
diff --git a/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java
index ce7286093..ca7a77633 100644
--- a/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java
+++ b/openmeetings-mediaserver/src/test/java/org/apache/openmeetings/mediaserver/BaseMockedTest.java
@@ -33,7 +33,7 @@ import java.lang.reflect.Field;
 import java.util.Locale;
 import java.util.Set;
 
-import javax.inject.Inject;
+import jakarta.inject.Inject;
 
 import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.core.util.WebSocketHelper;
diff --git a/openmeetings-server/src/main/assembly/conf/context.xml b/openmeetings-server/src/main/assembly/conf/context.xml
index cf13d0732..06304f6db 100644
--- a/openmeetings-server/src/main/assembly/conf/context.xml
+++ b/openmeetings-server/src/main/assembly/conf/context.xml
@@ -24,11 +24,12 @@
     <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
     <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>
 
-    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
+    <!-- Uncomment this to enable session persistence across Tomcat restarts -->
     <!--
-    <Manager pathname="" />
+    <Manager pathname="SESSIONS.ser" />
     -->
     <JarScanner>
         <JarScanFilter tldSkip="*"/>
     </JarScanner>
 </Context>
+
diff --git a/openmeetings-server/src/main/assembly/conf/server.xml b/openmeetings-server/src/main/assembly/conf/server.xml
index 989577aaa..9564df641 100644
--- a/openmeetings-server/src/main/assembly/conf/server.xml
+++ b/openmeetings-server/src/main/assembly/conf/server.xml
@@ -24,13 +24,27 @@
   <!-- Security listener. Documentation at /docs/config/listeners.html
   <Listener className="org.apache.catalina.security.SecurityListener" />
   -->
-  <!--APR library loader. Documentation at /docs/apr.html -->
+  <!-- APR library loader. Documentation at /docs/apr.html -->
   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
   <!-- Prevent memory leaks due to use of particular java/javax APIs-->
   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
 
+  <!-- Global JNDI resources
+       Documentation at /docs/jndi-resources-howto.html
+  -->
+  <GlobalNamingResources>
+    <!-- Editable user database that can also be used by
+         UserDatabaseRealm to authenticate users
+    -->
+    <!--Resource name="UserDatabase" auth="Container"
+              type="org.apache.catalina.UserDatabase"
+              description="User database that can be updated and saved"
+              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
+              pathname="conf/tomcat-users.xml" /-->
+  </GlobalNamingResources>
+
   <!-- A "Service" is a collection of one or more "Connectors" that share
        a single "Container" Note:  A "Service" is not itself a "Container",
        so you may not define subcomponents such as "Valves" at this level.
@@ -47,9 +61,8 @@
 
     <!-- A "Connector" represents an endpoint by which requests are received
          and responses are returned. Documentation at :
-         Java HTTP Connector: /docs/config/http.html
-         Java AJP  Connector: /docs/config/ajp.html
-         APR (HTTP/AJP) Connector: /docs/apr.html
+         HTTP Connector: /docs/config/http.html
+         AJP  Connector: /docs/config/ajp.html
          Define a non-SSL/TLS HTTP/1.1 Connector on port 8080
     -->
     <Connector port="5080" protocol="HTTP/1.1"
@@ -62,11 +75,10 @@
                connectionTimeout="20000"
                redirectPort="5443" />
     -->
-    <!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
+    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
          This connector uses the NIO implementation. The default
          SSLImplementation will depend on the presence of the APR/native
-         library and the useOpenSSL attribute of the
-         AprLifecycleListener.
+         library and the useOpenSSL attribute of the AprLifecycleListener.
          Either JSSE or OpenSSL style configuration may be used regardless of
          the SSLImplementation selected. JSSE style configuration is used below.
     -->
@@ -81,20 +93,12 @@
                          type="RSA" />
         </SSLHostConfig>
     </Connector>
-    <!-- Define an SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
-         This connector uses the APR/native implementation which always uses
-         OpenSSL for TLS.
-         Either JSSE or OpenSSL style configuration may be used. OpenSSL style
-         configuration is used below.
-    -->
     <!--
-    <Connector port="5443" protocol="org.apache.coyote.http11.Http11AprProtocol"
+    <Connector port="5443" protocol="org.apache.coyote.http11.Http11NioProtocol"
                maxThreads="150" SSLEnabled="true" >
         <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
         <SSLHostConfig>
-            <Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
-                         certificateFile="conf/localhost-rsa-cert.pem"
-                         certificateChainFile="conf/localhost-rsa-chain.pem"
+            <Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
                          type="RSA" />
         </SSLHostConfig>
     </Connector>
@@ -126,6 +130,17 @@
       <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
       -->
 
+      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
+           via a brute-force attack -->
+      <Realm className="org.apache.catalina.realm.LockOutRealm">
+        <!-- This Realm uses the UserDatabase configured in the global JNDI
+             resources under the key "UserDatabase".  Any edits
+             that are performed against this UserDatabase are immediately
+             available for use by the Realm.  -->
+        <!--Realm className="org.apache.catalina.realm.UserDatabaseRealm"
+               resourceName="UserDatabase"/-->
+      </Realm>
+
       <Host name="localhost"  appBase="webapps"
             unpackWARs="false" autoDeploy="true">
 
@@ -148,3 +163,4 @@
     </Engine>
   </Service>
 </Server>
+
diff --git a/openmeetings-server/src/main/assembly/conf/web.xml b/openmeetings-server/src/main/assembly/conf/web.xml
index 838309649..87f6c66b0 100644
--- a/openmeetings-server/src/main/assembly/conf/web.xml
+++ b/openmeetings-server/src/main/assembly/conf/web.xml
@@ -15,11 +15,11 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
-                      http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
-  version="4.0">
+  xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee
+                      https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+  version="6.0">
 
   <!-- ======================== Introduction ============================== -->
   <!-- This document defines default values for *all* web applications      -->
@@ -32,6 +32,11 @@
   <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
 
 
+  <!-- Set the default request and response character encodings to UTF-8.   -->
+  <request-character-encoding>UTF-8</request-character-encoding>
+  <response-character-encoding>UTF-8</response-character-encoding>
+
+
   <!-- ================== Built In Servlet Definitions ==================== -->
 
 
@@ -107,8 +112,10 @@
   <!--                                                                      -->
   <!--   allowPartialPut     Should the server treat an HTTP PUT request    -->
   <!--                       with a Range header as a partial PUT? Note     -->
-  <!--                       that RFC 7233 clarified that Range headers are -->
-  <!--                       only valid for GET requests. [true]            -->
+  <!--                       that while RFC 7233 clarified that Range       -->
+  <!--                       headers only valid for GET requests, RFC 9110  -->
+  <!--                       (which obsoletes RFC 7233) now allows partial  -->
+  <!--                       puts. [true]                                   -->
 
     <servlet>
         <servlet-name>default</servlet-name>
@@ -148,9 +155,9 @@
   <!--                       pages.  See the jasper documentation for more  -->
   <!--                       information.                                   -->
   <!--                                                                      -->
-  <!--   compilerSourceVM    Compiler source VM. [1.8]                      -->
+  <!--   compilerSourceVM    Compiler source VM. [11]                      -->
   <!--                                                                      -->
-  <!--   compilerTargetVM    Compiler target VM. [1.8]                      -->
+  <!--   compilerTargetVM    Compiler target VM. [11]                      -->
   <!--                                                                      -->
   <!--   development         Is Jasper used in development mode? If true,   -->
   <!--                       the frequency at which JSPs are checked for    -->
@@ -190,10 +197,6 @@
   <!--                       arrays, to improve performance in some cases?  -->
   <!--                       [false]                                        -->
   <!--                                                                      -->
-  <!--   ieClassId           The class-id value to be sent to Internet      -->
-  <!--                       Explorer when using <jsp:plugin> tags.         -->
-  <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]   -->
-  <!--                                                                      -->
   <!--   javaEncoding        Java file encoding to use for generating java  -->
   <!--                       source files. [UTF8]                           -->
   <!--                                                                      -->
diff --git a/openmeetings-service/pom.xml b/openmeetings-service/pom.xml
index 335bbc1cf..9588daa7b 100644
--- a/openmeetings-service/pom.xml
+++ b/openmeetings-service/pom.xml
@@ -54,5 +54,10 @@
 			<groupId>com.github.caldav4j</groupId>
 			<artifactId>caldav4j</artifactId>
 		</dependency>
-	</dependencies>
+		<dependency>
+			<groupId>org.apache.jackrabbit</groupId>
+			<artifactId>jackrabbit-webdav</artifactId>
+			<classifier>jakarta</classifier>
+		</dependency>
+</dependencies>
 </project>
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
index 5d31d5af9..b4f220c44 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
@@ -35,18 +35,20 @@ import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.db.entity.user.User;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class AppointmentLogic {
 	private static final Logger log = LoggerFactory.getLogger(AppointmentLogic.class);
 
-	@Autowired
+	@Inject
 	private AppointmentDao appointmentDao;
-	@Autowired
+	@Inject
 	private InvitationDao invitationDao;
-	@Autowired
+	@Inject
 	private NotifierService notifierService;
 
 	// --------------------------------------------------------------------------------------------
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
index 573a79905..c425eb90f 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
@@ -57,12 +57,14 @@ import org.apache.openmeetings.service.calendar.caldav.handler.WebDAVSyncHandler
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 import org.w3c.dom.Element;
 
 import com.github.caldav4j.CalDAVConstants;
 
+import jakarta.inject.Inject;
+
 /**
  * Class which does syncing and provides respective API's required for performing CalDAV Operations.
  * @author Ankush Mishra (ankushmishra9@gmail.com)
@@ -78,11 +80,11 @@ public class AppointmentManager {
 
 	private PoolingHttpClientConnectionManager connmanager = null;
 
-	@Autowired
+	@Inject
 	private OmCalendarDao calendarDao;
-	@Autowired
+	@Inject
 	private AppointmentDao appointmentDao;
-	@Autowired
+	@Inject
 	private IcalUtils utils;
 
 	/**
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index 950a9664f..1b47d3ec0 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
@@ -53,8 +53,8 @@ import org.apache.wicket.protocol.http.WebSession;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 
+import jakarta.inject.Inject;
 import net.fortuna.ical4j.model.Calendar;
 import net.fortuna.ical4j.model.Component;
 import net.fortuna.ical4j.model.ComponentList;
@@ -89,7 +89,7 @@ public class IcalUtils {
 	private static final List<String> acceptedFormats = List.of("yyyyMMdd'T'HHmmss", "yyyyMMdd'T'HHmmss'Z'", "yyyyMMdd");
 	public static final String PROD_ID = "-//Events Calendar//Apache Openmeetings//EN";
 
-	@Autowired
+	@Inject
 	private UserDao userDao;
 
 	/**
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java
index 593c7c706..e3a51799d 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java
@@ -30,9 +30,11 @@ import org.apache.wicket.Application;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 /**
  * @author swagner
  *
@@ -41,7 +43,7 @@ import org.springframework.stereotype.Component;
 public class EmailManager {
 	private static final Logger log = LoggerFactory.getLogger(EmailManager.class);
 
-	@Autowired
+	@Inject
 	private MailHandler mailHandler;
 
 	private static IApplication getApp() {
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
index 4d352cdff..0bb3df82c 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
@@ -27,14 +27,15 @@ import org.apache.wicket.Session;
 import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.protocol.http.WebSession;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 public abstract class AbstractTemplatePanel extends Panel {
 	private static final long serialVersionUID = 1L;
 	public static final String COMP_ID = "template";
 	protected final Locale locale;
 
-	@SpringBean
+	@Inject
 	protected IApplication app;
 
 	protected AbstractTemplatePanel(Locale locale) {
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/RecordingExpiringTemplate.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/RecordingExpiringTemplate.java
index db696b774..10babe193 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/RecordingExpiringTemplate.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/RecordingExpiringTemplate.java
@@ -29,7 +29,8 @@ import org.apache.openmeetings.db.util.LocaleHelper;
 import org.apache.openmeetings.service.mail.template.OmTextLabel;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Fragment;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 public class RecordingExpiringTemplate extends SubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
@@ -37,7 +38,7 @@ public class RecordingExpiringTemplate extends SubjectEmailTemplate {
 	private long remainingDays;
 	private final User u;
 
-	@SpringBean
+	@Inject
 	protected RoomDao roomDao;
 
 	private RecordingExpiringTemplate(User u, final Recording rec, long remainingDays) {
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java
index 1aa6bed87..131e786f5 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/MailNotifier.java
@@ -33,14 +33,16 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.manager.IInvitationManager;
 import org.apache.openmeetings.service.mail.template.subject.AppointmentReminderTemplate;
 import org.apache.openmeetings.service.mail.template.subject.SubjectEmailTemplate;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class MailNotifier implements INotifier {
-	@Autowired
+	@Inject
 	private NotifierService notifier;
-	@Autowired
+	@Inject
 	private IInvitationManager invitationManager;
 
 	@PostConstruct
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java
index 49f81f0b2..0dded20c0 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/notifier/TextNotifier.java
@@ -32,18 +32,20 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.core.task.TaskExecutor;
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component
 public class TextNotifier implements INotifier {
 	private static final Logger log = LoggerFactory.getLogger(TextNotifier.class);
-	@Autowired
+	@Inject
 	private NotifierService notifier;
-	@Autowired
+	@Inject
 	protected TaskExecutor taskExecutor;
-	@Autowired
+	@Inject
 	protected ConfigurationDao cfgDao;
 
 	@PostConstruct
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
index dfbc437c5..073c2177d 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
@@ -50,9 +50,11 @@ import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.openmeetings.util.mail.IcalHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 /**
  *
  * @author swagner
@@ -62,9 +64,9 @@ import org.springframework.stereotype.Component;
 public class InvitationManager implements IInvitationManager {
 	private static final Logger log = LoggerFactory.getLogger(InvitationManager.class);
 
-	@Autowired
+	@Inject
 	private InvitationDao invitationDao;
-	@Autowired
+	@Inject
 	private MailHandler mailHandler;
 
 	/**
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/AbstractJob.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/AbstractJob.java
index ae53f5323..8480915ed 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/AbstractJob.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/AbstractJob.java
@@ -30,13 +30,15 @@ import org.apache.openmeetings.db.entity.record.Recording;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 public abstract class AbstractJob {
 	private static Logger log = LoggerFactory.getLogger(AbstractJob.class);
-	@Autowired
+	@Inject
 	GroupDao groupDao;
-	@Autowired
+	@Inject
 	RecordingDao recordingDao;
 
 	void processExpiringRecordings(boolean notified, ObjLongConsumer<Recording> consumer) {
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/CleanupJob.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/CleanupJob.java
index 5a8ba8e66..95bad5b3d 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/CleanupJob.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/CleanupJob.java
@@ -32,10 +32,12 @@ import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import jakarta.inject.Inject;
+
 @Component("cleanupJob")
 public class CleanupJob extends AbstractJob {
 	private static Logger log = LoggerFactory.getLogger(CleanupJob.class);
@@ -48,11 +50,11 @@ public class CleanupJob extends AbstractJob {
 	@Value("${job.cleanup.conf.log.ttl}")
 	private long confLogTtl = 7 * 24 * 60 * 60 * 1000L; // 7 days
 
-	@Autowired
+	@Inject
 	private SessiondataDao sessionDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private ConferenceLogDao confLogDao;
 
 	public void cleanTestSetup() {
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/ReminderJob.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/ReminderJob.java
index 6167681ec..028bdd450 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/ReminderJob.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/scheduler/ReminderJob.java
@@ -46,23 +46,25 @@ import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
 import com.github.openjson.JSONArray;
 
+import jakarta.inject.Inject;
+
 @Component("reminderJob")
 public class ReminderJob extends AbstractJob {
 	private static Logger log = LoggerFactory.getLogger(ReminderJob.class);
-	@Autowired
+	@Inject
 	private AppointmentLogic appointmentLogic;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private MailHandler mailHandler;
-	@Autowired
+	@Inject
 	private ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private GroupUserDao groupUserDao;
 
 	//package private for testing
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java
index 6452dd050..3e3fe12c8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/AdminUserChoiceProvider.java
@@ -25,14 +25,16 @@ import java.util.List;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.wicket.injection.Injector;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Response;
 
+import jakarta.inject.Inject;
+
 public abstract class AdminUserChoiceProvider extends ChoiceProvider<User> {
 	private static final long serialVersionUID = 1L;
 	public static final long PAGE_SIZE = 20;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	protected AdminUserChoiceProvider() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
index 62041df81..f2d1bf158 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupPanel.java
@@ -48,7 +48,6 @@ import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.resource.FileSystemResource;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -58,6 +57,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel
 import de.agilecoders.wicket.core.markup.html.bootstrap.components.progress.UpdatableProgressBar;
 import de.agilecoders.wicket.core.markup.html.bootstrap.utilities.BackgroundColorBehavior;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 /**
  * Panel component to manage Backup Import/Export
  *
@@ -72,9 +72,9 @@ public class BackupPanel extends AdminBasePanel {
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
 	private UploadForm upload;
 
-	@SpringBean
+	@Inject
 	private BackupExport backupExport;
-	@SpringBean
+	@Inject
 	private BackupImport backupImport;
 
 	public BackupPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupUploadResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupUploadResourceReference.java
index 6378749a1..1127a1b81 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupUploadResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/backup/BackupUploadResourceReference.java
@@ -27,7 +27,7 @@ import java.util.Timer;
 import java.util.TimerTask;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload2.FileItem;
 import org.apache.openmeetings.backup.BackupImport;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
 import org.apache.openmeetings.db.entity.basic.Client;
@@ -35,17 +35,18 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.common.upload.UploadResourceReference;
 import org.apache.wicket.injection.Injector;
 import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import jakarta.inject.Inject;
+
 public class BackupUploadResourceReference extends UploadResourceReference {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(BackupUploadResourceReference.class);
 
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
-	@SpringBean
+	@Inject
 	private BackupImport backupImport;
 
 	public BackupUploadResourceReference() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
index ba7a9c245..3b7ae670b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigForm.java
@@ -53,11 +53,12 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.validation.IValidatable;
 import org.apache.wicket.validation.IValidator;
 import org.apache.wicket.validation.ValidationError;
 
+import jakarta.inject.Inject;
+
 /**
  * Handle {@link Configuration} items as list and form
  *
@@ -83,7 +84,8 @@ public class ConfigForm extends AdminBaseForm<Configuration> {
 	};
 	private final CheckBox valueB = new CheckBox("valueB");
 	private final TextField<String> valueH = new TextField<>("value");
-	@SpringBean
+
+	@Inject
 	private ConfigurationDao cfgDao;
 
 	public ConfigForm(String id, WebMarkupContainer listContainer, Configuration configuration) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
index afb2e0a81..9d0f4b868 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/configurations/ConfigsPanel.java
@@ -35,7 +35,8 @@ import org.apache.wicket.authroles.authorization.strategies.role.annotations.Aut
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 /**
  * add/update/delete {@link Configuration}
@@ -49,7 +50,7 @@ public class ConfigsPanel extends AdminBasePanel {
 	private ConfigForm form;
 	private final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
 
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
 
 	public ConfigsPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
index 1d3cf99db..bcfce306c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
@@ -45,23 +45,24 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.markup.repeater.RepeatingView;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.openmeetings.mediaserver.KurentoHandler;
 import org.apache.openmeetings.mediaserver.StreamProcessor;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import jakarta.inject.Inject;
 
 @AuthorizeInstantiation({"ADMIN", "ADMIN_CONNECTIONS"})
 public class ConnectionsPanel extends AdminBasePanel {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private KurentoHandler kHandler;
-	@SpringBean
+	@Inject
 	private StreamProcessor streamProcessor;
-	@SpringBean
+	@Inject
 	private IUserManager userManager;
 
 	public ConnectionsPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java
index d0c530ba5..5c297898b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/email/EmailForm.java
@@ -31,10 +31,10 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import jakarta.inject.Inject;
 
 public class EmailForm extends Form<MailMessage> {
 	private static final long serialVersionUID = 1L;
@@ -42,7 +42,8 @@ public class EmailForm extends Form<MailMessage> {
 	private BootstrapAjaxButton reset;
 	private AjaxLink<Void> delBtn;
 	private final WebMarkupContainer list;
-	@SpringBean
+
+	@Inject
 	private MailMessageDao emailDao;
 
 	public EmailForm(String id, final WebMarkupContainer list, MailMessage m) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
index 3ad9f25c2..01b82539c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/extra/ExtraForm.java
@@ -38,9 +38,10 @@ import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.CollectionModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.wicketstuff.select2.Select2MultiChoice;
 
+import jakarta.inject.Inject;
+
 public class ExtraForm extends AdminBaseForm<ExtraMenu> {
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer list;
@@ -48,9 +49,9 @@ public class ExtraForm extends AdminBaseForm<ExtraMenu> {
 			, new CollectionModel<>(new ArrayList<>())
 			, new GroupChoiceProvider());
 
-	@SpringBean
+	@Inject
 	private ExtraMenuDao menuDao;
-	@SpringBean
+	@Inject
 	private GroupDao groupDao;
 
 	public ExtraForm(String id, final WebMarkupContainer list, ExtraMenu m) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
index 79a0b285d..98681efeb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupForm.java
@@ -51,9 +51,10 @@ import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.wicketstuff.select2.Select2Choice;
 
+import jakarta.inject.Inject;
+
 public class GroupForm extends AdminBaseForm<Group> {
 	private static final long serialVersionUID = 1L;
 	private GroupUsersPanel usersPanel;
@@ -92,11 +93,12 @@ public class GroupForm extends AdminBaseForm<Group> {
 			return getString("admin.group.form.logo");
 		}
 	};
-	@SpringBean
+
+	@Inject
 	private ImageConverter imageConverter;
-	@SpringBean
+	@Inject
 	private GroupUserDao groupUserDao;
-	@SpringBean
+	@Inject
 	private GroupDao groupDao;
 
 	public GroupForm(String id, WebMarkupContainer groupList, Group group) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java
index cd295b95f..f4044ca6c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupUsersPanel.java
@@ -38,19 +38,20 @@ import org.apache.wicket.markup.html.form.CheckBox;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.badge.BootstrapBadge;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.utilities.BackgroundColorBehavior;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class GroupUsersPanel extends Panel {
 	private static final long serialVersionUID = 1L;
 	private long groupId;
 	private List<GroupUser> users2add = new ArrayList<>();
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public GroupUsersPanel(String id, long groupId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
index 2a835a648..7d33bd020 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/ldaps/LdapForm.java
@@ -33,7 +33,8 @@ import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 /**
  * Form components to insert/update/delete {@link LdapConfig}
@@ -44,7 +45,8 @@ import org.apache.wicket.spring.injection.annot.SpringBean;
 public class LdapForm extends AdminBaseForm<LdapConfig> {
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer listContainer;
-	@SpringBean
+
+	@Inject
 	private LdapConfigDao ldapDao;
 
 	public LdapForm(String id, WebMarkupContainer listContainer, final LdapConfig ldapConfig) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
index d3c28f4c1..d4689c12f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/oauth/OAuthForm.java
@@ -49,13 +49,13 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.ListModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class OAuthForm extends AdminBaseForm<OAuthServer> {
 	private static final long serialVersionUID = 1L;
@@ -87,7 +87,7 @@ public class OAuthForm extends AdminBaseForm<OAuthServer> {
 		}
 	};
 
-	@SpringBean
+	@Inject
 	private OAuth2Dao oauthDao;
 
 	public OAuthForm(String id, WebMarkupContainer listContainer, OAuthServer server) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
index 32db3737d..9c1c15741 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
@@ -72,7 +72,6 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.CollectionModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Response;
@@ -85,6 +84,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.utilities.BackgroundColorBehavior;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class RoomForm extends AdminBaseForm<Room> {
 	private static final long serialVersionUID = 1L;
@@ -120,15 +120,16 @@ public class RoomForm extends AdminBaseForm<Room> {
 	private IModel<User> moderator2add = Model.of((User)null);
 	private IModel<Collection<BaseFileItem>> files2add = new CollectionModel<>(new ArrayList<>());
 	private IModel<Long> wbIdx = Model.of(0L);
-	@SpringBean
+
+	@Inject
 	private GroupDao groupDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
 
 	public RoomForm(String id, WebMarkupContainer roomList, final Room room) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
index 898be3229..2879f8b6e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomsPanel.java
@@ -35,14 +35,16 @@ import org.apache.wicket.authroles.authorization.strategies.role.annotations.Aut
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 @AuthorizeInstantiation({"ADMIN", "GROUP_ADMIN"})
 public class RoomsPanel extends AdminBasePanel {
 	private static final long serialVersionUID = 1L;
 	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
 	private RoomForm form;
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
 
 	public RoomsPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java
index a93c46698..a206ecbf0 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/PasswordDialog.java
@@ -28,13 +28,13 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.danekja.java.util.function.serializable.SerializableConsumer;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class PasswordDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -42,7 +42,8 @@ public class PasswordDialog extends Modal<String> {
 	private final Form<String> form = new Form<>("form");
 	private final PasswordTextField pass = new PasswordTextField("password", Model.of(""));
 	private SerializableConsumer<AjaxRequestTarget> action = null;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public PasswordDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
index afabc5061..704aeed20 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
@@ -68,7 +68,6 @@ import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 import org.danekja.java.util.function.serializable.SerializableConsumer;
 import org.slf4j.Logger;
@@ -77,6 +76,7 @@ import org.wicketstuff.select2.Response;
 import org.wicketstuff.select2.Select2MultiChoice;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 /**
  * CRUD operations in form for {@link User}
@@ -99,13 +99,14 @@ public class UserForm extends AdminBaseForm<User> {
 	private final PasswordDialog adminPass;
 	private final UploadableProfileImagePanel avatar = new UploadableProfileImagePanel("avatar", null);
 	private final CheckBox otpEnabled = new CheckBox("otp-enabled", Model.of(false));
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private EmailManager emainManager;
-	@SpringBean
+	@Inject
 	private LdapConfigDao ldapDao;
-	@SpringBean
+	@Inject
 	private OAuth2Dao oauthDao;
 
 	public UserForm(String id, WebMarkupContainer listContainer, final User user, final PasswordDialog adminPass, Modal<String> warning) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
index 6dba04d0b..820d12a05 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
@@ -40,10 +40,10 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.repeater.Item;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.core.markup.html.bootstrap.utilities.ColorBehavior;
+import jakarta.inject.Inject;
 
 @AuthorizeInstantiation({"ADMIN", "GROUP_ADMIN"})
 public class UsersPanel extends AdminBasePanel {
@@ -51,7 +51,8 @@ public class UsersPanel extends AdminBasePanel {
 	final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer");
 	private final PasswordDialog adminPass = new PasswordDialog("adminPass");
 	private UserForm form;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public UsersPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index a7905396b..d0af1ea13 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
@@ -136,7 +136,6 @@ import org.apache.wicket.validation.validator.UrlValidator;
 import org.apache.openmeetings.mediaserver.KStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationContext;
 import org.springframework.stereotype.Component;
@@ -161,6 +160,7 @@ import de.agilecoders.wicket.core.settings.IBootstrapSettings;
 import de.agilecoders.wicket.core.settings.NoopThemeProvider;
 import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchTheme;
 import de.agilecoders.wicket.themes.markup.html.bootswatch.BootswatchThemeProvider;
+import jakarta.inject.Inject;
 
 @Component
 public class Application extends AuthenticatedWebApplication implements IApplication {
@@ -182,23 +182,23 @@ public class Application extends AuthenticatedWebApplication implements IApplica
 	private String serverId;
 	private final Set<String> wsUrls = new HashSet<>();
 
-	@Autowired
+	@Inject
 	private ApplicationContext ctx;
-	@Autowired
+	@Inject
 	private ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private RecordingDao recordingDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private UserManager userManager;
-	@Autowired
+	@Inject
 	private ClientManager cm;
-	@Autowired
+	@Inject
 	private WhiteboardManager wbManager;
-	@Autowired
+	@Inject
 	private AppointmentDao appointmentDao;
-	@Autowired
+	@Inject
 	private SipManager sipManager;
 	@Value("${remember.me.encryption.key}")
 	private String rememberMeKey;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
index 11c2c47dd..959d987f3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/ClientManager.java
@@ -48,7 +48,6 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.StringValue;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import com.hazelcast.core.EntryEvent;
@@ -58,6 +57,8 @@ import com.hazelcast.map.listener.EntryRemovedListener;
 import com.hazelcast.map.listener.EntryUpdatedListener;
 import com.hazelcast.query.Predicates;
 
+import jakarta.inject.Inject;
+
 @Component
 public class ClientManager implements IClientManager {
 	private static final Logger log = LoggerFactory.getLogger(ClientManager.class);
@@ -70,13 +71,13 @@ public class ClientManager implements IClientManager {
 	private final Map<Long, Set<String>> onlineRooms = new ConcurrentHashMap<>();
 	private final Map<String, ServerInfo> onlineServers = new ConcurrentHashMap<>();
 
-	@Autowired
+	@Inject
 	private ConferenceLogDao confLogDao;
-	@Autowired
+	@Inject
 	private Application app;
-	@Autowired
+	@Inject
 	private KurentoHandler kHandler;
-	@Autowired
+	@Inject
 	private TimerService timerService;
 
 	private IMap<String, Client> map() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
index 9349f6f09..6b460fe3f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/TimerService.java
@@ -41,9 +41,11 @@ import org.apache.wicket.ThreadContext;
 import org.apache.openmeetings.mediaserver.KurentoHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
+import jakarta.inject.Inject;
+
 @Service
 public class TimerService {
 	private static final Logger log = LoggerFactory.getLogger(TimerService.class);
@@ -53,13 +55,13 @@ public class TimerService {
 	private final Map<Long, CompletableFuture<Object>> modCheckMap = new ConcurrentHashMap<>();
 	private final Map<Long, CompletableFuture<Object>> sipCheckMap = new ConcurrentHashMap<>();
 
-	@Autowired
+	@Inject
 	private ClientManager cm;
-	@Autowired
+	@Inject
 	private SipManager sipManager;
-	@Autowired
+	@Inject
 	private KurentoHandler kHandler;
-	@Autowired
+	@Inject
 	private Application app;
 
 	@PostConstruct
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
index 36b6b8ec8..d393de623 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/UserManager.java
@@ -81,11 +81,13 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 /**
  *
  * @author swagner
@@ -95,15 +97,15 @@ import com.github.openjson.JSONObject;
 public class UserManager implements IUserManager {
 	private static final Logger log = LoggerFactory.getLogger(UserManager.class);
 
-	@Autowired
+	@Inject
 	private ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private UserDao userDao;
-	@Autowired
+	@Inject
 	private EmailManager emailManager;
-	@Autowired
+	@Inject
 	private IClientManager cm;
 	private HttpClient httpClient;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index 1102f774b..434e959da 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
@@ -86,7 +86,6 @@ import org.apache.wicket.request.Request;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.flow.RedirectToUrlException;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.StringValue;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
@@ -96,6 +95,8 @@ import org.wicketstuff.dashboard.Widget;
 import org.wicketstuff.dashboard.WidgetFactory;
 import org.wicketstuff.dashboard.web.DashboardContext;
 
+import jakarta.inject.Inject;
+
 public class WebSession extends AbstractAuthenticatedWebSession implements IWebSession {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(WebSession.class);
@@ -118,23 +119,23 @@ public class WebSession extends AbstractAuthenticatedWebSession implements IWebS
 	private Long recordingId = null;
 	private boolean kickedByAdmin = false;
 	private ExtendedClientProperties extProps = new ExtendedClientProperties();
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private InvitationDao inviteDao;
-	@SpringBean
+	@Inject
 	private SOAPLoginDao soapDao;
-	@SpringBean
+	@Inject
 	private SessiondataDao sessionDao;
-	@SpringBean
+	@Inject
 	private GroupDao groupDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private LdapLoginManager ldapManager;
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
 
 	public WebSession(Request request) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
index 49801d1a9..fff4fb376 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
@@ -45,7 +45,7 @@ import org.apache.openmeetings.db.util.ws.RoomMessage;
 import org.apache.openmeetings.web.room.wb.WbAction;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Component;
 
 import com.github.openjson.JSONArray;
@@ -56,6 +56,8 @@ import com.hazelcast.map.listener.EntryAddedListener;
 import com.hazelcast.map.listener.EntryRemovedListener;
 import com.hazelcast.map.listener.EntryUpdatedListener;
 
+import jakarta.inject.Inject;
+
 /**
  * Hazelcast based Whiteboard manager
  *
@@ -68,7 +70,7 @@ public class WhiteboardManager implements IWhiteboardManager {
 	private final Map<Long, Whiteboards> onlineWbs = new ConcurrentHashMap<>();
 	private static final String WBS_KEY = "WBS_KEY";
 
-	@Autowired
+	@Inject
 	private Application app;
 
 	private IMap<Long, Whiteboards> map() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
index 33cf6bac6..872dd8605 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
@@ -47,20 +47,22 @@ import org.apache.wicket.markup.html.panel.IMarkupSourcingStrategy;
 import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 import org.wicketstuff.select2.Response;
 import org.wicketstuff.select2.Select2MultiChoice;
 
+import jakarta.inject.Inject;
+
 public class GeneralUserForm extends Form<User> {
 	private static final long serialVersionUID = 1L;
 	private final RequiredTextField<String> email = new RequiredTextField<>("address.email");
 	private final List<GroupUser> grpUsers = new ArrayList<>();
 	private final AjaxOmDatePicker bday = new AjaxOmDatePicker("age");
 	private final boolean isAdminForm;
-	@SpringBean
+
+	@Inject
 	private GroupDao groupDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public GeneralUserForm(String id, IModel<User> model, boolean isAdminForm) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GroupChoiceProvider.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GroupChoiceProvider.java
index fb9abd995..a2cb5790f 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GroupChoiceProvider.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GroupChoiceProvider.java
@@ -32,17 +32,19 @@ import org.apache.openmeetings.db.entity.user.GroupUser;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.wicket.injection.Injector;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 import org.wicketstuff.select2.ChoiceProvider;
 import org.wicketstuff.select2.Response;
 
+import jakarta.inject.Inject;
+
 public class GroupChoiceProvider extends ChoiceProvider<Group> {
 	private static final long serialVersionUID = 1L;
 	public static final long PAGE_SIZE = 5;
-	@SpringBean
+
+	@Inject
 	private GroupDao groupDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public GroupChoiceProvider() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
index d6d16f616..f0c3a0b46 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/InvitationForm.java
@@ -60,12 +60,12 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.CollectionModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
+import jakarta.inject.Inject;
 
 public abstract class InvitationForm extends Form<Invitation> {
 	private static final long serialVersionUID = 1L;
@@ -83,11 +83,11 @@ public abstract class InvitationForm extends Form<Invitation> {
 	protected InvitationDialog dialog;
 	protected String dropDownParentId;
 
-	@SpringBean
+	@Inject
 	private InvitationDao inviteDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private InvitationManager inviteManager;
 
 	public enum Action {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
index 9c590c7cf..26348915c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/MainPanel.java
@@ -81,7 +81,6 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
 import org.apache.wicket.protocol.ws.api.message.AbstractClientMessage;
 import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.wicketstuff.urlfragment.UrlFragment;
@@ -90,6 +89,7 @@ import com.github.openjson.JSONObject;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.navbar.INavbarComponent;
 import de.agilecoders.wicket.core.markup.html.references.BootstrapJavaScriptReference;
+import jakarta.inject.Inject;
 
 public class MainPanel extends Panel {
 	private static final long serialVersionUID = 1L;
@@ -106,13 +106,13 @@ public class MainPanel extends Panel {
 	private BasePanel curPanel;
 	private InviteUserToRoomDialog inviteUser;
 
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
 
 	public MainPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java
index 819268af3..5ea40228c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmWebSocketPanel.java
@@ -42,19 +42,21 @@ import org.apache.wicket.protocol.ws.api.message.ClosedMessage;
 import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
 import org.apache.wicket.protocol.ws.api.message.ErrorMessage;
 import org.apache.wicket.protocol.ws.api.message.TextMessage;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.openmeetings.mediaserver.KurentoHandler;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 public abstract class OmWebSocketPanel extends Panel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(OmWebSocketPanel.class);
 	public static final String CONNECTED_MSG = "socketConnected";
 	private final AtomicBoolean connected = new AtomicBoolean();
-	@SpringBean
+
+	@Inject
 	private KurentoHandler kHandler;
 	private boolean pingable = false;
 
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
index 25d5b84d2..f971ef0d3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/ProfileImagePanel.java
@@ -21,12 +21,14 @@ package org.apache.openmeetings.web.common;
 import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
 
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 public class ProfileImagePanel extends ImagePanel {
 	private static final long serialVersionUID = 1L;
 	private final long userId;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public ProfileImagePanel(String id, final long userId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
index a2249b11a..8b30fb6ab 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UploadableProfileImagePanel.java
@@ -30,14 +30,16 @@ import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmFileHelper;
 import org.apache.openmeetings.util.StoredFile;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 public class UploadableProfileImagePanel extends UploadableImagePanel {
 	private static final long serialVersionUID = 1L;
 	private Long userId;
-	@SpringBean
+
+	@Inject
 	private ImageConverter converter;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public UploadableProfileImagePanel(String id, final Long userId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java
index 473da666f..3cd6170be 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/ConvertingErrorsDialog.java
@@ -35,9 +35,9 @@ import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class ConvertingErrorsDialog extends Modal<BaseFileItem> {
 	private static final long serialVersionUID = 1L;
@@ -61,7 +61,7 @@ public class ConvertingErrorsDialog extends Modal<BaseFileItem> {
 	};
 	private Component headerLabel;
 
-	@SpringBean
+	@Inject
 	private FileItemLogDao fileLogDao;
 
 	public ConvertingErrorsDialog(String id, IModel<BaseFileItem> model) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java
index b2364829f..0d2dfef7d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileItemPanel.java
@@ -28,12 +28,14 @@ import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.IModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 public class FileItemPanel extends FolderPanel {
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer errors = new WebMarkupContainer("errors");
-	@SpringBean
+
+	@Inject
 	private FileItemLogDao fileLogDao;
 
 	public FileItemPanel(String id, final IModel<BaseFileItem> model, final FileTreePanel fileTreePanel) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
index 5fe0f2a10..c60d25889 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
@@ -69,7 +69,6 @@ import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.resource.FileSystemResource;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import com.googlecode.wicket.jquery.core.JQueryBehavior;
 import com.googlecode.wicket.jquery.core.Options;
@@ -86,6 +85,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.dropdown.SplitBut
 import de.agilecoders.wicket.core.markup.html.bootstrap.image.IconType;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public abstract class FileTreePanel extends Panel {
 	private static final long serialVersionUID = 1L;
@@ -138,9 +138,9 @@ public abstract class FileTreePanel extends Panel {
 	});
 	private final Component upload = new WebMarkupContainer("upload");
 
-	@SpringBean
+	@Inject
 	private RecordingDao recDao;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
 
 	protected FileTreePanel(String id, Long roomId, NameDialog addFolder) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
index ef0a0e8e0..1350bbc55 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FolderPanel.java
@@ -43,7 +43,6 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.Strings;
 
 import com.github.openjson.JSONObject;
@@ -54,6 +53,8 @@ import com.googlecode.wicket.jquery.ui.interaction.draggable.IDraggableListener;
 import com.googlecode.wicket.jquery.ui.interaction.droppable.DroppableBehavior;
 import com.googlecode.wicket.jquery.ui.interaction.droppable.IDroppableListener;
 
+import jakarta.inject.Inject;
+
 public class FolderPanel extends Panel implements IDraggableListener, IDroppableListener {
 	private static final long serialVersionUID = 1L;
 	private static final String CSS_CLASS_FILE = "file ";
@@ -62,9 +63,10 @@ public class FolderPanel extends Panel implements IDraggableListener, IDroppable
 	private static final String PARAM_CTRL = "c";
 	private final StyleBehavior styleClass;
 	private final FileTreePanel treePanel;
-	@SpringBean
+
+	@Inject
 	private RecordingDao recDao;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
 
 	public FolderPanel(String id, final IModel<BaseFileItem> model, final FileTreePanel treePanel) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
index fde3e082e..e2f055aca 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
@@ -41,7 +41,8 @@ import org.apache.wicket.extensions.markup.html.repeater.tree.ITreeProvider;
 import org.apache.wicket.injection.Injector;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 public class OmTreeProvider implements ITreeProvider<BaseFileItem> {
 	private static final long serialVersionUID = 1L;
@@ -57,11 +58,12 @@ public class OmTreeProvider implements ITreeProvider<BaseFileItem> {
 	private final String lblPublic;
 	private final String lblGroupFile;
 	private final String lblGroupRec;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private RecordingDao recDao;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
 
 	public OmTreeProvider(Long roomId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
index e27570510..a669b6212 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
@@ -26,9 +26,10 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import jakarta.inject.Inject;
 import jakarta.ws.rs.core.MediaType;
 
-import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload2.FileItem;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.web.app.Application;
@@ -42,7 +43,6 @@ import org.apache.wicket.request.resource.AbstractResource.WriteCallback;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.lang.Bytes;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -61,7 +61,7 @@ public abstract class UploadResourceReference extends ResourceReference {
 		, ERROR
 	}
 
-	@SpringBean
+	@Inject
 	private ClientManager cm;
 
 	protected UploadResourceReference(Class<?> scope, String name) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
index 780ceb8ed..921b6b971 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
@@ -24,13 +24,15 @@ import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.StringValue;
 
+import jakarta.inject.Inject;
+
 public class ActivatePage extends BaseNotInitedPage {
 	private static final long serialVersionUID = 1L;
 	public static final String ACTIVATION_PARAM = "u";
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public ActivatePage(PageParameters pp) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
index 786d32cb9..0d959c3c6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/HashPage.java
@@ -53,9 +53,10 @@ import org.apache.wicket.protocol.ws.api.WebSocketRequestHandler;
 import org.apache.wicket.protocol.ws.api.message.ConnectedMessage;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.StringValue;
 
+import jakarta.inject.Inject;
+
 public class HashPage extends BaseInitedPage implements IUpdatable {
 	private static final long serialVersionUID = 1L;
 	public static final String APP = "app";
@@ -75,9 +76,9 @@ public class HashPage extends BaseInitedPage implements IUpdatable {
 	private RoomPanel roomPanel = null;
 	private final PageParameters p;
 
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private RecordingDao recDao;
 
 	public HashPage(PageParameters p) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ResetPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ResetPage.java
index 84c1d647b..98ad7cca9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ResetPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ResetPage.java
@@ -26,10 +26,10 @@ import org.apache.openmeetings.web.pages.auth.ResetPasswordDialog;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.TextContentModal;
+import jakarta.inject.Inject;
 
 public class ResetPage extends BaseNotInitedPage {
 	private static final long serialVersionUID = 1L;
@@ -42,7 +42,8 @@ public class ResetPage extends BaseNotInitedPage {
 			setResponsePage(Application.get().getSignInPageClass());
 		}
 	};
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public ResetPage(PageParameters pp) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
index fe26e94ce..d921aa4fe 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
@@ -49,7 +49,7 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.validation.IValidatable;
 import org.apache.wicket.validation.IValidator;
@@ -61,6 +61,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButt
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class ForgetPasswordDialog extends Modal<String> {
 	private static final Logger log = LoggerFactory.getLogger(ForgetPasswordDialog.class);
@@ -74,9 +75,9 @@ public class ForgetPasswordDialog extends Modal<String> {
 	private ForgetPasswordForm form = new ForgetPasswordForm("form");
 	private boolean wasReset = false;
 
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private MailHandler mailHandler;
 
 	enum Type {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/OtpDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/OtpDialog.java
index 968d3d636..48359f756 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/OtpDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/OtpDialog.java
@@ -41,13 +41,14 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.spinner.SpinnerAjaxButton;
+import jakarta.inject.Inject;
 
 public class OtpDialog extends Modal<User> {
 	private static final long serialVersionUID = 1L;
@@ -56,9 +57,10 @@ public class OtpDialog extends Modal<User> {
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
 	private final OtpForm form = new OtpForm("form");
 	private final RadioGroup<String> radioGroup = new RadioGroup<>("type", Model.of(TYPE_OTP));
-	@SpringBean
+
+	@Inject
 	private OtpManager otpManager;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public OtpDialog(String id, IModel<User> model) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
index 0ec636d04..004fc4622 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
@@ -47,7 +47,7 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.validation.IValidatable;
 import org.slf4j.Logger;
@@ -57,6 +57,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.spinner.SpinnerAjaxButton;
+import jakarta.inject.Inject;
 
 public class RegisterDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -75,9 +76,9 @@ public class RegisterDialog extends Modal<String> {
 	private Long lang;
 	private boolean wasRegistered = false;
 
-	@SpringBean
+	@Inject
 	private IUserManager userManager;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public RegisterDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
index dff43f077..473d84e3b 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ResetPasswordDialog.java
@@ -29,12 +29,13 @@ import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class ResetPasswordDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -43,7 +44,7 @@ public class ResetPasswordDialog extends Modal<String> {
 	private PasswordTextField password;
 	private final User user;
 
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public ResetPasswordDialog(String id, final User user) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
index 06b9320a1..223ad9292 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInDialog.java
@@ -67,7 +67,7 @@ import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -78,6 +78,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.core.markup.html.bootstrap.image.IconType;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.spinner.SpinnerAjaxButton;
+import jakarta.inject.Inject;
 
 public class SignInDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -87,13 +88,14 @@ public class SignInDialog extends Modal<String> {
 	private boolean rememberMe = false;
 	private LdapConfig domain;
 	private NotificationPanel feedback = new NotificationPanel("feedback");
-	@SpringBean
+
+	@Inject
 	private ConfigurationDao cfgDao;
-	@SpringBean
+	@Inject
 	private LdapConfigDao ldapDao;
-	@SpringBean
+	@Inject
 	private OAuth2Dao oauthDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public SignInDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
index 71130f459..a960c99d3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/SignInPage.java
@@ -44,7 +44,6 @@ import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.IRequestParameters;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
 import org.apache.wicket.util.string.StringValue;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -53,6 +52,7 @@ import com.github.openjson.JSONException;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.TextContentModal;
+import jakarta.inject.Inject;
 
 public class SignInPage extends BaseInitedPage {
 	private static final long serialVersionUID = 1L;
@@ -109,11 +109,11 @@ public class SignInPage extends BaseInitedPage {
 	};
 	RegisterDialog r = new RegisterDialog("register");
 	private final OtpDialog otpDialog = new OtpDialog("otpDialog", Model.of());
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
-	@SpringBean
+	@Inject
 	private UserManager userManager;
-	@SpringBean
+	@Inject
 	private OAuth2Dao oauthDao;
 
 	public SignInPage() throws InterruptedException {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
index ebe162ea6..6d99addf5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
@@ -86,7 +86,7 @@ import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.StringResourceModel;
 import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -102,6 +102,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.components.progress.Upda
 import de.agilecoders.wicket.core.markup.html.bootstrap.utilities.BackgroundColorBehavior;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.spinner.SpinnerAjaxButton;
 import de.agilecoders.wicket.extensions.wizard.BootstrapWizard;
+import jakarta.inject.Inject;
 
 public class InstallWizard extends BootstrapWizard {
 	private static final long serialVersionUID = 1L;
@@ -122,7 +123,7 @@ public class InstallWizard extends BootstrapWizard {
 	private final List<Button> buttons = new ArrayList<>(4);
 	private WizardButtonBar btnBar;
 
-	@SpringBean
+	@Inject
 	private ImportInitvalues initvalues;
 
 	//onInit, applyState
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java
index ffa7ea219..27394ad00 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/NicknameDialog.java
@@ -34,13 +34,14 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.RequiredTextField;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class NicknameDialog extends Modal<User> {
 	private static final long serialVersionUID = 1L;
@@ -48,7 +49,8 @@ public class NicknameDialog extends Modal<User> {
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
 	private final RoomPanel room;
 	private Form<User> form;
-	@SpringBean
+
+	@Inject
 	private ClientManager cm;
 
 	public NicknameDialog(String id, final RoomPanel room) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index f4bebbb9d..a2a7cd01d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
@@ -93,7 +93,7 @@ import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceStreamResource;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.resource.FileResourceStream;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.string.Strings;
@@ -114,6 +114,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Alert;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal.Backdrop;
+import jakarta.inject.Inject;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.TextContentModal;
 
 @AuthorizeInstantiation("ROOM")
@@ -258,21 +259,21 @@ public class RoomPanel extends BasePanel {
 	private boolean avInited = false;
 	private boolean jsInited = false;
 
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private AppointmentDao apptDao;
-	@SpringBean
+	@Inject
 	private QuickPollManager qpollManager;
-	@SpringBean
+	@Inject
 	private KurentoHandler kHandler;
-	@SpringBean
+	@Inject
 	private StreamProcessor streamProcessor;
-	@SpringBean
+	@Inject
 	private TimerService timerService;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
 
 	public RoomPanel(String id, Room r) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
index 98636ed83..d9ae8cc85 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
@@ -38,17 +38,20 @@ import org.apache.openmeetings.web.util.FileItemResourceReference;
 import org.apache.wicket.injection.Injector;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource.Attributes;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.StringValue;
 
+import jakarta.inject.Inject;
+
 public class RoomResourceReference extends FileItemResourceReference<FileItem> {
 	private static final long serialVersionUID = 1L;
 	private static final String DEFAULT_NAME = "wb-room-file";
-	@SpringBean
+
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
-	@SpringBean
+	@Inject
 	private GroupUserDao groupUserDao;
 
 	public RoomResourceReference() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
index 86ac8a69b..8890d4b51 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/activities/ActivitiesPanel.java
@@ -43,7 +43,7 @@ import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.StringValue;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -51,6 +51,8 @@ import org.slf4j.LoggerFactory;
 import com.github.openjson.JSONArray;
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 public class ActivitiesPanel extends Panel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(ActivitiesPanel.class);
@@ -155,7 +157,8 @@ public class ActivitiesPanel extends Panel {
 			response.render(new PriorityHeaderItem(getNamedFunction("activityAction", this, explicit(PARAM_ROOM_ID), explicit(ACTION), explicit(PARAM_ID))));
 		}
 	};
-	@SpringBean
+
+	@Inject
 	private ClientManager cm;
 
 	public ActivitiesPanel(String id, RoomPanel room) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
index 0d69ea287..c7cca66ac 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
@@ -36,7 +36,9 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
 import org.apache.wicket.ajax.attributes.IAjaxCallListener;
 import org.apache.wicket.injection.Injector;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
+
 
 public class ActionsSubMenu implements Serializable {
 	private static final long serialVersionUID = 1L;
@@ -56,7 +58,8 @@ public class ActionsSubMenu implements Serializable {
 	private OmMenuItem resetWb;
 	private OmMenuItem localSettings;
 	private final boolean visible;
-	@SpringBean
+
+	@Inject
 	private WhiteboardManager wbManager;
 
 	public ActionsSubMenu(final RoomPanel room, final RoomMenuPanel mp) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ExtrasSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ExtrasSubMenu.java
index b5376109b..2e6fe3e95 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ExtrasSubMenu.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ExtrasSubMenu.java
@@ -30,16 +30,18 @@ import org.apache.openmeetings.web.common.menu.OmMenuItem;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.injection.Injector;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
+
 
 public class ExtrasSubMenu implements Serializable {
 	private static final long serialVersionUID = 1L;
 	private final RoomPanel room;
 	private OmMenuItem extraMenu;
 
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private ExtraMenuDao menuDao;
 
 	public ExtrasSubMenu(final RoomPanel room) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
index 5432adf45..2db859c50 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/PollsSubMenu.java
@@ -42,10 +42,12 @@ import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.injection.Injector;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import jakarta.inject.Inject;
+
 public class PollsSubMenu implements Serializable {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(PollsSubMenu.class);
@@ -88,9 +90,10 @@ public class PollsSubMenu implements Serializable {
 		}
 	};
 	private final boolean visible;
-	@SpringBean
+
+	@Inject
 	private QuickPollManager qpollManager;
-	@SpringBean
+	@Inject
 	private PollDao pollDao;
 
 	public PollsSubMenu(final RoomPanel room, final RoomMenuPanel mp) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
index 65e11512d..63dc55f34 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomInvitationForm.java
@@ -45,12 +45,14 @@ import org.apache.wicket.markup.html.form.RadioGroup;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.CollectionModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.wicketstuff.select2.Select2MultiChoice;
 
+import jakarta.inject.Inject;
+
 public class RoomInvitationForm extends InvitationForm {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(RoomInvitationForm.class);
@@ -61,11 +63,12 @@ public class RoomInvitationForm extends InvitationForm {
 			, new CollectionModel<>(new ArrayList<>())
 			, new GroupChoiceProvider());
 	final WebMarkupContainer sipContainer = new WebMarkupContainer("sip-container");
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private GroupUserDao groupUserDao;
-	@SpringBean
+	@Inject
 	private InvitationManager invitationManager;
 
 	enum InviteeType {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index bba3616c5..2dcc1deb7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
@@ -61,7 +61,7 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.request.flow.RedirectToUrlException;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.apache.openmeetings.mediaserver.KurentoHandler;
 import org.apache.openmeetings.mediaserver.StreamProcessor;
@@ -70,6 +70,7 @@ import com.github.openjson.JSONObject;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.navbar.INavbarComponent;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class RoomMenuPanel extends Panel {
 	private static final long serialVersionUID = 1L;
@@ -106,15 +107,16 @@ public class RoomMenuPanel extends Panel {
 	private final PollsSubMenu pollsSubMenu;
 	private final ActionsSubMenu actionsSubMenu;
 	private final ExtrasSubMenu extrasSubMenu;
-	@SpringBean
+
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
-	@SpringBean
+	@Inject
 	private ChatDao chatDao;
-	@SpringBean
+	@Inject
 	private KurentoHandler kHandler;
-	@SpringBean
+	@Inject
 	private StreamProcessor streamProcessor;
 
 	public RoomMenuPanel(String id, final RoomPanel room) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/SipDialerDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/SipDialerDialog.java
index 33b0ce9c3..be0ea2031 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/SipDialerDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/SipDialerDialog.java
@@ -27,12 +27,13 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class SipDialerDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -40,7 +41,8 @@ public class SipDialerDialog extends Modal<String> {
 	private final Form<String> form = new Form<>("form", Model.of(""));
 	private final TextField<String> number = new TextField<>("number", Model.of(""));
 	private final RoomPanel room;
-	@SpringBean
+
+	@Inject
 	private SipManager sipDao;
 
 	public SipDialerDialog(String id, RoomPanel room) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
index bd2b1c03d..cb7cce889 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/CreatePollDialog.java
@@ -40,23 +40,25 @@ import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class CreatePollDialog extends Modal<RoomPoll> {
 	private static final long serialVersionUID = 1L;
 	private final Long roomId;
 	private PollForm form;
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private PollDao pollDao;
 
 	public CreatePollDialog(String id, Long roomId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
index 08ada8e24..346eec104 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/PollResultsDialog.java
@@ -47,7 +47,7 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.wicketstuff.jqplot.behavior.JqPlotBehavior;
 import org.wicketstuff.jqplot.behavior.JqPlotCssResourceReference;
 import org.wicketstuff.jqplot.behavior.JqPlotJavascriptResourceReference;
@@ -65,6 +65,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class PollResultsDialog extends Modal<RoomPoll> {
 	private static final long serialVersionUID = 1L;
@@ -82,9 +83,10 @@ public class PollResultsDialog extends Modal<RoomPoll> {
 	private String chartPie;
 	private final CreatePollDialog createPoll;
 	private DropDownChoice<String> chartType;
-	@SpringBean
+
+	@Inject
 	private PollDao pollDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public PollResultsDialog(String id, CreatePollDialog createPoll, Long roomId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
index 9ef769ca2..86a8cc3b5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/poll/VoteDialog.java
@@ -45,12 +45,13 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class VoteDialog extends Modal<RoomPollAnswer> {
 	private static final long serialVersionUID = 1L;
@@ -58,9 +59,10 @@ public class VoteDialog extends Modal<RoomPollAnswer> {
 	private PollAnswerForm form;
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
 	private final Label userLbl = new Label("user", Model.of(""));
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private PollDao pollDao;
 
 	public VoteDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
index 5eb979d13..8423d9548 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
@@ -32,14 +32,17 @@ import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxEventBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
+
 
 public class RoomFilePanel extends FileTreePanel {
 	private static final long serialVersionUID = 1L;
 	private final RoomPanel room;
-	@SpringBean
+
+	@Inject
 	private FileItemDao fileDao;
-	@SpringBean
+	@Inject
 	private RecordingDao recDao;
 
 	public RoomFilePanel(String id, RoomPanel room, NameDialog addFolder) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java
index 1ed5dfa5d..5fb346aaf 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFileUploadResourceReference.java
@@ -26,7 +26,7 @@ import java.util.Optional;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.DoubleConsumer;
 
-import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload2.FileItem;
 import org.apache.openmeetings.core.data.file.FileProcessor;
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
@@ -44,12 +44,14 @@ import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.common.upload.UploadResourceReference;
 import org.apache.wicket.injection.Injector;
 import org.apache.wicket.protocol.http.servlet.MultipartServletWebRequest;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 public class RoomFileUploadResourceReference extends UploadResourceReference {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(RoomFileUploadResourceReference.class);
@@ -60,11 +62,11 @@ public class RoomFileUploadResourceReference extends UploadResourceReference {
 	public static final String PARAM_LAST_SELECTED_OWNER = "room-upload-last-selected-owner";
 	public static final String PARAM_LAST_SELECTED_GROUP = "room-upload-last-selected-group";
 
-	@SpringBean
+	@Inject
 	private FileProcessor processor;
-	@SpringBean
+	@Inject
 	private FileItemLogDao fileLogDao;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
 
 	public RoomFileUploadResourceReference() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
index 480d85da6..f06571fc6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomSidebar.java
@@ -37,7 +37,7 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.apache.openmeetings.mediaserver.StreamProcessor;
 import org.slf4j.Logger;
@@ -45,6 +45,8 @@ import org.slf4j.LoggerFactory;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 public class RoomSidebar extends Panel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(RoomSidebar.class);
@@ -61,9 +63,9 @@ public class RoomSidebar extends Panel {
 	private VideoSettings settings = new VideoSettings("settings");
 	private ActivitiesPanel activities;
 
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private StreamProcessor streamProcessor;
 
 	public RoomSidebar(String id, final RoomPanel room) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
index e6a6b49fa..3701ee8ad 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/InterviewWbPanel.java
@@ -24,14 +24,17 @@ import org.apache.openmeetings.db.entity.basic.Client;
 import org.apache.openmeetings.db.entity.room.Room.Right;
 import org.apache.openmeetings.web.room.RoomPanel;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.openmeetings.mediaserver.StreamProcessor;
 
 import com.github.openjson.JSONObject;
 
+import jakarta.inject.Inject;
+
 public class InterviewWbPanel extends AbstractWbPanel {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private StreamProcessor streamProcessor;
 
 	public InterviewWbPanel(String id, RoomPanel rp) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
index e466b28d7..b0597ed90 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbPanel.java
@@ -71,7 +71,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.danekja.java.util.function.serializable.SerializableBiConsumer;
 import org.slf4j.Logger;
@@ -81,6 +81,8 @@ import com.github.openjson.JSONArray;
 import com.github.openjson.JSONObject;
 import com.github.openjson.JSONTokener;
 
+import jakarta.inject.Inject;
+
 public class WbPanel extends AbstractWbPanel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(WbPanel.class);
@@ -135,9 +137,10 @@ public class WbPanel extends AbstractWbPanel {
 					, UndoObject.Type.REMOVE, arr));
 		}
 	};
-	@SpringBean
+
+	@Inject
 	private WhiteboardManager wbm;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
 
 	public WbPanel(String id, RoomPanel rp) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
index 0cd6cbe1f..9c9739eab 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserMessageDialog.java
@@ -30,20 +30,22 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class InviteUserMessageDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
 	private final Form<Void> form = new Form<>("form");
 	private final TextArea<String> message = new TextArea<>("message", Model.of(""));
 	private final CheckBox enterRoom = new CheckBox("enterRoom", Model.of(false));
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
 
 	public InviteUserMessageDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
index 942efb5a0..e00e1dc64 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/InviteUserToRoomDialog.java
@@ -32,9 +32,10 @@ import org.apache.openmeetings.web.user.rooms.RoomListPanel;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class InviteUserToRoomDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -42,9 +43,10 @@ public class InviteUserToRoomDialog extends Modal<String> {
 	private RoomListPanel privateRooms;
 	private final InviteUserMessageDialog inviteMsg = new InviteUserMessageDialog("inviteMsg");
 	private Long userId;
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	private class InviteRoomListPanel extends RoomListPanel {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
index 239bf5449..08b21c41e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/MessageDialog.java
@@ -71,7 +71,7 @@ import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.CollectionModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
 
@@ -79,6 +79,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButt
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class MessageDialog extends Modal<PrivateMessage> {
 	private static final long serialVersionUID = 1L;
@@ -90,19 +91,20 @@ public class MessageDialog extends Modal<PrivateMessage> {
 	private final OmDateTimePicker end = new OmDateTimePicker("end", Model.of(LocalDateTime.now()));
 	private boolean isPrivate = false;
 	private final IModel<Collection<User>> modelTo = new CollectionModel<>(new ArrayList<>());
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
-	@SpringBean
+	@Inject
 	private AppointmentDao apptDao;
-	@SpringBean
+	@Inject
 	private PrivateMessageDao msgDao;
-	@SpringBean
+	@Inject
 	private IInvitationManager inviteManager;
-	@SpringBean
+	@Inject
 	private MailHandler handler;
 
 	public MessageDialog(String id, CompoundPropertyModel<PrivateMessage> model) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java
index faa07127e..4a162bbb9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/UserInfoDialog.java
@@ -29,22 +29,24 @@ import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class UserInfoDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
 	private WebMarkupContainer container = new WebMarkupContainer("container");
 	private MessageDialog newMessage;
 	private long userId;
-	@SpringBean
-	private UserContactDao contactDao;
 	private BootstrapAjaxLink<String> message;
 	private BootstrapAjaxLink<String> contacts;
 
+	@Inject
+	private UserContactDao contactDao;
+
 	public UserInfoDialog(String id, MessageDialog newMessage) {
 		super(id);
 		this.newMessage = newMessage;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
index c40359e35..979bf8b93 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
@@ -84,7 +84,7 @@ import org.apache.wicket.model.Model;
 import org.apache.wicket.model.PropertyModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.model.util.CollectionModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.wicketstuff.select2.Select2MultiChoice;
@@ -96,6 +96,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 public class AppointmentDialog extends Modal<Appointment> {
 	private static final long serialVersionUID = 1L;
@@ -117,17 +118,18 @@ public class AppointmentDialog extends Modal<Appointment> {
 		USER
 		, GROUP
 	}
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private AppointmentDao apptDao;
-	@SpringBean
+	@Inject
 	private GroupUserDao groupUserDao;
-	@SpringBean
+	@Inject
 	private AppointmentManager apptManager;
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
 
 	public AppointmentDialog(String id, CalendarPanel calendarPanel, CompoundPropertyModel<Appointment> model) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarDialog.java
index 4f830b54a..a8602bf25 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarDialog.java
@@ -46,7 +46,7 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.validation.IValidatable;
 import org.apache.wicket.validation.validator.UrlValidator;
 import org.slf4j.Logger;
@@ -57,6 +57,7 @@ import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 /**
  * Multipurpose Calendar Dialog form. This provides the ability to ask for a user prompt,
@@ -74,11 +75,12 @@ public class CalendarDialog extends Modal<OmCalendar> {
 	private UserCalendarForm form;
 	private List<OmCalendar> cals; //List of calendars for syncing
 	private int calIndex = 0;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private AppointmentDao apptDao;
-	@SpringBean
+	@Inject
 	private AppointmentManager apptManager;
 
 	public enum DIALOG_TYPE {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
index 65536d1ad..1b1cf9939 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
@@ -60,7 +60,7 @@ import org.apache.wicket.model.LoadableDetachableModel;
 import org.apache.wicket.model.ResourceModel;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -72,6 +72,7 @@ import com.googlecode.wicket.jquery.ui.calendar.EventSource.GoogleCalendar;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import jakarta.inject.Inject;
 
 public class CalendarPanel extends UserBasePanel {
 	private static final Logger log = LoggerFactory.getLogger(CalendarPanel.class);
@@ -105,13 +106,13 @@ public class CalendarPanel extends UserBasePanel {
 	// Context for the HttpClient. Mainly used for credentials.
 	private transient HttpClientContext context = null;
 
-	@SpringBean
+	@Inject
 	private AppointmentDao apptDao;
-	@SpringBean
+	@Inject
 	private AppointmentManager apptManager;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
 
 	public CalendarPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
index 3d91602c1..94933b715 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
@@ -55,13 +55,15 @@ import org.apache.wicket.markup.head.PriorityHeaderItem;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import com.github.openjson.JSONObject;
 import com.googlecode.wicket.jquery.ui.settings.JQueryUILibrarySettings;
 
+import jakarta.inject.Inject;
+
 public class Chat extends Panel {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(Chat.class);
@@ -103,13 +105,13 @@ public class Chat extends Panel {
 		}
 	};
 
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private ConfigurationDao cfgDao;
-	@SpringBean
+	@Inject
 	private ChatDao chatDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public Chat(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
index 91f410222..cc2a591e6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatForm.java
@@ -48,7 +48,7 @@ import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.HiddenField;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -56,18 +56,20 @@ import org.slf4j.LoggerFactory;
 import com.github.openjson.JSONObject;
 import com.googlecode.wicket.jquery.ui.plugins.wysiwyg.WysiwygEditor;
 
+import jakarta.inject.Inject;
+
 public class ChatForm extends Form<Void> {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(ChatForm.class);
 	private final HiddenField<String> activeTab = new HiddenField<>("activeTab", Model.of(""));
 
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private ChatDao chatDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
 
 	public ChatForm(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
index 868941abb..548787b41 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
@@ -31,6 +31,7 @@ import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
 
 import java.util.List;
 
+import jakarta.inject.Inject;
 import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.openmeetings.core.util.WebSocketHelper;
@@ -48,7 +49,7 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.resource.ResourceStreamResource;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
 
@@ -141,9 +142,9 @@ public class ChatToolbar extends Panel implements IWysiwygToolbar {
 		}
 	});
 
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private ChatDao chatDao;
 
 	/**
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/MyRoomsWidgetView.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/MyRoomsWidgetView.java
index 7400b33c1..6439d88d3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/MyRoomsWidgetView.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/MyRoomsWidgetView.java
@@ -24,13 +24,16 @@ import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.user.rooms.RoomsPanel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.wicketstuff.dashboard.Widget;
 import org.wicketstuff.dashboard.web.WidgetView;
 
+import jakarta.inject.Inject;
+
 public class MyRoomsWidgetView extends WidgetView {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
 
 	public MyRoomsWidgetView(String id, Model<Widget> model) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/RecentRoomsWidgetView.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/RecentRoomsWidgetView.java
index 25af7240c..3378ae398 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/RecentRoomsWidgetView.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/RecentRoomsWidgetView.java
@@ -23,13 +23,16 @@ import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.web.user.rooms.RoomsPanel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.wicketstuff.dashboard.Widget;
 import org.wicketstuff.dashboard.web.WidgetView;
 
+import jakarta.inject.Inject;
+
 public class RecentRoomsWidgetView extends WidgetView {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
 
 	public RecentRoomsWidgetView(String id, Model<Widget> model) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
index 81f32960c..cab5c17a4 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/WelcomeWidgetView.java
@@ -40,15 +40,18 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.wicketstuff.dashboard.Widget;
 import org.wicketstuff.dashboard.web.WidgetView;
 
+import jakarta.inject.Inject;
+
 public class WelcomeWidgetView extends WidgetView {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private PrivateMessageDao msgDao;
 
 	public WelcomeWidgetView(String id, Model<Widget> model) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
index 44509eb18..b5fd1e2fa 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
@@ -40,12 +40,13 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.spinner.SpinnerAjaxButton;
+import jakarta.inject.Inject;
 
 public class AdminCleanupInfoDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -58,11 +59,12 @@ public class AdminCleanupInfoDialog extends Modal<String> {
 	private CleanupEntityUnitPanel fin;
 	private final WebMarkupContainer container = new WebMarkupContainer("container");
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private FileItemDao fileDao;
-	@SpringBean
+	@Inject
 	private RecordingDao recDao;
 
 	public AdminCleanupInfoDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
index f2280c5e5..1ad79bbb6 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ChangePasswordDialog.java
@@ -30,13 +30,14 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.spinner.SpinnerAjaxButton;
+import jakarta.inject.Inject;
 
 public class ChangePasswordDialog extends Modal<String> {
 	private static final long serialVersionUID = 1L;
@@ -61,7 +62,8 @@ public class ChangePasswordDialog extends Modal<String> {
 		}
 	};
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public ChangePasswordDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/EditProfileForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/EditProfileForm.java
index 2ac5b1372..c4efb0b61 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/EditProfileForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/EditProfileForm.java
@@ -47,13 +47,14 @@ import org.apache.wicket.markup.html.panel.PanelMarkupSourcingStrategy;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.confirmation.ConfirmationBehavior;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class EditProfileForm extends Form<User> {
 	private static final long serialVersionUID = 1L;
@@ -63,7 +64,7 @@ public class EditProfileForm extends Form<User> {
 	private FormActionsPanel<User> actions;
 	private BootstrapAjaxLink<String> toggleOtp;
 
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public EditProfileForm(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java
index 8e968e4f8..1d574d78e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationDetails.java
@@ -35,7 +35,8 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
 
 public class InvitationDetails extends Form<Invitation>{
 	private static final long serialVersionUID = 1L;
@@ -45,7 +46,8 @@ public class InvitationDetails extends Form<Invitation>{
 	private final Label invitee = new Label("invitee", Model.of(""));
 	private final DateLabel from = new DateLabel("validFrom", Model.of((Date)null));
 	private final DateLabel to = new DateLabel("validTo", Model.of((Date)null));
-	@SpringBean
+
+	@Inject
 	private InvitationDao inviteDao;
 
 	public InvitationDetails(String id, final WebMarkupContainer list, Invitation i) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
index b2014fd64..ef17a67f7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
@@ -76,11 +76,12 @@ import org.apache.wicket.markup.repeater.data.IDataProvider;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.util.ListModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class MessagesContactsPanel extends UserBasePanel {
 	private static final long serialVersionUID = 1L;
@@ -149,13 +150,14 @@ public class MessagesContactsPanel extends UserBasePanel {
 			}
 		});
 	private WebMarkupContainer selectedFolder;
-	@SpringBean
+
+	@Inject
 	private PrivateMessageDao msgDao;
-	@SpringBean
+	@Inject
 	private PrivateMessageFolderDao folderDao;
-	@SpringBean
+	@Inject
 	private UserContactDao contactDao;
-	@SpringBean
+	@Inject
 	private AppointmentDao apptDao;
 
 	public MessagesContactsPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ToggleOtpDialog.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ToggleOtpDialog.java
index 72df0279a..ab7c994e3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ToggleOtpDialog.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/ToggleOtpDialog.java
@@ -34,13 +34,14 @@ import org.apache.wicket.markup.html.form.PasswordTextField;
 import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.core.markup.html.bootstrap.common.NotificationPanel;
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.spinner.SpinnerAjaxButton;
+import jakarta.inject.Inject;
 
 public class ToggleOtpDialog extends Modal<User> {
 	private final NotificationPanel feedback = new NotificationPanel("feedback");
@@ -50,9 +51,9 @@ public class ToggleOtpDialog extends Modal<User> {
 	private String secret;
 	private String[] codes;
 
-	@SpringBean
+	@Inject
 	private OtpManager otpManager;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public ToggleOtpDialog(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.java
index 4b32b8407..abd8a9b08 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserProfilePanel.java
@@ -30,16 +30,19 @@ import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.TextArea;
 import org.apache.wicket.model.CompoundPropertyModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
+
 
 public class UserProfilePanel extends UserBasePanel {
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer address = new WebMarkupContainer("address");
 	private final Label addressDenied = new Label("addressDenied", "");
 	private final WebMarkupContainer infoPanel = new WebMarkupContainer("info-panel");
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private UserContactDao contactDao;
 
 	public UserProfilePanel(String id, long userId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
index 98db6288f..6d20f4441 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
@@ -47,10 +47,11 @@ import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxButton;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import jakarta.inject.Inject;
 
 public class UserSearchPanel extends UserBasePanel {
 	private static final long serialVersionUID = 1L;
@@ -62,11 +63,12 @@ public class UserSearchPanel extends UserBasePanel {
 	private final TextField<String> offer = new TextField<>("offer", Model.of(""));
 	private boolean searched = false;
 	private final WebMarkupContainer container = new WebMarkupContainer("container");
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private UserContactDao contactDao;
-	@SpringBean
+	@Inject
 	private ClientManager cm;
 
 	public UserSearchPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java
index 0e80f3846..2c7160cd8 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java
@@ -40,15 +40,18 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.wicketstuff.dashboard.Dashboard;
 import org.wicketstuff.dashboard.Widget;
 import org.wicketstuff.dashboard.WidgetDescriptor;
 import org.wicketstuff.dashboard.web.DashboardContext;
 
+import jakarta.inject.Inject;
+
 public class WidgetsPanel extends UserBasePanel {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private ConfigurationDao cfgDao;
 
 	public WidgetsPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
index c319b0fcb..9a3816dc9 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingInvitationForm.java
@@ -21,12 +21,15 @@ package org.apache.openmeetings.web.user.record;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.web.common.InvitationForm;
 import org.apache.wicket.ajax.AjaxRequestTarget;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
+
 
 public class RecordingInvitationForm extends InvitationForm {
 	private static final long serialVersionUID = 1L;
 	private Long recordingId;
-	@SpringBean
+
+	@Inject
 	private RecordingDao recDao;
 
 	public RecordingInvitationForm(String id, String dropDownParentId) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
index 92d0a6e77..3a6440332 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingResourceReference.java
@@ -33,18 +33,21 @@ import org.apache.openmeetings.web.util.FileItemResourceReference;
 import org.apache.wicket.injection.Injector;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource.Attributes;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.StringValue;
 
+import jakarta.inject.Inject;
+
 public abstract class RecordingResourceReference extends FileItemResourceReference<Recording> {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private RecordingDao recDao;
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private GroupUserDao groupUserDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	protected RecordingResourceReference(String name) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
index 5e1c0be8e..a98a39521 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
@@ -41,10 +41,11 @@ import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.markup.html.link.AbstractLink;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
+import jakarta.inject.Inject;
 
 public class RecordingsPanel extends UserBasePanel {
 	private static final long serialVersionUID = 1L;
@@ -55,13 +56,13 @@ public class RecordingsPanel extends UserBasePanel {
 	private InvitationDialog invite;
 	private RecordingInvitationForm rif = new RecordingInvitationForm("form", INVITE_DIALOG_ID);
 
-	@SpringBean
+	@Inject
 	private RecordingDao recDao;
-	@SpringBean
+	@Inject
 	private InterviewConverter interviewConverter;
-	@SpringBean
+	@Inject
 	private RecordingConverter recordingConverter;
-	@SpringBean
+	@Inject
 	private RecordingChunkDao chunkDao;
 
 	public RecordingsPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
index 775b979a1..8a336859e 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/VideoInfo.java
@@ -31,16 +31,19 @@ import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.CompoundPropertyModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
+
 
 public class VideoInfo extends Panel {
 	private static final long serialVersionUID = 1L;
 	private final Form<Void> form = new Form<>("form");
 	private final Label dateLbl = new Label("recordEnd", Model.of(""));
 	private final Label roomNameLbl = new Label("roomName", Model.of(""));
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private RecordingChunkDao chunkDao;
 
 	public VideoInfo(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
index 0402ecdee..0507b73eb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
@@ -41,12 +41,13 @@ import org.apache.wicket.markup.html.panel.Panel;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.behavior.CssClassNameAppender;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.BootstrapAjaxLink;
 import de.agilecoders.wicket.core.markup.html.bootstrap.button.Buttons;
 import de.agilecoders.wicket.extensions.markup.html.bootstrap.icon.FontAwesome6IconType;
+import jakarta.inject.Inject;
 
 public class RoomListPanel extends Panel {
 	private static final long serialVersionUID = 1L;
@@ -101,7 +102,8 @@ public class RoomListPanel extends Panel {
 			}.add(AttributeModifier.append(ATTR_TITLE, new ResourceModel("lbl.refresh"))));
 		}
 	};
-	@SpringBean
+
+	@Inject
 	private ClientManager cm;
 
 	public RoomListPanel(String id, List<Room> rooms, final String label) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
index 520486273..cee177c5c 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
@@ -38,9 +38,11 @@ import org.apache.wicket.markup.html.list.ListItem;
 import org.apache.wicket.markup.html.list.ListView;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.request.resource.ByteArrayResource;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.io.IOUtils;
 
+import jakarta.inject.Inject;
+
 public class RoomsPanel extends UserPanel {
 	private static final long serialVersionUID = 1L;
 	private final WebMarkupContainer clientsContainer = new WebMarkupContainer("clientsContainer");
@@ -52,11 +54,12 @@ public class RoomsPanel extends UserPanel {
 	private List<Client> clientsInRoom = null;
 	private final List<Room> rooms;
 	private Long roomId = 0L;
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
-	@SpringBean
+	@Inject
 	private ClientManager cm;
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
 
 	public RoomsPanel(String id, List<Room> rooms) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java
index f8c7716e5..f27116fed 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java
@@ -31,13 +31,16 @@ import org.apache.wicket.AttributeModifier;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.model.ResourceModel;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
+import jakarta.inject.Inject;
+
 
 public class RoomsSelectorPanel extends UserBasePanel {
 	private static final long serialVersionUID = 1L;
 	private static final String PANEL_ID = "rooms";
 	private final String type;
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
 
 	public RoomsSelectorPanel(String id, String type) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.java
index 6bf19f9a7..2d86c7bd0 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsTabbedPanel.java
@@ -31,15 +31,17 @@ import org.apache.openmeetings.web.common.UserPanel;
 import org.apache.wicket.extensions.markup.html.tabs.AbstractTab;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.tabs.AjaxBootstrapTabbedPanel;
+import jakarta.inject.Inject;
 
 public class RoomsTabbedPanel extends UserPanel {
 	private static final long serialVersionUID = 1L;
-	@SpringBean
+
+	@Inject
 	private RoomDao roomDao;
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public RoomsTabbedPanel(String id) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
index 8f83817d5..e944c49aa 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
@@ -24,6 +24,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Map.Entry;
 
+import jakarta.inject.Inject;
 import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.openmeetings.db.dto.room.Whiteboard;
@@ -35,7 +36,7 @@ import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.IResource.Attributes;
 import org.apache.wicket.resource.FileSystemResource;
 import org.apache.wicket.resource.FileSystemResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -45,7 +46,8 @@ import com.github.openjson.JSONObject;
 public abstract class FileItemResourceReference<T extends BaseFileItem> extends FileSystemResourceReference {
 	private static final long serialVersionUID = 1L;
 	protected static final Logger log = LoggerFactory.getLogger(FileItemResourceReference.class);
-	@SpringBean
+
+	@Inject
 	private WhiteboardManager wbm;
 
 	protected FileItemResourceReference(String name) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java
index fca3b4805..6cdee3776 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java
@@ -27,6 +27,7 @@ import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import java.io.File;
 import java.io.IOException;
 
+import jakarta.inject.Inject;
 import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.openmeetings.db.dao.room.RoomDao;
@@ -40,7 +41,7 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.resource.FileSystemResource;
 import org.apache.wicket.resource.FileSystemResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.StringValue;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,9 +49,10 @@ import org.slf4j.LoggerFactory;
 public class GroupLogoResourceReference extends FileSystemResourceReference {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(GroupLogoResourceReference.class);
-	@SpringBean
+
+	@Inject
 	private GroupUserDao groupUserDao;
-	@SpringBean
+	@Inject
 	private RoomDao roomDao;
 
 	public GroupLogoResourceReference() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
index 0fe896f25..8b3f45b69 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
@@ -28,11 +28,12 @@ import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.ByteArrayResource;
 import org.apache.wicket.request.resource.IResource;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import jakarta.inject.Inject;
 import jakarta.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileInputStream;
@@ -45,7 +46,7 @@ import static org.apache.openmeetings.util.OmFileHelper.SIP_USER_ID;
 public class ProfileImageResourceReference extends ResourceReference {
 	private static final long serialVersionUID = 1L;
 	private static final Logger log = LoggerFactory.getLogger(ProfileImageResourceReference.class);
-	@SpringBean
+	@Inject
 	private UserDao userDao;
 
 	public ProfileImageResourceReference() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
index 2b5db90f1..0bc279f0d 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserChoiceProvider.java
@@ -29,18 +29,21 @@ import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.FormatHelper;
 import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
 import org.apache.wicket.injection.Injector;
-import org.apache.wicket.spring.injection.annot.SpringBean;
+
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.validation.Validatable;
 import org.wicketstuff.select2.Response;
 
 import com.github.openjson.JSONStringer;
 
+import jakarta.inject.Inject;
+
 public class UserChoiceProvider extends RestrictiveChoiceProvider<User> {
 	private static final long serialVersionUID = 1L;
 	private static final long PAGE_SIZE = 10;
 	private final Map<String, User> newContacts = new HashMap<>();
-	@SpringBean
+
+	@Inject
 	private UserDao userDao;
 
 	public UserChoiceProvider() {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java
index 05c1555a6..ed6375beb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java
@@ -18,11 +18,10 @@
  */
 package org.apache.openmeetings.web.util.logging;
 
-import io.prometheus.client.exporter.MetricsServlet;
+//INCOMPATIBLE with Jackarta! import io.prometheus.client.exporter.MetricsServlet;
 
-public class OpenMeetingsMetricsServlet extends MetricsServlet {
-
-	private static final long serialVersionUID = -2488393857088858502L;
+public class OpenMeetingsMetricsServlet /*extends MetricsServlet*/ {
+	private static final long serialVersionUID = 1L;
 
 	public OpenMeetingsMetricsServlet() {
 		super();
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
index 88010b68b..cf0eb47a8 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/h2_persistence.xml
@@ -71,8 +71,8 @@
 					, TestOnBorrow=true
 					, Username=
 					, Password=" />
-			<property name="javax.persistence.schema-generation.database.action" value="create" />
-			<property name="javax.persistence.schema-generation.create-database-schemas" value="true" />
+			<property name="jakarta.persistence.schema-generation.database.action" value="create" />
+			<property name="jakarta.persistence.schema-generation.create-database-schemas" value="true" />
 			<property name="openjpa.jdbc.SynchronizeMappings" value="buildSchema" />
 			<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO" />
 			<property name="openjpa.DataCache" value="true" />
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
index e44aa1609..54606f721 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/classes/hazelcast.xml
@@ -21,7 +21,7 @@
 <hazelcast
 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 		xmlns="http://www.hazelcast.com/schema/config"
-		xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-5.1.xsd"
+		xsi:schemaLocation="http://www.hazelcast.com/schema/config http://www.hazelcast.com/schema/config/hazelcast-config-5.2.xsd"
 	>
 	<map name="ONLINE_USERS_KEY">
 		<near-cache>
diff --git a/openmeetings-web/src/main/webapp/WEB-INF/web.xml b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
index fc4cdf637..6877a51da 100644
--- a/openmeetings-web/src/main/webapp/WEB-INF/web.xml
+++ b/openmeetings-web/src/main/webapp/WEB-INF/web.xml
@@ -18,9 +18,11 @@
   under the License.
 
 -->
-<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
+		xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+		version="6.0"
+		metadata-complete="true">
 	<context-param>
 		<param-name>contextConfigLocation</param-name>
 		<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractOmServerTest.java b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractOmServerTest.java
index b277a7575..9c471535e 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractOmServerTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/AbstractOmServerTest.java
@@ -48,9 +48,11 @@ import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;
 
+import jakarta.inject.Inject;
+
 @SpringJUnitWebConfig(locations={"classpath:applicationContext.xml"})
 @RegularTest
 public abstract class AbstractOmServerTest {
@@ -67,17 +69,17 @@ public abstract class AbstractOmServerTest {
 	public static final String UNIT_TEST_ARAB_EXT_TYPE = "النُّجُومُ الخَمْسَةِ";
 	public static final Random rnd = new Random();
 
-	@Autowired
+	@Inject
 	protected AppointmentDao appointmentDao;
-	@Autowired
+	@Inject
 	protected UserDao userDao;
-	@Autowired
+	@Inject
 	protected GroupDao groupDao;
-	@Autowired
+	@Inject
 	private ImportInitvalues importInitvalues;
-	@Autowired
+	@Inject
 	protected ConfigurationDao cfgDao;
-	@Autowired
+	@Inject
 	protected Application app;
 
 	@BeforeAll
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java
index 4f4406285..0b3b076f6 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/AbstractTestImport.java
@@ -30,11 +30,13 @@ import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 public class AbstractTestImport extends AbstractOmServerTest {
 	private String cryptClass = null;
-	@Autowired
+	@Inject
 	protected BackupImport backupImport;
 
 	@BeforeEach
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
index ef4d7c607..f2576e3cc 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
@@ -26,12 +26,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.io.IOException;
 import java.io.StringWriter;
-import java.io.Writer;
 import java.nio.file.Paths;
 import java.time.LocalDate;
 
+import jakarta.inject.Inject;
 import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.Marshaller;
 
@@ -43,12 +42,10 @@ import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
 
-import com.sun.xml.bind.marshaller.CharacterEscapeHandler;
 
 class TestExport extends AbstractOmServerTest {
-	@Autowired
+	@Inject
 	private FileItemDao fileItemDao;
 
 	@Test
@@ -68,12 +65,6 @@ class TestExport extends AbstractOmServerTest {
 		JAXBContext jc = JAXBContext.newInstance(eClazz);
 		Marshaller marshaller = jc.createMarshaller();
 		marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
-		marshaller.setProperty(CharacterEscapeHandler.class.getName(), new CharacterEscapeHandler() {
-			@Override
-			public void escape(char[] ac, int i, int j, boolean flag, Writer writer) throws IOException {
-				writer.write(ac, i, j);
-			}
-		});
 		StringWriter writer = new StringWriter();
 		marshaller.marshal(u, writer);
 		Assertions.assertNotNull(writer.getBuffer());
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java
index 249e38b18..b5b125884 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImport.java
@@ -32,21 +32,23 @@ import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
 import org.apache.openmeetings.db.entity.basic.Configuration;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestImport extends AbstractTestImport {
 	public static final String BACKUP_ROOT = "org/apache/openmeetings/backup/";
-	@Autowired
+	@Inject
 	private LdapConfigDao ldapDao;
-	@Autowired
+	@Inject
 	private OAuth2Dao oauthDao;
-	@Autowired
+	@Inject
 	private ChatDao chatDao;
-	@Autowired
+	@Inject
 	private RecordingDao recDao;
-	@Autowired
+	@Inject
 	private PrivateMessageFolderDao msgFolderDao;
-	@Autowired
+	@Inject
 	private ExtraMenuDao menuDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java
index 46a759afa..8c8f36167 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportCalendar.java
@@ -26,12 +26,14 @@ import java.io.File;
 import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
 import org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestImportCalendar extends AbstractTestImport {
-	@Autowired
+	@Inject
 	private OmCalendarDao calendarDao;
-	@Autowired
+	@Inject
 	private MeetingMemberDao meetingMemberDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java
index b5d9452f7..a8a4d4363 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportOld.java
@@ -37,16 +37,18 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestImportOld extends AbstractTestImport {
 	private static final Logger log = LoggerFactory.getLogger(TestImportOld.class);
 
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
-	@Autowired
+	@Inject
 	private MeetingMemberDao meetingMemberDao;
-	@Autowired
+	@Inject
 	private FileItemDao fileDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
index 3561ebda6..60006b7e4 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportRoom.java
@@ -27,10 +27,12 @@ import java.io.File;
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestImportRoom extends AbstractTestImport {
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java
index 3f52b008f..8b0270700 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestImportUser.java
@@ -30,10 +30,12 @@ import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestImportUser extends AbstractTestImport {
-	@Autowired
+	@Inject
 	private LdapConfigDao ldapDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
index 65ba0b02a..796085cab 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
@@ -43,14 +43,16 @@ import org.apache.wicket.util.string.Strings;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestAppointmentAddAppointment extends AbstractWicketTesterTest {
 	private static final Logger log = LoggerFactory.getLogger(TestAppointmentAddAppointment.class);
 
-	@Autowired
+	@Inject
 	private AppointmentLogic appointmentLogic;
-	@Autowired
+	@Inject
 	private MeetingMemberDao meetingMemberDao;
 
 	private static void setTime(Appointment a) {
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
index 50996e8f5..ec8ad9b45 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
@@ -29,12 +29,14 @@ import org.apache.openmeetings.service.calendar.AppointmentLogic;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestAppointmentSchedulerTask extends AbstractOmServerTest {
 	private static final Logger log = LoggerFactory.getLogger(TestAppointmentSchedulerTask.class);
 
-	@Autowired
+	@Inject
 	private AppointmentLogic appointmentLogic;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
index bde16528f..33acec44b 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
@@ -30,12 +30,14 @@ import org.apache.openmeetings.db.entity.calendar.Appointment;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestGetAppointment extends AbstractOmServerTest {
 	private static final Logger log = LoggerFactory.getLogger(TestGetAppointment.class);
 
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
index cf9e9530d..99b11c02c 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
@@ -26,10 +26,12 @@ import org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
 import org.apache.openmeetings.db.entity.calendar.OmCalendar;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestOmCalendar extends AbstractOmServerTest {
-	@Autowired
+	@Inject
 	private OmCalendarDao calendarDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
index 02d5f1970..eecb2f388 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
@@ -34,9 +34,10 @@ import org.apache.openmeetings.util.mail.IcalHandler;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 
 import jakarta.activation.DataHandler;
+import jakarta.inject.Inject;
 import jakarta.mail.BodyPart;
 import jakarta.mail.Message;
 import jakarta.mail.Multipart;
@@ -48,7 +49,7 @@ import jakarta.mail.internet.MimeMultipart;
 class TestSendIcalMessage extends AbstractOmServerTest {
 	private static final Logger log = LoggerFactory.getLogger(TestSendIcalMessage.class);
 
-	@Autowired
+	@Inject
 	private MailHandler mailHandler;
 
 	String subject = "test iCal";
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
index e472b7958..f68796405 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
@@ -35,12 +35,14 @@ import org.apache.openmeetings.db.entity.file.BaseFileItem;
 import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.util.process.ProcessResultList;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestFileProcessor extends AbstractOmServerTest {
 	private static final String FILE_NAME = "test_name";
 
-	@Autowired
+	@Inject
 	protected FileProcessor processor;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java
index 6e9b0a4dd..db8d0fb45 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestFileDao.java
@@ -31,12 +31,14 @@ import org.apache.openmeetings.db.entity.file.FileItem;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestFileDao extends AbstractOmServerTest {
-	@Autowired
+	@Inject
 	protected FileItemDao fileDao;
-	@Autowired
+	@Inject
 	protected GroupDao groupDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
index 86ee4cafe..ee24c2ec4 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/db/dao/TestRoomDao.java
@@ -34,11 +34,13 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestRoomDao extends AbstractOmServerTest {
 	private static final Logger log = LoggerFactory.getLogger(TestRoomDao.class);
-	@Autowired
+	@Inject
 	protected RoomDao roomDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java b/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
index 43de067c1..8c7803447 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
@@ -36,14 +36,16 @@ import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.service.room.InvitationManager;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestInvitation extends AbstractWicketTesterTest {
-	@Autowired
+	@Inject
 	private InvitationDao inviteDao;
-	@Autowired
+	@Inject
 	private InvitationManager invitationManager;
-	@Autowired
+	@Inject
 	private RoomDao roomDao;
 
 	private Invitation create(Valid valid) {
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java b/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
index 0f4e9984f..1f853c5fd 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
@@ -63,7 +63,9 @@ import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 @CreateDS(name = "omDS",
 	partitions = {
@@ -79,7 +81,7 @@ class TestLdap extends AbstractWicketTesterTest {
 	private static final String USER3 = "ldaptest3";
 	private static final Map<String, LdapConfig> CFG_MAP = new HashMap<>();
 	private static final Properties PROPS = new Properties();
-	@Autowired
+	@Inject
 	private LdapConfigDao ldapDao;
 
 	@RegisterExtension
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java b/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java
index cbba81ce9..626c00d2e 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/service/scheduler/TestJob.java
@@ -45,15 +45,17 @@ import org.mockito.Mock;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.mockito.stubbing.Answer;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 @ExtendWith(MockitoExtension.class)
 class TestJob extends AbstractWicketTesterTest {
-	@Autowired
+	@Inject
 	private CleanupJob cleanJob;
 	@Mock
 	private MailHandler mailHandler;
-	@Autowired
+	@Inject
 	@InjectMocks
 	private ReminderJob reminderJob;
 
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
index a0c3a6f8b..8a8cc6bf4 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
@@ -38,11 +38,13 @@ import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.OmException;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestUserGroup extends AbstractOmServerTest {
 	public static final String GROUP_NAME = "Test Group";
-	@Autowired
+	@Inject
 	private GroupUserDao groupUserDao;
 
 	private User getValidUser() {
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
index b2a36aa23..749d49c6c 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
@@ -26,10 +26,12 @@ import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 class TestAuth extends AbstractOmServerTest {
-	@Autowired
+	@Inject
 	private SessiondataDao sessionDao;
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
index 12f3604b5..c1e09c739 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
@@ -50,18 +50,19 @@ import org.apache.wicket.util.string.Strings;
 import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 
 import de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal;
+import jakarta.inject.Inject;
 
 class TestHashPage extends AbstractWicketTesterTest {
 	private static final Logger log = LoggerFactory.getLogger(TestHashPage.class);
 
-	@Autowired
+	@Inject
 	protected RoomDao roomDao;
-	@Autowired
+	@Inject
 	protected RecordingDao recDao;
-	@Autowired
+	@Inject
 	protected InvitationDao inviteDao;
 
 	private void checkAccessDenied(boolean visible) {
diff --git a/openmeetings-web/src/test/jetty/web.xml b/openmeetings-web/src/test/jetty/web.xml
index 1922c4310..67bed99f4 100644
--- a/openmeetings-web/src/test/jetty/web.xml
+++ b/openmeetings-web/src/test/jetty/web.xml
@@ -18,9 +18,11 @@
   under the License.
 
 -->
-<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee"
 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-		xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
+		xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
+		version="6.0"
+		metadata-complete="true">
 	<context-param>
 		<param-name>contextConfigLocation</param-name>
 		<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
diff --git a/openmeetings-webservice/pom.xml b/openmeetings-webservice/pom.xml
index 2f9912f62..c47e3293e 100644
--- a/openmeetings-webservice/pom.xml
+++ b/openmeetings-webservice/pom.xml
@@ -139,7 +139,7 @@
 						<servers>
 							<server>
 								<description>Your local OpenMeetings Server</description>
-								<url>http://localhost:5080/openmeetings/services</url>
+								<url>https://localhost:5443/openmeetings/services</url>
 							</server>
 							<server>
 								<description>Om Demo Server</description>
@@ -147,7 +147,8 @@
 							</server>
 						</servers>
 					</swaggerConfig>
-					<skip>${site.skip}</skip>
+					<!--skip>${site.skip}</skip-->
+					<skip>true</skip> <!-- Getting weird "Cannot invoke "java.util.Map.size()" because "map" is null" Error !!!!!! -->
 				</configuration>
 				<executions>
 					<execution>
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java
index 421eca0c2..70ba9cea2 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/BaseWebService.java
@@ -36,18 +36,20 @@ import org.apache.openmeetings.db.util.AuthLevelUtil;
 import org.apache.openmeetings.webservice.error.ServiceException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
+import jakarta.inject.Inject;
+
 
 public abstract class BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(BaseWebService.class);
 
-	@Autowired
+	@Inject
 	protected SessiondataDao sessionDao;
-	@Autowired
+	@Inject
 	protected UserDao userDao;
-	@Autowired
+	@Inject
 	protected RoomDao roomDao;
-	@Autowired
+	@Inject
 	protected FileItemDao fileDao;
 
 	// this one is fail safe
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
index 3de82dd94..9fc1c2d68 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
@@ -25,6 +25,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
+import jakarta.inject.Inject;
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebParam;
 import jakarta.jws.WebService;
@@ -55,7 +56,7 @@ import org.apache.openmeetings.webservice.schema.AppointmentDTOWrapper;
 import org.apache.openmeetings.webservice.schema.ServiceResultWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
 import io.swagger.v3.oas.annotations.Operation;
@@ -80,9 +81,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public class CalendarWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(CalendarWebService.class);
 
-	@Autowired
+	@Inject
 	private AppointmentDao dao;
-	@Autowired
+	@Inject
 	private CalendarMapper calMapper;
 
 	/**
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
index c1d587e99..35d1f6bc5 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 
+import jakarta.inject.Inject;
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebParam;
 import jakarta.jws.WebService;
@@ -58,7 +59,7 @@ import org.apache.openmeetings.webservice.schema.FileItemDTOWrapper;
 import org.apache.openmeetings.webservice.schema.ServiceResultWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
 import io.swagger.v3.oas.annotations.Operation;
@@ -85,7 +86,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public class FileWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(FileWebService.class);
 
-	@Autowired
+	@Inject
 	private FileProcessor fileProcessor;
 
 	/**
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
index 6901fb608..0c196c485 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
@@ -25,6 +25,7 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
+import jakarta.inject.Inject;
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebParam;
 import jakarta.jws.WebService;
@@ -57,7 +58,7 @@ import org.apache.openmeetings.webservice.schema.UserSearchResultWrapper;
 import org.apache.wicket.extensions.markup.html.repeater.util.SortParam;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
 import io.swagger.v3.oas.annotations.Operation;
@@ -84,9 +85,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public class GroupWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(GroupWebService.class);
 
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private GroupUserDao groupUserDao;
 
 	/**
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
index 2a8d16741..15aad443f 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.webservice.Constants.TNS;
 
 import java.util.List;
 
+import jakarta.inject.Inject;
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebParam;
 import jakarta.jws.WebService;
@@ -44,7 +45,7 @@ import org.apache.openmeetings.webservice.schema.RecordingDTOListWrapper;
 import org.apache.openmeetings.webservice.schema.ServiceResultWrapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
 import io.swagger.v3.oas.annotations.Operation;
@@ -68,7 +69,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public class RecordingWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(RecordingWebService.class);
 
-	@Autowired
+	@Inject
 	private RecordingDao recordingDao;
 
 	/**
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
index 7dfc20c9b..354926548 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.webservice.Constants.TNS;
 import java.util.ArrayList;
 import java.util.List;
 
+import jakarta.inject.Inject;
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebParam;
 import jakarta.jws.WebService;
@@ -63,7 +64,7 @@ import org.apache.openmeetings.webservice.schema.UserDTOListWrapper;
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
 import io.swagger.v3.oas.annotations.Operation;
@@ -88,15 +89,15 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public class RoomWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(RoomWebService.class);
 
-	@Autowired
+	@Inject
 	private IUserManager userManager;
-	@Autowired
+	@Inject
 	private IClientManager clientManager;
-	@Autowired
+	@Inject
 	private InvitationDao inviteDao;
-	@Autowired
+	@Inject
 	private InvitationManager inviteManager;
-	@Autowired
+	@Inject
 	private RoomMapper rMapper;
 
 	/**
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
index bb26ee6e9..aaf62217a 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
@@ -30,6 +30,7 @@ import java.security.NoSuchAlgorithmException;
 import java.util.List;
 import java.util.Locale;
 
+import jakarta.inject.Inject;
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebParam;
 import jakarta.jws.WebService;
@@ -72,7 +73,7 @@ import org.apache.wicket.validation.Validatable;
 import org.apache.wicket.validation.ValidationError;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
 import io.swagger.v3.oas.annotations.Operation;
@@ -99,13 +100,13 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public class UserWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(UserWebService.class);
 
-	@Autowired
+	@Inject
 	private IUserManager userManager;
-	@Autowired
+	@Inject
 	private SOAPLoginDao soapDao;
-	@Autowired
+	@Inject
 	private GroupDao groupDao;
-	@Autowired
+	@Inject
 	private UserMapper uMapper;
 
 	/**
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
index 4be455b1f..654f409e0 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
@@ -30,6 +30,7 @@ import java.nio.file.Paths;
 
 import javax.imageio.ImageIO;
 
+import jakarta.inject.Inject;
 import jakarta.jws.WebMethod;
 import jakarta.jws.WebParam;
 import jakarta.jws.WebService;
@@ -64,7 +65,7 @@ import org.apache.pdfbox.pdmodel.graphics.image.LosslessFactory;
 import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
+
 import org.springframework.stereotype.Service;
 
 import com.github.openjson.JSONArray;
@@ -89,9 +90,9 @@ import io.swagger.v3.oas.annotations.tags.Tag;
 public class WbWebService extends BaseWebService {
 	private static final Logger log = LoggerFactory.getLogger(WbWebService.class);
 
-	@Autowired
+	@Inject
 	private IWhiteboardManager wbManager;
-	@Autowired
+	@Inject
 	private IClientManager cm;
 
 	/**
diff --git a/pom.xml b/pom.xml
index e9f59155e..750d5f593 100644
--- a/pom.xml
+++ b/pom.xml
@@ -97,6 +97,8 @@
 		<h2.version>2.1.214</h2.version>
 		<jakarta.mail.version>2.0.1</jakarta.mail.version>
 		<openjpa.version>3.2.2</openjpa.version>
+		<jakarta.persistence.version>3.1.0</jakarta.persistence.version>
+		<jakarta.transaction.version>2.0.1</jakarta.transaction.version>
 		<asterisk-java.version>3.37.0</asterisk-java.version>
 		<commons-lang3.version>3.12.0</commons-lang3.version>
 		<commons-dbcp.version>2.9.0</commons-dbcp.version>
@@ -127,8 +129,8 @@
 		<jain-sip.version>1.2.307</jain-sip.version><!-- other versions are broken! -->
 		<jasny-bootstrap.version>3.1.3-2</jasny-bootstrap.version>
 		<jodconverter.version>4.4.6</jodconverter.version>
-		<jaxb-runtime.version>2.3.8</jaxb-runtime.version>
-		<jakarta.servlet-api.version>5.0.0</jakarta.servlet-api.version>
+		<jaxb-runtime.version>4.0.2</jaxb-runtime.version>
+		<jakarta.servlet-api.version>6.0.0</jakarta.servlet-api.version>
 		<jquery-ui-touch-punch.version>0.2.3-2</jquery-ui-touch-punch.version>
 		<apacheds-test-framework.version>2.0.0.AM26</apacheds-test-framework.version>
 		<swagger.version>2.2.9</swagger.version>
@@ -821,6 +823,27 @@
 				<groupId>org.apache.openjpa</groupId>
 				<artifactId>openjpa</artifactId>
 				<version>${openjpa.version}</version>
+				<classifier>jakarta</classifier>
+				<exclusions>
+					<exclusion>
+						<groupId>org.apache.geronimo.specs</groupId>
+						<artifactId>geronimo-jpa_2.2_spec</artifactId>
+					</exclusion>
+					<exclusion>
+						<groupId>org.apache.geronimo.specs</groupId>
+						<artifactId>geronimo-jta_1.1_spec</artifactId>
+					</exclusion>
+				</exclusions>
+			</dependency>
+			<dependency>
+				<groupId>jakarta.persistence</groupId>
+				<artifactId>jakarta.persistence-api</artifactId>
+				<version>${jakarta.persistence.version}</version>
+			</dependency>
+			<dependency>
+				<groupId>jakarta.transaction</groupId>
+				<artifactId>jakarta.transaction-api</artifactId>
+				<version>${jakarta.transaction.version}</version>
 			</dependency>
 			<dependency>
 				<groupId>org.apache.commons</groupId>
@@ -873,8 +896,19 @@
 						<groupId>net.sf.ehcache</groupId>
 						<artifactId>ehcache</artifactId>
 					</exclusion>
+					<exclusion>
+						<!-- will be replaced with Jakarta version below -->
+						<groupId>org.apache.jackrabbit</groupId>
+						<artifactId>jackrabbit-webdav</artifactId>
+					</exclusion>
 				</exclusions>
 			</dependency>
+			<dependency>
+				<groupId>org.apache.jackrabbit</groupId>
+				<artifactId>jackrabbit-webdav</artifactId>
+				<version>2.21.15-SNAPSHOT</version>
+				<classifier>jakarta</classifier>
+			</dependency>
 			<dependency>
 				<groupId>com.mysql</groupId>
 				<artifactId>mysql-connector-j</artifactId>
@@ -1516,12 +1550,33 @@
 					<groupId>org.apache.openjpa</groupId>
 					<artifactId>openjpa-maven-plugin</artifactId>
 					<version>${openjpa.version}</version>
+					<!-- set the version to be the same as the level in your runtime -->
 					<dependencies>
 						<dependency>
 							<groupId>org.apache.openjpa</groupId>
 							<artifactId>openjpa</artifactId>
-							<!-- set the version to be the same as the level in your runtime -->
 							<version>${openjpa.version}</version>
+							<classifier>jakarta</classifier>
+							<exclusions>
+								<exclusion>
+									<groupId>org.apache.geronimo.specs</groupId>
+									<artifactId>geronimo-jpa_2.2_spec</artifactId>
+								</exclusion>
+								<exclusion>
+									<groupId>org.apache.geronimo.specs</groupId>
+									<artifactId>geronimo-jta_1.1_spec</artifactId>
+								</exclusion>
+							</exclusions>
+						</dependency>
+						<dependency>
+							<groupId>jakarta.persistence</groupId>
+							<artifactId>jakarta.persistence-api</artifactId>
+							<version>${jakarta.persistence.version}</version>
+						</dependency>
+						<dependency>
+							<groupId>jakarta.transaction</groupId>
+							<artifactId>jakarta.transaction-api</artifactId>
+							<version>${jakarta.transaction.version}</version>
 						</dependency>
 					</dependencies>
 				</plugin>


[openmeetings] 01/05: [OPENMEETINGS-2756] spring, cxf, tomcat, wicket

Posted by so...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

solomax pushed a commit to branch jakarta-spring-6
in repository https://gitbox.apache.org/repos/asf/openmeetings.git

commit 3edc9200da998d317607ae05c07fbc7065235aa1
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Thu Dec 29 13:34:15 2022 +0700

    [OPENMEETINGS-2756] spring, cxf, tomcat, wicket
---
 .../java/org/apache/openmeetings/IApplication.java |  2 +-
 .../openmeetings/db/util/ApplicationHelper.java    |  6 ++---
 openmeetings-server/pom.xml                        |  4 ++--
 .../calendar/caldav/AppointmentManager.java        |  4 ++--
 .../calendar/caldav/handler/CtagHandler.java       |  2 +-
 .../calendar/caldav/handler/EtagsHandler.java      |  6 ++---
 .../calendar/caldav/handler/MultigetHandler.java   |  2 +-
 .../calendar/caldav/handler/WebDAVSyncHandler.java |  8 +++----
 .../openmeetings/util/OMContextListener.java       |  4 ++--
 .../web/common/upload/UploadResourceReference.java |  2 +-
 .../web/room/GroupCustomCssResourceReference.java  |  2 +-
 .../openmeetings/web/user/chat/ChatToolbar.java    |  2 +-
 .../web/util/FileItemResourceReference.java        |  2 +-
 .../web/util/GroupLogoResourceReference.java       |  2 +-
 .../web/util/ProfileImageResourceReference.java    |  2 +-
 .../org/apache/openmeetings/backup/TestExport.java |  4 ++--
 .../web/app/TestOmAuthenticationStrategy.java      |  2 +-
 .../webservice/AbstractWebServiceTest.java         | 11 ++++-----
 .../webservice/TestCalendarService.java            |  4 ++--
 .../openmeetings/webservice/TestErrorService.java  |  2 +-
 .../openmeetings/webservice/TestGroupService.java  |  8 +++----
 .../openmeetings/webservice/TestUserService.java   |  6 ++---
 .../webservice/CalendarWebService.java             | 24 +++++++++----------
 .../openmeetings/webservice/ErrorWebService.java   | 20 ++++++++--------
 .../openmeetings/webservice/FileWebService.java    | 24 +++++++++----------
 .../openmeetings/webservice/GroupWebService.java   | 22 ++++++++---------
 .../openmeetings/webservice/InfoWebService.java    | 12 +++++-----
 .../openmeetings/webservice/NetTestWebService.java | 19 ++++++++-------
 .../webservice/RecordingWebService.java            | 20 ++++++++--------
 .../openmeetings/webservice/RoomWebService.java    | 24 +++++++++----------
 .../openmeetings/webservice/UserWebService.java    | 24 +++++++++----------
 .../openmeetings/webservice/WbWebService.java      | 23 +++++++++---------
 .../webservice/error/ServiceException.java         |  2 +-
 .../util/AppointmentListMessageBodyWriter.java     | 10 ++++----
 .../util/AppointmentMessageBodyReader.java         | 10 ++++----
 .../util/AppointmentMessageBodyWriter.java         | 10 ++++----
 .../webservice/util/AppointmentParamConverter.java |  2 +-
 .../webservice/util/CalendarParamConverter.java    |  2 +-
 .../webservice/util/DateParamConverter.java        |  2 +-
 .../webservice/util/OmExceptionHandler.java        |  4 ++--
 .../webservice/util/OmParamConverterProvider.java  |  4 ++--
 .../webservice/util/RateLimitRequestFilter.java    | 15 ++++++------
 .../openmeetings/webservice/util/RateLimited.java  |  2 +-
 .../webservice/util/UserMessageBodyWriter.java     | 10 ++++----
 .../webservice/util/UserParamConverter.java        |  2 +-
 pom.xml                                            | 28 +++++++++++-----------
 46 files changed, 202 insertions(+), 200 deletions(-)

diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java b/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java
index d078f2945..fb0695fa1 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/IApplication.java
@@ -23,7 +23,7 @@ import java.util.Set;
 import java.util.function.Supplier;
 
 import javax.annotation.Nonnull;
-import javax.servlet.ServletContext;
+import jakarta.servlet.ServletContext;
 
 import org.apache.openmeetings.db.entity.room.Invitation;
 import org.apache.openmeetings.util.ws.IClusterWsMessage;
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
index d63c6c20a..6769691e9 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
@@ -29,9 +29,9 @@ import java.util.Enumeration;
 import java.util.Map;
 import java.util.UUID;
 
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletContextEvent;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletContextEvent;
 
 import org.apache.openmeetings.IApplication;
 import org.apache.openmeetings.IWebSession;
diff --git a/openmeetings-server/pom.xml b/openmeetings-server/pom.xml
index 81d500fb2..8193a5192 100644
--- a/openmeetings-server/pom.xml
+++ b/openmeetings-server/pom.xml
@@ -118,7 +118,7 @@
 			<id>prepare-web-server</id>
 			<activation>
 				<file>
-					<missing>web-server/apache-tomcat-9.0.73.tar.gz</missing> <!-- TODO should be in-sync with global property -->
+					<missing>web-server/apache-tomcat-10.1.7.tar.gz</missing> <!-- TODO should be in-sync with global property -->
 				</file>
 			</activation>
 			<build>
@@ -134,7 +134,7 @@
 									<goal>download-single</goal>
 								</goals>
 								<configuration>
-									<url>https://archive.apache.org/dist/tomcat/tomcat-9/v${tomcat.version}/bin</url>
+									<url>https://archive.apache.org/dist/tomcat/tomcat-10/v${tomcat.version}/bin</url>
 									<fromFile>apache-tomcat-${tomcat.version}.tar.gz</fromFile>
 									<toDir>${server-file.dir}</toDir>
 									<skip>${server.dwnd.skip}</skip>
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
index 5c858eade..573a79905 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/AppointmentManager.java
@@ -18,8 +18,8 @@
  */
 package org.apache.openmeetings.service.calendar.caldav;
 
-import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
-import static javax.servlet.http.HttpServletResponse.SC_OK;
+import static jakarta.servlet.http.HttpServletResponse.SC_NO_CONTENT;
+import static jakarta.servlet.http.HttpServletResponse.SC_OK;
 
 import java.io.IOException;
 import java.net.URI;
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CtagHandler.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CtagHandler.java
index 3ed451db1..bf7c6525c 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CtagHandler.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/CtagHandler.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.service.calendar.caldav.handler;
 
-import static javax.servlet.http.HttpServletResponse.SC_OK;
+import static jakarta.servlet.http.HttpServletResponse.SC_OK;
 
 import java.io.IOException;
 
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/EtagsHandler.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/EtagsHandler.java
index 262cd5051..a05b1f4ba 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/EtagsHandler.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/EtagsHandler.java
@@ -18,9 +18,9 @@
  */
 package org.apache.openmeetings.service.calendar.caldav.handler;
 
-import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
-import static javax.servlet.http.HttpServletResponse.SC_NO_CONTENT;
-import static javax.servlet.http.HttpServletResponse.SC_OK;
+import static jakarta.servlet.http.HttpServletResponse.SC_NOT_FOUND;
+import static jakarta.servlet.http.HttpServletResponse.SC_NO_CONTENT;
+import static jakarta.servlet.http.HttpServletResponse.SC_OK;
 
 import java.io.IOException;
 import java.net.URI;
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/MultigetHandler.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/MultigetHandler.java
index c7483f195..7c7f66a19 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/MultigetHandler.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/MultigetHandler.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.service.calendar.caldav.handler;
 
-import static javax.servlet.http.HttpServletResponse.SC_OK;
+import static jakarta.servlet.http.HttpServletResponse.SC_OK;
 
 import java.io.IOException;
 import java.util.List;
diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/WebDAVSyncHandler.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/WebDAVSyncHandler.java
index 31d86739e..a041683eb 100644
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/WebDAVSyncHandler.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/handler/WebDAVSyncHandler.java
@@ -19,10 +19,10 @@
 package org.apache.openmeetings.service.calendar.caldav.handler;
 
 
-import static javax.servlet.http.HttpServletResponse.SC_FORBIDDEN;
-import static javax.servlet.http.HttpServletResponse.SC_NOT_FOUND;
-import static javax.servlet.http.HttpServletResponse.SC_OK;
-import static javax.servlet.http.HttpServletResponse.SC_PRECONDITION_FAILED;
+import static jakarta.servlet.http.HttpServletResponse.SC_FORBIDDEN;
+import static jakarta.servlet.http.HttpServletResponse.SC_NOT_FOUND;
+import static jakarta.servlet.http.HttpServletResponse.SC_OK;
+import static jakarta.servlet.http.HttpServletResponse.SC_PRECONDITION_FAILED;
 import static org.apache.jackrabbit.webdav.DavServletResponse.SC_INSUFFICIENT_SPACE_ON_RESOURCE;
 
 import java.io.IOException;
diff --git a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
index 409de1771..8d0f84eac 100644
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/OMContextListener.java
@@ -21,8 +21,8 @@ package org.apache.openmeetings.util;
 import java.io.IOException;
 import java.io.InputStream;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
 
 import org.apache.wicket.util.string.Strings;
 import org.slf4j.LoggerFactory;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
index ee93c650f..e27570510 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/upload/UploadResourceReference.java
@@ -26,7 +26,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.commons.fileupload.FileItem;
 import org.apache.openmeetings.core.util.WebSocketHelper;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/GroupCustomCssResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/GroupCustomCssResourceReference.java
index bca95d732..951961fd7 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/GroupCustomCssResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/GroupCustomCssResourceReference.java
@@ -23,7 +23,7 @@ import static org.apache.openmeetings.util.OmFileHelper.getGroupCss;
 import java.io.File;
 import java.io.IOException;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.resource.IResource;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
index 15501b539..868941abb 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ChatToolbar.java
@@ -31,7 +31,7 @@ import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
 
 import java.util.List;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.openmeetings.core.util.WebSocketHelper;
 import org.apache.openmeetings.db.dao.basic.ChatDao;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
index 4b55126e9..8f83817d5 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/FileItemResourceReference.java
@@ -24,7 +24,7 @@ import java.io.File;
 import java.io.IOException;
 import java.util.Map.Entry;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.openmeetings.db.dto.room.Whiteboard;
 import org.apache.openmeetings.db.dto.room.Whiteboards;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java
index 23366bbc0..fca3b4805 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java
@@ -27,7 +27,7 @@ import static org.apache.openmeetings.web.app.WebSession.getUserId;
 import java.io.File;
 import java.io.IOException;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 import org.apache.openmeetings.db.dao.room.RoomDao;
 import org.apache.openmeetings.db.dao.user.GroupUserDao;
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
index ce7959542..0fe896f25 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
@@ -33,7 +33,7 @@ import org.apache.wicket.util.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
index 6a22356d3..ef4d7c607 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/backup/TestExport.java
@@ -32,8 +32,8 @@ import java.io.Writer;
 import java.nio.file.Paths;
 import java.time.LocalDate;
 
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Marshaller;
+import jakarta.xml.bind.JAXBContext;
+import jakarta.xml.bind.Marshaller;
 
 import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.file.FileItemDao;
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
index 8c0a7c1f4..66929f191 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
@@ -23,7 +23,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 
-import javax.servlet.http.Cookie;
+import jakarta.servlet.http.Cookie;
 
 import org.apache.openmeetings.AbstractWicketTesterTest;
 import org.apache.openmeetings.db.entity.user.User;
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
index a9c15588d..3e40e1a2a 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
@@ -19,7 +19,6 @@
 package org.apache.openmeetings.webservice;
 
 import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
 import static org.apache.openmeetings.AbstractOmServerTest.createPass;
 import static org.apache.openmeetings.AbstractOmServerTest.ensureSchema;
 import static org.apache.openmeetings.AbstractOmServerTest.soapUsername;
@@ -35,9 +34,6 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.ws.rs.core.Form;
-import javax.ws.rs.core.MediaType;
-
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.jaxrs.ext.multipart.Attachment;
 import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
@@ -56,6 +52,9 @@ import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+import jakarta.ws.rs.core.Form;
+import jakarta.ws.rs.core.MediaType;
+
 @Tag("webservice")
 public abstract class AbstractWebServiceTest {
 	private static final String HOST = "localhost";
@@ -115,7 +114,7 @@ public abstract class AbstractWebServiceTest {
 	protected static RoomDTO create(String sid, RoomDTO r) {
 		return getClient(getRoomUrl())
 				.query("sid", sid)
-				.type(APPLICATION_FORM_URLENCODED)
+				.type(MediaType.APPLICATION_FORM_URLENCODED)
 				.post(new Form().param("room", r.toString()), RoomDTO.class);
 	}
 
@@ -146,7 +145,7 @@ public abstract class AbstractWebServiceTest {
 		UserDTO user = getClient(getUserUrl())
 				.path("/")
 				.query("sid", r.getMessage())
-				.type(APPLICATION_FORM_URLENCODED)
+				.type(MediaType.APPLICATION_FORM_URLENCODED)
 				.post(new Form().param("user", dto.toString()).param("confirm", "" + false), UserDTO.class);
 		assertNotNull(user.getId());
 		u.setId(user.getId());
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
index ff962b016..c4f6420f3 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
@@ -34,8 +34,8 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import javax.ws.rs.core.Form;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Form;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.openmeetings.AbstractOmServerTest;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
index 42124d665..02e27cdbd 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
@@ -25,7 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import java.util.Locale;
 
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
index 89bfa7ea1..1c2ff2127 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
@@ -23,18 +23,18 @@ import static org.apache.openmeetings.AbstractOmServerTest.userpass;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.util.Collection;
 
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.BadRequestException;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
 import org.apache.openmeetings.db.dto.room.RoomDTO;
 import org.apache.openmeetings.db.dto.user.GroupDTO;
 import org.apache.openmeetings.db.entity.room.Room;
-import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 class TestGroupService extends AbstractWebServiceTest {
@@ -92,7 +92,7 @@ class TestGroupService extends AbstractWebServiceTest {
 		RoomDTO rdto = new RoomDTO();
 		rdto.setName("Group WS Room");
 		String msg = sr.getMessage();
-		Assertions.assertThrows(BadRequestException.class, () -> create(msg, rdto));
+		assertThrows(BadRequestException.class, () -> create(msg, rdto));
 	}
 
 	@Test
diff --git a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
index e3319ba6d..932eceb94 100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
@@ -19,7 +19,7 @@
 package org.apache.openmeetings.webservice;
 
 import static java.util.UUID.randomUUID;
-import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
+import static jakarta.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
 import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
 import static org.apache.openmeetings.AbstractOmServerTest.createPass;
 import static org.apache.openmeetings.AbstractOmServerTest.rnd;
@@ -35,8 +35,8 @@ import java.util.Collection;
 import java.util.Locale;
 import java.util.TimeZone;
 
-import javax.ws.rs.core.Form;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Form;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
index 38d29fa93..3de82dd94 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
@@ -25,18 +25,18 @@ import java.util.Date;
 import java.util.List;
 import java.util.Set;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
index 3561036e9..a84ab1bcc 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
@@ -20,16 +20,16 @@ package org.apache.openmeetings.webservice;
 
 import static org.apache.openmeetings.webservice.Constants.TNS;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dao.label.LabelDao;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
index 5642c2f33..c1d587e99 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
@@ -25,18 +25,18 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.cxf.jaxrs.ext.multipart.Multipart;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
index 4da907296..6901fb608 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
@@ -25,17 +25,17 @@ import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dao.user.GroupDao;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
index cb6705401..53ed76046 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/InfoWebService.java
@@ -24,12 +24,12 @@ import static org.apache.openmeetings.webservice.Constants.TNS;
 
 import java.net.URI;
 
-import javax.jws.WebMethod;
-import javax.jws.WebService;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dto.basic.Health;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
index 7a5ca8db5..1db37f87c 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/NetTestWebService.java
@@ -24,16 +24,17 @@ import java.io.InputStream;
 import java.util.concurrent.ThreadLocalRandom;
 import java.util.concurrent.atomic.AtomicInteger;
 
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+
 import javax.annotation.PostConstruct;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
 
 import org.apache.openmeetings.webservice.util.RateLimited;
 import org.slf4j.Logger;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
index 255412cfd..2a8d16741 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
@@ -22,16 +22,16 @@ import static org.apache.openmeetings.webservice.Constants.TNS;
 
 import java.util.List;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.db.dao.record.RecordingDao;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
index bfec25a41..7dfc20c9b 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
@@ -23,18 +23,18 @@ import static org.apache.openmeetings.webservice.Constants.TNS;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.core.util.WebSocketHelper;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
index 19acc7c6c..bb26ee6e9 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
@@ -30,18 +30,18 @@ import java.security.NoSuchAlgorithmException;
 import java.util.List;
 import java.util.Locale;
 
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.cxf.feature.Features;
 import org.apache.openmeetings.core.util.StrongPasswordValidator;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
index 2c88b72fd..4be455b1f 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/WbWebService.java
@@ -29,17 +29,18 @@ import java.io.OutputStream;
 import java.nio.file.Paths;
 
 import javax.imageio.ImageIO;
-import javax.jws.WebMethod;
-import javax.jws.WebParam;
-import javax.jws.WebService;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
+
+import jakarta.jws.WebMethod;
+import jakarta.jws.WebParam;
+import jakarta.jws.WebService;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.FileUtils;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/error/ServiceException.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/error/ServiceException.java
index 4b67a9b8c..447ec00dd 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/error/ServiceException.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/error/ServiceException.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.webservice.error;
 
-import javax.xml.ws.WebFault;
+import jakarta.xml.ws.WebFault;
 
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java
index 087c1cb22..3765fcf3b 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentListMessageBodyWriter.java
@@ -30,11 +30,11 @@ import java.lang.reflect.ParameterizedType;
 import java.lang.reflect.Type;
 import java.util.List;
 
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyWriter;
-import javax.ws.rs.ext.Provider;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.ext.MessageBodyWriter;
+import jakarta.ws.rs.ext.Provider;
 
 import org.apache.openmeetings.db.dto.calendar.AppointmentDTO;
 
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyReader.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyReader.java
index 812fb0f35..68b931059 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyReader.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyReader.java
@@ -27,11 +27,11 @@ import java.io.InputStreamReader;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyReader;
-import javax.ws.rs.ext.Provider;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.ext.MessageBodyReader;
+import jakarta.ws.rs.ext.Provider;
 
 import org.apache.openmeetings.db.dto.calendar.AppointmentDTO;
 
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java
index 736c2a926..42de63dc1 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentMessageBodyWriter.java
@@ -28,11 +28,11 @@ import java.io.Writer;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyWriter;
-import javax.ws.rs.ext.Provider;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.ext.MessageBodyWriter;
+import jakarta.ws.rs.ext.Provider;
 
 import org.apache.openmeetings.db.dto.calendar.AppointmentDTO;
 
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
index f3228015d..b557f1a8e 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/AppointmentParamConverter.java
@@ -24,7 +24,7 @@ import static org.apache.openmeetings.util.CalendarPatterns.ISO8601_FULL_FORMAT;
 
 import java.util.Date;
 
-import javax.ws.rs.ext.ParamConverter;
+import jakarta.ws.rs.ext.ParamConverter;
 
 import org.apache.openmeetings.db.dto.calendar.AppointmentDTO;
 import org.apache.openmeetings.db.dto.calendar.MeetingMemberDTO;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
index 7d4cf1990..31ee459be 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/CalendarParamConverter.java
@@ -23,7 +23,7 @@ import static org.apache.openmeetings.util.CalendarPatterns.ISO8601_FULL_FORMAT;
 import java.util.Calendar;
 import java.util.TimeZone;
 
-import javax.ws.rs.ext.ParamConverter;
+import jakarta.ws.rs.ext.ParamConverter;
 
 import org.apache.wicket.util.string.Strings;
 
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
index 0b454051b..3051c7d38 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/DateParamConverter.java
@@ -25,7 +25,7 @@ import static org.apache.openmeetings.util.CalendarPatterns.ISO8601_FULL_FORMAT;
 import java.text.ParseException;
 import java.util.Date;
 
-import javax.ws.rs.ext.ParamConverter;
+import jakarta.ws.rs.ext.ParamConverter;
 
 import org.apache.commons.lang3.time.FastDateFormat;
 import org.apache.wicket.util.string.Strings;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmExceptionHandler.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmExceptionHandler.java
index 56aac5d42..2747b252e 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmExceptionHandler.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmExceptionHandler.java
@@ -18,8 +18,8 @@
  */
 package org.apache.openmeetings.webservice.util;
 
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.ExceptionMapper;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.ext.ExceptionMapper;
 
 import org.apache.openmeetings.db.dto.basic.ServiceResult;
 import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
index 52fafc7e4..ca5ae0c75 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/OmParamConverterProvider.java
@@ -23,8 +23,8 @@ import java.lang.reflect.Type;
 import java.util.Calendar;
 import java.util.Date;
 
-import javax.ws.rs.ext.ParamConverter;
-import javax.ws.rs.ext.ParamConverterProvider;
+import jakarta.ws.rs.ext.ParamConverter;
+import jakarta.ws.rs.ext.ParamConverterProvider;
 
 import org.apache.openmeetings.db.dto.calendar.AppointmentDTO;
 import org.apache.openmeetings.db.dto.user.UserDTO;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimitRequestFilter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimitRequestFilter.java
index 50352cb83..6542cbb17 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimitRequestFilter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimitRequestFilter.java
@@ -20,13 +20,14 @@ package org.apache.openmeetings.webservice.util;
 
 import java.util.List;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerRequestFilter;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
 
 import org.apache.openmeetings.webservice.NetTestWebService;
 import org.apache.openmeetings.webservice.NetTestWebService.TestType;
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimited.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimited.java
index 86834f863..3d5a55a62 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimited.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/RateLimited.java
@@ -25,7 +25,7 @@ import static java.lang.annotation.RetentionPolicy.RUNTIME;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
-import javax.ws.rs.NameBinding;
+import jakarta.ws.rs.NameBinding;
 
 @Retention(RUNTIME)
 @Target({TYPE, METHOD})
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserMessageBodyWriter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserMessageBodyWriter.java
index b97b173c4..0ed1f7edd 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserMessageBodyWriter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserMessageBodyWriter.java
@@ -28,11 +28,11 @@ import java.io.Writer;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyWriter;
-import javax.ws.rs.ext.Provider;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.ext.MessageBodyWriter;
+import jakarta.ws.rs.ext.Provider;
 
 import org.apache.openmeetings.db.dto.user.UserDTO;
 
diff --git a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserParamConverter.java b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserParamConverter.java
index 9ffde2ebc..ec4bc8d43 100644
--- a/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserParamConverter.java
+++ b/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/util/UserParamConverter.java
@@ -18,7 +18,7 @@
  */
 package org.apache.openmeetings.webservice.util;
 
-import javax.ws.rs.ext.ParamConverter;
+import jakarta.ws.rs.ext.ParamConverter;
 
 import org.apache.openmeetings.db.dto.user.UserDTO;
 
diff --git a/pom.xml b/pom.xml
index bf40d4739..e9f59155e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,15 +79,15 @@
 		<plexus-utils.version>3.5.1</plexus-utils.version>
 		<!-- dependency versions -->
 		<junit.version>5.9.2</junit.version>
-		<wicket.version>9.12.0</wicket.version>
+		<wicket.version>10.0.0-M1-SNAPSHOT</wicket.version>
 		<wicket-jquery-ui.version>9.12.0</wicket-jquery-ui.version>
-		<wicketstuff.version>9.12.0</wicketstuff.version>
+		<wicketstuff.version>10.0.0-SNAPSHOT</wicketstuff.version>
 		<wicket-bootstrap.version>6.0.2</wicket-bootstrap.version>
 		<font-awesome.version>6.4.0</font-awesome.version>
-		<spring.version>5.3.26</spring.version>
-		<tomcat.version>9.0.73</tomcat.version>
+		<spring.version>6.0.7</spring.version>
+		<tomcat.version>10.1.7</tomcat.version>
 		<ical4j.version>4.0.0-beta7</ical4j.version>
-		<cxf.version>3.5.5</cxf.version>
+		<cxf.version>4.0.0</cxf.version>
 		<io.prometheus.version>0.16.0</io.prometheus.version>
 		<aspectjtools.version>1.9.19</aspectjtools.version>
 		<simple-xml.version>2.7.1</simple-xml.version>
@@ -118,7 +118,7 @@
 		<tika-parsers.version>2.7.0</tika-parsers.version>
 		<slf4j.version>2.0.7</slf4j.version>
 		<logback.version>1.4.6</logback.version>
-		<jetty.version>9.4.51.v20230217</jetty.version>
+		<jetty.version>11.0.14</jetty.version>
 		<license.excludedScopes>test</license.excludedScopes>
 		<bcprov-jdk15on.version>1.70</bcprov-jdk15on.version>
 		<mockito.version>5.2.0</mockito.version>
@@ -128,7 +128,7 @@
 		<jasny-bootstrap.version>3.1.3-2</jasny-bootstrap.version>
 		<jodconverter.version>4.4.6</jodconverter.version>
 		<jaxb-runtime.version>2.3.8</jaxb-runtime.version>
-		<javax.servlet-api.version>3.1.0</javax.servlet-api.version>
+		<jakarta.servlet-api.version>5.0.0</jakarta.servlet-api.version>
 		<jquery-ui-touch-punch.version>0.2.3-2</jquery-ui-touch-punch.version>
 		<apacheds-test-framework.version>2.0.0.AM26</apacheds-test-framework.version>
 		<swagger.version>2.2.9</swagger.version>
@@ -550,7 +550,7 @@
 						<artifactId>*</artifactId>
 					</exclusion>
 					<exclusion>
-						<groupId>javax.servlet</groupId>
+						<groupId>jakarta.servlet</groupId>
 						<artifactId>*</artifactId>
 					</exclusion>
 				</exclusions>
@@ -565,7 +565,7 @@
 						<artifactId>*</artifactId>
 					</exclusion>
 					<exclusion>
-						<groupId>javax.servlet</groupId>
+						<groupId>jakarta.servlet</groupId>
 						<artifactId>*</artifactId>
 					</exclusion>
 					<exclusion>
@@ -661,9 +661,9 @@
 				<version>${wicket.version}</version>
 			</dependency>
 			<dependency>
-				<groupId>javax.servlet</groupId>
-				<artifactId>javax.servlet-api</artifactId>
-				<version>${javax.servlet-api.version}</version>
+				<groupId>jakarta.servlet</groupId>
+				<artifactId>jakarta.servlet-api</artifactId>
+				<version>${jakarta.servlet-api.version}</version>
 				<scope>provided</scope>
 			</dependency>
 			<dependency>
@@ -1059,8 +1059,8 @@
 			<scope>test</scope>
 		</dependency>
 		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>javax.servlet-api</artifactId>
+			<groupId>jakarta.servlet</groupId>
+			<artifactId>jakarta.servlet-api</artifactId>
 		</dependency>
 	</dependencies>
 	<build>