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 2021/12/22 14:12:15 UTC
[openmeetings] 01/01: Merge branch 'master' into java11-modules Some errors are fixed
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch java11-modules
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
commit c824bb40d2c1d06a6853ecd24fae844428867d17
Merge: 6c00af6 299425e
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Wed Dec 22 21:11:22 2021 +0700
Merge branch 'master' into java11-modules
Some errors are fixed
.gitignore | 3 +
CHANGELOG.md | 45 +-
README.md | 23 +-
openmeetings-core/pom.xml | 18 -
openmeetings-core/src/main/java/module-info.java | 24 +-
.../apache/openmeetings/core/mail/MailHandler.java | 30 +-
.../org/apache/openmeetings/core/remote/KRoom.java | 2 +-
.../core/util/ChatWebSocketHelper.java | 2 +-
.../openmeetings/core/util/WebSocketHelper.java | 2 +-
.../openmeetings/core/mail/TestMailSending.java | 10 +-
.../openmeetings/core/remote/BaseMockedTest.java | 12 +-
.../core/remote/TestNotConnectedMocked.java | 2 +-
.../core/remote/TestRecordingFlowMocked.java | 10 +-
.../core/remote/TestRoomFlowMocked.java | 14 +-
.../core/remote/TestSetupFlowMocked.java | 20 +-
openmeetings-db/pom.xml | 32 +-
openmeetings-db/src/main/java/module-info.java | 14 +-
.../apache/openmeetings/{ => db}/IApplication.java | 2 +-
.../apache/openmeetings/{ => db}/IWebSession.java | 2 +-
.../db/dao/basic/ConfigurationDao.java | 2 +-
.../openmeetings/db/dao/room/InvitationDao.java | 8 +
.../db/entity/calendar/Appointment.java | 4 +
.../openmeetings/db/entity/room/Invitation.java | 4 +
.../apache/openmeetings/db/entity/room/Room.java | 4 +
.../openmeetings/db/util/ApplicationHelper.java | 4 +-
.../openmeetings/db/util/ws/RoomMessage.java | 1 +
openmeetings-install/pom.xml | 5 +-
.../src/main/java/module-info.java | 16 +-
.../apache/openmeetings/backup/BackupExport.java | 58 +-
.../apache/openmeetings/backup/BackupImport.java | 201 ++++---
.../java/org/apache/openmeetings/cli/Admin.java | 11 +-
.../installation/ImportInitvalues.java | 2 +-
openmeetings-server/pom.xml | 6 +-
.../src/site/markdown/LogoAndIcons.md | 28 +
.../Features_Screen_Conference_Room_Thumb.png | Bin 230947 -> 0 bytes
.../images/cut_administration_configuration.png | Bin 203669 -> 0 bytes
.../resources/images/cut_conference_room_om5.png | Bin 209105 -> 0 bytes
.../site/resources/images/cut_file_explorer.png | Bin 390104 -> 0 bytes
.../resources/images/cut_integrated_calendar.png | Bin 55245 -> 0 bytes
.../site/resources/images/cut_integration_api.png | Bin 152877 -> 0 bytes
.../site/resources/images/cut_private_messages.png | Bin 75489 -> 0 bytes
.../resources/images/cut_recordings_playback.png | Bin 311981 -> 0 bytes
.../src/site/resources/images/desktopsharing.png | Bin 35736 -> 0 bytes
.../site/resources/images/recordings_timeleine.png | Bin 231190 -> 0 bytes
.../screenshots/administration-configuration.png | Bin 0 -> 434836 bytes
.../images/screenshots/calendar-screenshot.png | Bin 0 -> 234263 bytes
.../screenshots/conference-room-av-settings.jpg | Bin 0 -> 157090 bytes
.../resources/images/screenshots/file-explorer.png | Bin 0 -> 646616 bytes
.../images/screenshots/integration-api.png | Bin 0 -> 251807 bytes
.../images/screenshots/private-messages.png | Bin 0 -> 312453 bytes
.../images/screenshots/recordings-playback.png | Bin 0 -> 527528 bytes
.../images/screenshots/screenshot_OM6-2.jpg | Bin 0 -> 136688 bytes
.../resources/images/screenshots/share-screen.jpg | Bin 0 -> 143210 bytes
openmeetings-server/src/site/resources/js/site.js | 2 +-
openmeetings-server/src/site/site.xml | 4 +-
.../src/site/xdoc/BuildInstructions.xml | 23 +-
.../src/site/xdoc/ConfluencePlugin.xml | 2 +-
openmeetings-server/src/site/xdoc/JiraPlugin.xml | 2 +-
openmeetings-server/src/site/xdoc/NewsArchive.xml | 32 +
.../src/site/xdoc/RestAPISample.xml | 121 +++-
.../src/site/xdoc/WebappNamePath.xml | 7 -
openmeetings-server/src/site/xdoc/WebsiteGuide.xml | 2 +-
openmeetings-server/src/site/xdoc/downloads.xml | 30 +-
openmeetings-server/src/site/xdoc/index.xml | 107 ++--
openmeetings-service/pom.xml | 10 -
.../src/main/java/module-info.java | 35 +-
.../service/calendar/caldav/IcalUtils.java | 254 ++++----
.../openmeetings/service/mail/EmailManager.java | 2 +-
.../mail/template/AbstractTemplatePanel.html | 2 +-
.../mail/template/AbstractTemplatePanel.java | 4 +-
.../service/mail/template/FeedbackTemplate.html | 2 +-
.../service/mail/template/InvitationTemplate.html | 2 +-
.../mail/template/RegisterUserTemplate.html | 2 +-
.../template/RequestContactConfirmTemplate.html | 2 +-
.../mail/template/RequestContactTemplate.html | 2 +-
.../mail/template/ResetPasswordTemplate.html | 2 +-
.../subject/AppointmentReminderTemplate.java | 2 +-
.../mail/template/subject/AppointmentTemplate.html | 2 +-
.../mail/template/subject/AppointmentTemplate.java | 2 +-
.../subject/CanceledAppointmentTemplate.java | 2 +-
.../subject/CreatedAppointmentTemplate.java | 2 +-
.../subject/InvitedAppointmentTemplate.html | 2 +-
.../subject/InvitedAppointmentTemplate.java | 2 +-
.../subject/NewGroupUsersNotificationTemplate.html | 2 +-
.../subject/RecordingExpiringTemplate.html | 2 +-
.../subject/UpdatedAppointmentTemplate.java | 2 +-
.../service/room/InvitationManager.java | 10 +-
openmeetings-util/pom.xml | 40 +-
openmeetings-util/src/main/java/module-info.java | 30 +-
.../openmeetings/util/OpenmeetingsVariables.java | 19 +
.../org/apache/openmeetings/util/StoredFile.java | 2 +-
.../openmeetings/util/crypt/CryptProvider.java | 3 -
.../util/mail/ByteArrayDataSource.java | 2 +-
.../apache/openmeetings/util/mail/IcalHandler.java | 25 +-
.../{NonJenkinsTests.java => NonJenkinsTest.java} | 13 +-
openmeetings-web/pom.xml | 119 +---
openmeetings-web/src/main/front/chat/src/chat.js | 2 +-
openmeetings-web/src/main/front/main/src/index.js | 7 +
.../src/main/front/main/src/omutils.js | 25 +-
.../src/main/front/room/src/quick-poll.js | 4 +-
.../src/main/front/room/src/user-list.js | 3 +-
openmeetings-web/src/main/front/room/src/video.js | 5 -
.../src/main/front/settings/src/video-util.js | 16 +-
openmeetings-web/src/main/front/wb/src/wb-tools.js | 16 +-
openmeetings-web/src/main/java/module-info.java | 50 ++
.../openmeetings/web/admin/AdminActionsPanel.html | 2 +-
.../openmeetings/web/admin/AdminActionsPanel.java | 2 +-
.../openmeetings/web/admin/AdminBasePanel.html | 4 +-
.../openmeetings/web/admin/backup/BackupPanel.html | 67 ++-
.../openmeetings/web/admin/backup/BackupPanel.java | 170 ++----
.../backup/BackupUploadResourceReference.java | 99 +++
.../web/admin/configurations/ConfigsPanel.html | 4 +-
.../web/admin/connection/ConnectionsPanel.html | 6 +-
.../web/admin/connection/ConnectionsPanel.java | 4 +-
.../openmeetings/web/admin/email/EmailForm.java | 2 +-
.../openmeetings/web/admin/email/EmailPanel.html | 6 +-
.../openmeetings/web/admin/extra/ExtraPanel.html | 4 +-
.../web/admin/groups/GroupUsersPanel.html | 6 +-
.../web/admin/groups/GroupUsersPanel.java | 6 +-
.../openmeetings/web/admin/groups/GroupsPanel.html | 4 +-
.../openmeetings/web/admin/groups/GroupsPanel.java | 2 +-
.../web/admin/labels/AddLanguageDialog.html | 2 +-
.../openmeetings/web/admin/labels/LangPanel.html | 26 +-
.../openmeetings/web/admin/labels/LangPanel.java | 2 +-
.../openmeetings/web/admin/ldaps/LdapsPanel.html | 4 +-
.../openmeetings/web/admin/oauth/OAuthForm.java | 2 +-
.../openmeetings/web/admin/oauth/OAuthPanel.html | 8 +-
.../openmeetings/web/admin/rooms/RoomForm.java | 8 +-
.../openmeetings/web/admin/rooms/RoomsPanel.html | 16 +-
.../web/admin/users/PasswordDialog.html | 4 +-
.../openmeetings/web/admin/users/UserForm.html | 2 +-
.../openmeetings/web/admin/users/UserForm.java | 4 +-
.../openmeetings/web/admin/users/UsersPanel.html | 4 +-
.../openmeetings/web/admin/users/UsersPanel.java | 2 +-
.../apache/openmeetings/web/app/Application.java | 71 +--
.../web/app/Application.properties.xml | 23 +-
.../web/app/Application_ar.properties.xml | 16 +-
.../web/app/Application_bg.properties.xml | 23 +-
.../web/app/Application_bn.properties.xml | 23 +-
.../web/app/Application_ca.properties.xml | 23 +-
.../web/app/Application_cs.properties.xml | 23 +-
.../web/app/Application_da.properties.xml | 23 +-
.../web/app/Application_de.properties.xml | 12 +-
.../web/app/Application_el.properties.xml | 23 +-
.../web/app/Application_es.properties.xml | 12 +-
.../web/app/Application_fa.properties.xml | 12 +-
.../web/app/Application_fi.properties.xml | 23 +-
.../web/app/Application_fr.properties.xml | 12 +-
.../web/app/Application_gl.properties.xml | 23 +-
.../web/app/Application_hi.properties.xml | 23 +-
.../web/app/Application_hu.properties.xml | 12 +-
.../web/app/Application_in.properties.xml | 23 +-
.../web/app/Application_it.properties.xml | 12 +-
.../web/app/Application_iw.properties.xml | 23 +-
.../web/app/Application_ja.properties.xml | 12 +-
.../web/app/Application_ko.properties.xml | 23 +-
.../web/app/Application_ku.properties.xml | 23 +-
.../web/app/Application_lo.properties.xml | 14 +-
.../web/app/Application_nl.properties.xml | 23 +-
.../web/app/Application_pl.properties.xml | 14 +-
.../web/app/Application_pt.properties.xml | 23 +-
.../web/app/Application_pt_BR.properties.xml | 14 +-
.../web/app/Application_ru.properties.xml | 12 +-
.../web/app/Application_sk.properties.xml | 23 +-
.../web/app/Application_sv.properties.xml | 21 +-
.../web/app/Application_ta.properties.xml | 23 +-
.../web/app/Application_th.properties.xml | 23 +-
.../web/app/Application_tk.properties.xml | 23 +-
.../web/app/Application_tr.properties.xml | 23 +-
.../web/app/Application_uk.properties.xml | 12 +-
.../web/app/Application_ur.properties.xml | 23 +-
.../web/app/Application_zh_CN.properties.xml | 12 +-
.../web/app/Application_zh_TW.properties.xml | 23 +-
.../apache/openmeetings/web/app/WebSession.java | 2 +-
.../openmeetings/web/app/WhiteboardManager.java | 2 +-
.../apache/openmeetings/web/common/Captcha.html | 2 +-
.../openmeetings/web/common/ComunityUserForm.html | 2 +-
.../openmeetings/web/common/ErrorMessagePanel.html | 2 +-
.../openmeetings/web/common/FormActionsPanel.html | 2 +-
.../openmeetings/web/common/FormActionsPanel.java | 2 +-
.../openmeetings/web/common/GeneralUserForm.html | 2 +-
.../openmeetings/web/common/GeneralUserForm.java | 2 +-
.../openmeetings/web/common/HeaderPanel.html | 2 +-
.../apache/openmeetings/web/common/ImagePanel.html | 2 +-
.../openmeetings/web/common/InvitationDialog.html | 2 +-
.../openmeetings/web/common/InvitationDialog.java | 1 +
.../openmeetings/web/common/InvitationForm.html | 2 +-
.../openmeetings/web/common/InvitationForm.java | 8 +-
.../apache/openmeetings/web/common/MainPanel.html | 2 +-
.../apache/openmeetings/web/common/MainPanel.java | 2 +-
.../apache/openmeetings/web/common/NameDialog.html | 4 +-
.../openmeetings/web/common/OmPagingNavigator.html | 2 +-
.../web/common/PagedEntityListPanel.html | 6 +-
.../web/common/PagingNavigatorPanel.html | 6 +-
.../web/common/UploadableImagePanel.html | 2 +-
.../web/common/UploadableImagePanel.java | 2 +-
.../common/confirmation/ConfirmableAjaxBorder.html | 26 -
.../common/confirmation/ConfirmableAjaxBorder.java | 74 ---
.../common/confirmation/ConfirmationBehavior.java | 112 ----
.../common/confirmation/ConfirmationConfig.java | 114 ----
.../common/confirmation/ConfirmationDialog.java | 77 ---
.../common/confirmation/ConfirmationHelper.java | 47 ++
.../common/confirmation/bootstrap-confirmation.js | 596 ------------------
.../common/datetime/AbstractOmDateTimePicker.html | 2 +-
.../openmeetings/web/common/menu/MenuPanel.html | 2 +-
.../web/common/tree/ConvertingErrorsDialog.html | 2 +-
.../web/common/tree/FileItemPanel.html | 2 +-
.../web/common/tree/FileTreePanel.html | 25 +-
.../web/common/tree/FileTreePanel.java | 67 +--
.../openmeetings/web/common/tree/FolderPanel.html | 2 +-
.../web/common/tree/OmTreeProvider.java | 2 +-
.../openmeetings/web/common/tree/filetree.js | 13 +-
.../upload/UploadForm.html} | 38 +-
.../openmeetings/web/common/upload/UploadForm.java | 120 ++++
.../web/common/upload/UploadResourceReference.java | 148 +++++
.../openmeetings/web/common/upload/upload.js | 126 ++++
.../openmeetings/web/pages/AccessDeniedPage.html | 2 +-
.../apache/openmeetings/web/pages/BasePage.html | 34 +-
.../apache/openmeetings/web/pages/BasePage.java | 2 +-
.../apache/openmeetings/web/pages/HashPage.html | 2 +-
.../openmeetings/web/pages/InternalErrorPage.html | 2 +-
.../web/pages/InvitationPasswordDialog.html | 2 +-
.../apache/openmeetings/web/pages/MainPage.html | 2 +-
.../openmeetings/web/pages/NotInitedPage.html | 2 +-
.../apache/openmeetings/web/pages/PrivacyPage.html | 2 +-
.../apache/openmeetings/web/pages/ResetPage.html | 2 +-
.../web/pages/auth/ForgetPasswordDialog.html | 16 +-
.../web/pages/auth/ForgetPasswordDialog.java | 2 +-
.../web/pages/auth/RegisterDialog.html | 34 +-
.../web/pages/auth/ResetPasswordDialog.html | 8 +-
.../openmeetings/web/pages/auth/SignInDialog.html | 36 +-
.../openmeetings/web/pages/auth/SignInPage.html | 2 +-
.../web/pages/install/CongratulationsPanel.html | 2 +-
.../web/pages/install/InstallWizard$DbStep.html | 2 +-
.../pages/install/InstallWizard$InstallStep.html | 2 +-
.../pages/install/InstallWizard$ParamsStep1.html | 2 +-
.../pages/install/InstallWizard$ParamsStep2.html | 2 +-
.../pages/install/InstallWizard$ParamsStep3.html | 2 +-
.../pages/install/InstallWizard$ParamsStep4.html | 2 +-
.../pages/install/InstallWizard$WelcomeStep.html | 2 +-
.../web/pages/install/InstallWizard.java | 8 +-
.../web/pages/install/InstallWizardPage.html | 2 +-
.../openmeetings/web/room/EventDetailDialog.html | 2 +-
.../openmeetings/web/room/IconTextModal.html | 2 +-
.../apache/openmeetings/web/room/NetTestPanel.html | 34 +-
.../openmeetings/web/room/NicknameDialog.html | 2 +-
.../apache/openmeetings/web/room/RoomPanel.html | 30 +-
.../apache/openmeetings/web/room/RoomPanel.java | 61 +-
.../web/room/RoomResourceReference.java | 2 +-
.../openmeetings/web/room/VideoSettings.html | 12 +-
.../web/room/activities/ActivitiesPanel.html | 6 +-
.../openmeetings/web/room/menu/ActionsSubMenu.java | 7 +-
.../web/room/menu/RoomInvitationForm.html | 2 +-
.../web/room/menu/RoomInvitationForm.java | 19 +-
.../openmeetings/web/room/menu/RoomMenuPanel.html | 4 +-
.../openmeetings/web/room/menu/RoomMenuPanel.java | 10 +-
.../web/room/menu/SipDialerDialog.html | 2 +-
.../web/room/poll/CreatePollDialog.html | 10 +-
.../web/room/poll/PollResultsDialog.html | 2 +-
.../web/room/poll/PollResultsDialog.java | 2 +-
.../openmeetings/web/room/poll/VoteDialog.html | 6 +-
.../apache/openmeetings/web/room/raw-nettest.js | 2 +-
.../web/room/sidebar/RoomFilePanel.java | 2 +-
.../sidebar/RoomFileUploadResourceReference.java | 143 ++---
.../openmeetings/web/room/sidebar/RoomSidebar.html | 12 +-
.../openmeetings/web/room/sidebar/RoomSidebar.java | 2 +-
.../RoomUploadForm.html} | 32 +-
.../web/room/sidebar/RoomUploadForm.java | 93 +++
.../web/room/sidebar/UploadDialog.html | 26 +-
.../web/room/sidebar/UploadDialog.java | 53 +-
.../openmeetings/web/room/sidebar/room-upload.js | 14 +
.../apache/openmeetings/web/room/sidebar/upload.js | 112 ----
.../openmeetings/web/room/wb/InterviewWbPanel.html | 2 +-
.../apache/openmeetings/web/room/wb/WbPanel.html | 70 +--
.../web/room/wb/WbWebSocketHelper.java | 2 +-
.../openmeetings/web/room/wb/WsMessageWb.java | 2 +-
.../openmeetings/web/room/wb/WsMessageWbFile.java | 2 +-
.../apache/openmeetings/web/user/AboutDialog.html | 10 +-
.../web/user/InviteUserMessageDialog.html | 2 +-
.../web/user/InviteUserToRoomDialog.html | 2 +-
.../openmeetings/web/user/MessageDialog.html | 2 +-
.../openmeetings/web/user/MessageDialog.java | 5 +-
.../openmeetings/web/user/OmWysiwygToolbar.html | 6 +-
.../openmeetings/web/user/UserInfoDialog.html | 2 +-
.../web/user/calendar/AppointmentDialog.html | 8 +-
.../web/user/calendar/AppointmentDialog.java | 9 +-
.../web/user/calendar/CalendarDialog.html | 2 +-
.../web/user/calendar/CalendarDialog.java | 2 +-
.../web/user/calendar/CalendarPanel.html | 4 +-
.../web/user/calendar/CalendarPanel.java | 2 +-
.../apache/openmeetings/web/user/chat/Chat.html | 6 +-
.../apache/openmeetings/web/user/chat/Chat.java | 4 +-
.../openmeetings/web/user/chat/ChatPanel.html | 4 +-
.../openmeetings/web/user/chat/ChatToolbar.html | 16 +-
.../openmeetings/web/user/chat/ChatToolbar.java | 8 +-
.../web/user/dashboard/MyRoomsWidgetView.html | 2 +-
.../web/user/dashboard/OmDashboardPanel.html | 2 +-
.../web/user/dashboard/RecentRoomsWidgetView.html | 2 +-
.../web/user/dashboard/RssWidgetView.html | 6 +-
.../web/user/dashboard/StartWidgetView.html | 10 +-
.../web/user/dashboard/WelcomeWidgetView.html | 2 +-
.../dashboard/admin/AdminCleanupInfoDialog.html | 2 +-
.../dashboard/admin/AdminCleanupInfoDialog.java | 2 +-
.../web/user/dashboard/admin/AdminWidgetView.html | 2 +-
.../dashboard/admin/CleanupEntityUnitPanel.html | 2 +-
.../web/user/dashboard/admin/CleanupUnitPanel.html | 2 +-
.../apache/openmeetings/web/user/dashboard/rss.js | 2 +-
.../web/user/profile/ChangePasswordDialog.html | 2 +-
.../web/user/profile/EditProfileForm.html | 2 +-
.../web/user/profile/EditProfilePanel.html | 2 +-
.../web/user/profile/InvitationDetails.java | 2 +-
.../web/user/profile/InvitationsPanel.html | 14 +-
.../web/user/profile/InvitationsPanel.java | 2 +-
.../web/user/profile/MessagesContactsPanel.html | 8 +-
.../web/user/profile/MessagesContactsPanel.java | 4 +-
.../web/user/profile/UserProfilePanel.html | 2 +-
.../web/user/profile/UserSearchPanel.html | 6 +-
.../web/user/profile/UserSearchPanel.java | 2 +-
.../web/user/profile/WidgetsPanel.html | 4 +-
.../web/user/profile/WidgetsPanel.java | 4 +-
.../web/user/record/RecordingInvitationForm.html | 2 +-
.../web/user/record/RecordingInvitationForm.java | 9 +-
.../web/user/record/RecordingsPanel.html | 4 +-
.../web/user/record/RecordingsPanel.java | 7 +-
.../openmeetings/web/user/record/VideoInfo.html | 2 +-
.../openmeetings/web/user/record/VideoPlayer.html | 2 +-
.../openmeetings/web/user/rooms/RoomListPanel.html | 6 +-
.../openmeetings/web/user/rooms/RoomListPanel.java | 2 +-
.../openmeetings/web/user/rooms/RoomsPanel.html | 4 +-
.../openmeetings/web/user/rooms/RoomsPanel.java | 2 +-
.../web/user/rooms/RoomsSelectorPanel.html | 4 +-
.../web/user/rooms/RoomsSelectorPanel.java | 11 +-
.../web/user/rooms/RoomsTabbedPanel.html | 2 +-
.../web/util/GroupLogoResourceReference.java | 4 +-
.../web/util/ProfileImageResourceReference.java | 9 +-
.../apache/openmeetings/web/util/ThreadHelper.java | 13 +-
.../web/util/UserDashboardPersister.java | 2 +-
.../util/logging/OpenMeetingsMetricsServlet.java | 3 +-
.../web/util/logging/TomcatGenericExports.java | 13 +-
.../classes/META-INF/oracle_persistence.xml | 2 +-
.../main/webapp/WEB-INF/classes/cxf-servlet.xml | 1 +
.../src/main/webapp/WEB-INF/classes/hazelcast.xml | 2 +-
.../src/main/webapp/css/raw-activities.css | 2 +-
openmeetings-web/src/main/webapp/css/raw-admin.css | 4 +-
.../src/main/webapp/css/raw-calendar.css | 7 +
openmeetings-web/src/main/webapp/css/raw-chat.css | 7 +-
.../src/main/webapp/css/raw-general.css | 22 +-
openmeetings-web/src/main/webapp/css/raw-menu.css | 6 +-
.../src/main/webapp/css/raw-nettest.css | 20 +-
openmeetings-web/src/main/webapp/css/raw-room.css | 111 ++--
openmeetings-web/src/main/webapp/css/raw-tree.css | 18 +-
.../src/main/webapp/css/raw-variables.css | 3 +-
openmeetings-web/src/main/webapp/css/raw-wb.css | 4 +-
.../main/webapp/images/icons/apple-icon-180.png | Bin 0 -> 10696 bytes
.../webapp/images/icons/apple-splash-1125-2436.jpg | Bin 0 -> 66463 bytes
.../webapp/images/icons/apple-splash-1136-640.jpg | Bin 0 -> 24945 bytes
.../webapp/images/icons/apple-splash-1170-2532.jpg | Bin 0 -> 69906 bytes
.../webapp/images/icons/apple-splash-1242-2208.jpg | Bin 0 -> 72120 bytes
.../webapp/images/icons/apple-splash-1242-2688.jpg | Bin 0 -> 75659 bytes
.../webapp/images/icons/apple-splash-1284-2778.jpg | Bin 0 -> 78823 bytes
.../webapp/images/icons/apple-splash-1334-750.jpg | Bin 0 -> 31010 bytes
.../webapp/images/icons/apple-splash-1536-2048.jpg | Bin 0 -> 88952 bytes
.../webapp/images/icons/apple-splash-1620-2160.jpg | Bin 0 -> 95661 bytes
.../webapp/images/icons/apple-splash-1668-2224.jpg | Bin 0 -> 99240 bytes
.../webapp/images/icons/apple-splash-1668-2388.jpg | Bin 0 -> 101273 bytes
.../webapp/images/icons/apple-splash-1792-828.jpg | Bin 0 -> 32864 bytes
.../webapp/images/icons/apple-splash-2048-1536.jpg | Bin 0 -> 83104 bytes
.../webapp/images/icons/apple-splash-2048-2732.jpg | Bin 0 -> 130068 bytes
.../webapp/images/icons/apple-splash-2160-1620.jpg | Bin 0 -> 89441 bytes
.../webapp/images/icons/apple-splash-2208-1242.jpg | Bin 0 -> 60178 bytes
.../webapp/images/icons/apple-splash-2224-1668.jpg | Bin 0 -> 92538 bytes
.../webapp/images/icons/apple-splash-2388-1668.jpg | Bin 0 -> 92578 bytes
.../webapp/images/icons/apple-splash-2436-1125.jpg | Bin 0 -> 50367 bytes
.../webapp/images/icons/apple-splash-2532-1170.jpg | Bin 0 -> 53274 bytes
.../webapp/images/icons/apple-splash-2688-1242.jpg | Bin 0 -> 57573 bytes
.../webapp/images/icons/apple-splash-2732-2048.jpg | Bin 0 -> 121595 bytes
.../webapp/images/icons/apple-splash-2778-1284.jpg | Bin 0 -> 60820 bytes
.../webapp/images/icons/apple-splash-640-1136.jpg | Bin 0 -> 30165 bytes
.../webapp/images/icons/apple-splash-750-1334.jpg | Bin 0 -> 37214 bytes
.../webapp/images/icons/apple-splash-828-1792.jpg | Bin 0 -> 44404 bytes
.../images/icons/manifest-icon-192.maskable.png | Bin 0 -> 11489 bytes
.../images/icons/manifest-icon-512.maskable.png | Bin 0 -> 40763 bytes
.../webapp/images/icons/openmeetings-logo-icon.svg | 110 ++++
.../apache/openmeetings/AbstractSpringTest.java | 48 --
.../calendar/TestAppointmentAddAppointment.java | 4 +-
.../calendar/TestAppointmentSchedulerTask.java | 4 +-
.../calendar/TestDatabaseStructureAppointment.java | 4 +-
...TestDatabaseStructureGetAppointmentByRange.java | 4 +-
.../TestDatabaseStructureGetUserStart.java | 4 +-
.../TestDatabaseStructureMeetingMember.java | 4 +-
.../openmeetings/calendar/TestGetAppointment.java | 4 +-
.../openmeetings/calendar/TestOmCalendar.java | 4 +-
.../openmeetings/calendar/TestSendIcalMessage.java | 33 +-
.../openmeetings/{cli => cmdline}/TestAdmin.java | 16 +-
.../openmeetings/{cli => cmdline}/TestPatcher.java | 9 +-
.../org/apache/openmeetings/config/TestConfig.java | 4 +-
.../openmeetings/core/file/TestFileProcessor.java | 4 +-
.../apache/openmeetings/domain/TestAddGroup.java | 4 +-
.../domain/TestUserGroupAggregation.java | 4 +-
.../openmeetings/invitiation/TestInvitation.java | 6 +-
.../org/apache/openmeetings/ldap/TestLdap.java | 6 +-
.../apache/openmeetings/smoke/TestSmokeBasic.java | 4 +-
.../apache/openmeetings/user/TestUserContact.java | 6 +-
.../apache/openmeetings/user/TestUserCount.java | 4 +-
.../apache/openmeetings/user/TestUserGroup.java | 6 +-
.../org/apache/openmeetings/userdata/TestAuth.java | 4 +-
.../apache/openmeetings/userdata/TestLogin.java | 4 +-
.../org/apache/openmeetings/web/TestCalendar.java | 8 +-
.../org/apache/openmeetings/web/TestMainAreas.java | 6 +-
.../org/apache/openmeetings/web/TestMainMenu.java | 6 +-
.../openmeetings/web/app/TestApplication.java | 4 +-
.../web/app/TestApplicationMocked.java | 6 +-
.../web/app/TestOmAuthenticationStrategy.java | 4 +-
.../web/app/TestUserManagerMocked.java | 2 +
.../openmeetings/web/app/TestWebSession.java | 4 +-
.../openmeetings/web/pages/TestHashPage.java | 8 +-
.../openmeetings/web/pages/auth/TestLoginUI.java | 4 +-
.../web/pages/install/TestInstall.java | 26 +-
.../service/mail}/TestEmailTemplate.java | 12 +-
.../service/mail}/TestSubjTemplate.java | 14 +-
.../test/AbstractOmServerTest.java} | 34 +-
.../test/AbstractWicketTesterTest.java} | 10 +-
.../test/IsolatedTest.java} | 18 +-
.../apache/openmeetings/web/test/RegularTest.java | 23 +-
.../{ => web/test}/backup/AbstractTestImport.java | 10 +-
.../{ => web/test}/backup/TestExport.java | 11 +-
.../{ => web/test}/backup/TestImport.java | 5 +-
.../{ => web/test}/backup/TestImportCalendar.java | 4 +-
.../{ => web/test}/backup/TestImportConfig.java | 4 +-
.../{ => web/test}/backup/TestImportOld.java | 8 +-
.../{ => web/test}/backup/TestImportRoom.java | 4 +-
.../{ => web/test}/backup/TestImportUser.java | 5 +-
.../{db/dao => web/test/db}/TestFileDao.java | 6 +-
.../{db/dao => web/test/db}/TestRoomDao.java | 6 +-
.../scheduler => web/test/job}/TestJob.java | 10 +-
.../openmeetings/{ => web}/util/TestDateTime.java | 6 +-
.../{ => web}/util/TestStoredFile.java | 7 +-
.../webservice/AbstractWebServiceTest.java | 50 +-
.../webservice/CreateTomcatExtension.java | 82 +++
.../webservice/TestCalendarService.java | 14 +-
.../openmeetings/webservice/TestErrorService.java | 2 +-
.../openmeetings/webservice/TestFileService.java | 13 +-
.../openmeetings/webservice/TestGroupService.java | 4 +-
.../openmeetings/webservice/TestInfoService.java | 31 +-
.../webservice/TestRecordingService.java | 2 +-
.../openmeetings/webservice/TestUserService.java | 24 +-
openmeetings-web/src/test/jetty/web.xml | 2 +-
.../src/test/resources/logback-test.xml | 1 +
.../apache/openmeetings/backup/config/configs.xml | 4 +-
.../openmeetings/backup/config/skip/configs.xml | 4 +-
openmeetings-webservice/pom.xml | 107 +++-
.../src/main/java/module-info.java | 13 +-
.../webservice/CalendarWebService.java | 128 +++-
.../openmeetings/webservice/ErrorWebService.java | 41 +-
.../openmeetings/webservice/FileWebService.java | 136 ++++-
.../openmeetings/webservice/GroupWebService.java | 113 +++-
.../openmeetings/webservice/InfoWebService.java | 67 ++-
.../openmeetings/webservice/NetTestWebService.java | 50 +-
.../webservice/RecordingWebService.java | 68 ++-
.../openmeetings/webservice/RoomWebService.java | 202 ++++++-
.../openmeetings/webservice/UserWebService.java | 97 ++-
.../openmeetings/webservice/WbWebService.java | 72 ++-
.../schema/AppointmentDTOListWrapper.java | 157 +++++
.../webservice/schema/AppointmentDTOWrapper.java | 153 +++++
.../schema/FileExplorerObjectWrapper.java | 79 +++
.../webservice/schema/FileItemDTOListWrapper.java | 60 ++
.../webservice/schema/FileItemDTOWrapper.java | 56 ++
.../webservice/schema/GroupDTOListWrapper.java | 58 ++
.../webservice/schema/HealthWrapper.java | 34 +-
.../webservice/schema/InfoWrapper.java | 38 +-
.../webservice/schema/RecordingDTOListWrapper.java | 63 ++
.../webservice/schema/RoomDTOListWrapper.java | 124 ++++
.../webservice/schema/RoomDTOWrapper.java | 64 ++
.../webservice/schema/ServiceResultWrapper.java | 44 +-
.../webservice/schema/UserDTOListWrapper.java | 111 ++++
.../webservice/schema/UserDTOWrapper.java | 68 +++
.../webservice/schema/UserSearchResultWrapper.java | 94 +++
.../webservice/util/OmExceptionHandler.java | 20 +-
pom.xml | 666 +++++++++++++++++----
.../license/THIRD-PARTY.properties | 3 +-
src/license/license-template.ftl | 93 +++
481 files changed, 6195 insertions(+), 3760 deletions(-)
diff --cc openmeetings-core/pom.xml
index 01d7b75,145b416..3cabb9d
--- a/openmeetings-core/pom.xml
+++ b/openmeetings-core/pom.xml
@@@ -84,20 -80,12 +80,8 @@@
<dependency>
<groupId>org.apache.directory.api</groupId>
<artifactId>api-all</artifactId>
- <version>${api-all.version}</version>
- <exclusions>
- <exclusion>
- <groupId>xml-apis</groupId>
- <artifactId>xml-apis</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>javax.mail</artifactId>
- <version>${javax.mail.version}</version>
</dependency>
<dependency>
- <groupId>com.sun.mail</groupId>
- <artifactId>javax.mail</artifactId>
- </dependency>
- <dependency>
<groupId>org.jodconverter</groupId>
<artifactId>jodconverter-local</artifactId>
</dependency>
diff --cc openmeetings-core/src/main/java/module-info.java
index 696b002,0000000..0a2eb16
mode 100644,000000..100644
--- a/openmeetings-core/src/main/java/module-info.java
+++ b/openmeetings-core/src/main/java/module-info.java
@@@ -1,44 -1,0 +1,52 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
- module apache.openmeetings.core {
- requires transitive apache.openmeetings.db;
++module org.apache.openmeetings.core {
++ exports org.apache.openmeetings.core.converter;
++ exports org.apache.openmeetings.core.data.file;
++ exports org.apache.openmeetings.core.ldap;
++ exports org.apache.openmeetings.core.mail;
++ exports org.apache.openmeetings.core.notifier;
++ exports org.apache.openmeetings.core.remote;
++ exports org.apache.openmeetings.core.rss;
++ exports org.apache.openmeetings.core.sip;
++ exports org.apache.openmeetings.core.util;
++
++ requires transitive org.apache.openmeetings.db;
++
++ requires transitive org.apache.wicket.ioc;
+
+ requires transitive org.apache.commons.io;
+
+ requires kurento.client;
+ requires kurento.commons;
+ requires kurento.jsonrpc.client;
- requires java.activation;
+ requires com.google.gson;
- requires java.mail;
+ requires java.xml;
+ requires xstream;
+
+ requires jodconverter.core;
+ requires jodconverter.local;
+ requires org.apache.directory.ldap.api.all;
- requires tika.parsers;
+ requires javax.inject;
- requires wicket.ioc;
+ requires java.annotation;
- requires apache.openmeetings.util;
+ requires asterisk.java;
+ requires jain.sip.ri;
++ requires org.apache.tika.parser.image;
++ requires transitive jakarta.mail;
+}
-
diff --cc openmeetings-core/src/main/java/org/apache/openmeetings/core/mail/MailHandler.java
index 5e42772,5e42772..445d1a6
--- 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
@@@ -40,24 -40,24 +40,10 @@@ import java.util.Date
import java.util.List;
import java.util.Properties;
--import javax.activation.DataHandler;
--import javax.mail.Authenticator;
--import javax.mail.BodyPart;
--import javax.mail.Message;
--import javax.mail.MessagingException;
--import javax.mail.Multipart;
--import javax.mail.PasswordAuthentication;
--import javax.mail.Session;
--import javax.mail.Transport;
--import javax.mail.internet.InternetAddress;
--import javax.mail.internet.MimeBodyPart;
--import javax.mail.internet.MimeMessage;
--import javax.mail.internet.MimeMultipart;
--import javax.mail.util.ByteArrayDataSource;
--
import org.apache.openmeetings.db.dao.basic.MailMessageDao;
import org.apache.openmeetings.db.entity.basic.MailMessage;
import org.apache.openmeetings.db.entity.basic.MailMessage.Status;
++import org.apache.openmeetings.util.mail.ByteArrayDataSource;
import org.apache.openmeetings.util.mail.MailUtil;
import org.apache.wicket.util.string.Strings;
import org.slf4j.Logger;
@@@ -66,6 -66,6 +52,20 @@@ import org.springframework.beans.factor
import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Component;
++import jakarta.activation.DataHandler;
++import jakarta.mail.Authenticator;
++import jakarta.mail.BodyPart;
++import jakarta.mail.Message;
++import jakarta.mail.MessagingException;
++import jakarta.mail.Multipart;
++import jakarta.mail.PasswordAuthentication;
++import jakarta.mail.Session;
++import jakarta.mail.Transport;
++import jakarta.mail.internet.InternetAddress;
++import jakarta.mail.internet.MimeBodyPart;
++import jakarta.mail.internet.MimeMessage;
++import jakarta.mail.internet.MimeMultipart;
++
/**
*
* @author swagner
diff --cc openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
index 04c9a08,04c9a08..7408229
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/KRoom.java
@@@ -30,8 -30,8 +30,8 @@@ import java.util.concurrent.atomic.Atom
import javax.inject.Inject;
import org.apache.commons.lang3.time.FastDateFormat;
--import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.util.WebSocketHelper;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.basic.Client.Activity;
diff --cc openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
index 33d3a8e,33d3a8e..b92ab6d
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/ChatWebSocketHelper.java
@@@ -26,10 -26,10 +26,10 @@@ import java.util.List
import java.util.function.BiConsumer;
import org.apache.commons.lang3.time.FastDateFormat;
--import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.util.ws.WsMessageChat;
import org.apache.openmeetings.core.util.ws.WsMessageChat2All;
import org.apache.openmeetings.core.util.ws.WsMessageChat2User;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.entity.basic.ChatMessage;
import org.apache.openmeetings.db.entity.room.Room.Right;
import org.apache.openmeetings.db.entity.user.User;
diff --cc openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
index 16c3698,16c3698..3ef9357
--- a/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
+++ b/openmeetings-core/src/main/java/org/apache/openmeetings/core/util/WebSocketHelper.java
@@@ -28,12 -28,12 +28,12 @@@ import java.util.function.Function
import java.util.function.Predicate;
import java.util.stream.Stream;
--import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.util.ws.WsMessageAll;
import org.apache.openmeetings.core.util.ws.WsMessageRoom;
import org.apache.openmeetings.core.util.ws.WsMessageRoomMsg;
import org.apache.openmeetings.core.util.ws.WsMessageRoomOthers;
import org.apache.openmeetings.core.util.ws.WsMessageUser;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.basic.IWsClient;
import org.apache.openmeetings.db.manager.IClientManager;
diff --cc openmeetings-core/src/test/java/org/apache/openmeetings/core/mail/TestMailSending.java
index e2572e9,e2572e9..3533970
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/mail/TestMailSending.java
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/core/mail/TestMailSending.java
@@@ -26,15 -26,15 +26,15 @@@ import static org.apache.openmeetings.u
import static org.apache.openmeetings.util.OpenmeetingsVariables.setSmtpUser;
import static org.junit.jupiter.api.Assertions.assertTrue;
--import javax.mail.Message;
--import javax.mail.Transport;
--import javax.mail.internet.InternetAddress;
--import javax.mail.internet.MimeMessage;
--
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
++import jakarta.mail.Message;
++import jakarta.mail.Transport;
++import jakarta.mail.internet.InternetAddress;
++import jakarta.mail.internet.MimeMessage;
++
/**
*
* @author swagner
diff --cc openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/BaseMockedTest.java
index e405d55,ff8549d..a27d3b5
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/BaseMockedTest.java
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/BaseMockedTest.java
@@@ -35,8 -35,8 +35,8 @@@ import java.util.Set
import javax.inject.Inject;
--import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.util.WebSocketHelper;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.dao.label.LabelDao;
import org.apache.openmeetings.db.entity.basic.IWsClient;
import org.apache.openmeetings.db.entity.label.OmLanguage;
diff --cc openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
index 377d48b,b8ddf50..9391a8e
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRecordingFlowMocked.java
@@@ -28,7 -28,7 +28,7 @@@ import static org.mockito.Mockito.doRet
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
--import org.apache.openmeetings.IApplication;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.UserDao;
diff --cc openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
index d120f9b,005bbe4..9d06f7f
--- a/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
+++ b/openmeetings-core/src/test/java/org/apache/openmeetings/core/remote/TestRoomFlowMocked.java
@@@ -26,7 -26,7 +26,7 @@@ import static org.mockito.Mockito.doRet
import static org.mockito.Mockito.lenient;
import static org.mockito.Mockito.mock;
--import org.apache.openmeetings.IApplication;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.UserDao;
diff --cc openmeetings-db/src/main/java/module-info.java
index aa1690d,0000000..62479df
mode 100644,000000..100644
--- a/openmeetings-db/src/main/java/module-info.java
+++ b/openmeetings-db/src/main/java/module-info.java
@@@ -1,63 -1,0 +1,67 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
- module apache.openmeetings.db {
- exports org.apache.openmeetings;
++module org.apache.openmeetings.db {
++ exports org.apache.openmeetings.db;
++ exports org.apache.openmeetings.db.bind;
++ exports org.apache.openmeetings.db.bind.adapter;
+ exports org.apache.openmeetings.db.dao;
+ exports org.apache.openmeetings.db.dao.basic;
+ exports org.apache.openmeetings.db.dao.calendar;
+ exports org.apache.openmeetings.db.dao.file;
+ exports org.apache.openmeetings.db.dao.label;
+ exports org.apache.openmeetings.db.dao.log;
+ exports org.apache.openmeetings.db.dao.record;
+ exports org.apache.openmeetings.db.dao.room;
+ exports org.apache.openmeetings.db.dao.server;
+ exports org.apache.openmeetings.db.dao.user;
+ exports org.apache.openmeetings.db.dto.basic;
+ exports org.apache.openmeetings.db.dto.calendar;
+ exports org.apache.openmeetings.db.dto.file;
+ exports org.apache.openmeetings.db.dto.record;
+ exports org.apache.openmeetings.db.dto.room;
+ exports org.apache.openmeetings.db.dto.user;
+ exports org.apache.openmeetings.db.entity;
+ exports org.apache.openmeetings.db.entity.basic;
+ exports org.apache.openmeetings.db.entity.calendar;
+ exports org.apache.openmeetings.db.entity.file;
+ exports org.apache.openmeetings.db.entity.label;
+ exports org.apache.openmeetings.db.entity.log;
+ exports org.apache.openmeetings.db.entity.record;
+ exports org.apache.openmeetings.db.entity.room;
+ exports org.apache.openmeetings.db.entity.server;
+ exports org.apache.openmeetings.db.entity.user;
+ exports org.apache.openmeetings.db.manager;
++ exports org.apache.openmeetings.db.mapper;
+ exports org.apache.openmeetings.db.util;
+ exports org.apache.openmeetings.db.util.ws;
+
- requires transitive apache.openmeetings.util;
++ requires transitive org.apache.openmeetings.util;
+ requires transitive org.apache.wicket.request;
+ requires transitive org.apache.wicket.websocket.core;
++ requires transitive org.apache.commons.text;
++
+ requires transitive spring.beans;
+ requires transitive spring.web;
+ requires transitive spring.core;
++ requires transitive org.apache.openjpa;
+
+ requires spring.tx;
+ requires javax.persistence;
- requires openjpa;
+ requires java.xml.bind;
- requires org.apache.commons.text;
+}
diff --cc openmeetings-db/src/main/java/org/apache/openmeetings/db/IApplication.java
index 45f9f91,45f9f91..5da9209
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/IApplication.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/IApplication.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings;
++package org.apache.openmeetings.db;
import java.util.Locale;
import java.util.Set;
diff --cc openmeetings-db/src/main/java/org/apache/openmeetings/db/IWebSession.java
index 6f20e00,6f20e00..eccfb7f
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/IWebSession.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/IWebSession.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings;
++package org.apache.openmeetings.db;
import java.util.Locale;
diff --cc openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index 71b8a8d,71b8a8d..be53b79
--- 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
@@@ -41,7 -41,7 +41,7 @@@ import org.apache.openjpa.event.RemoteC
import org.apache.openjpa.event.TCPRemoteCommitProvider;
import org.apache.openjpa.persistence.OpenJPAEntityManagerSPI;
import org.apache.openjpa.persistence.OpenJPAPersistence;
--import org.apache.openmeetings.IApplication;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.dao.IDataProviderDao;
import org.apache.openmeetings.db.dao.server.OAuth2Dao;
import org.apache.openmeetings.db.dao.user.UserDao;
diff --cc openmeetings-db/src/main/java/org/apache/openmeetings/db/util/ApplicationHelper.java
index 06d68b4,06d68b4..22f3510
--- 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
@@@ -34,8 -34,8 +34,8 @@@ import javax.servlet.FilterConfig
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
--import org.apache.openmeetings.IApplication;
--import org.apache.openmeetings.IWebSession;
++import org.apache.openmeetings.db.IApplication;
++import org.apache.openmeetings.db.IWebSession;
import org.apache.openmeetings.db.dao.label.LabelDao;
import org.apache.openmeetings.util.OMContextListener;
import org.apache.wicket.Application;
diff --cc openmeetings-install/src/main/java/module-info.java
index 5987c83,b3174f1..85b0322
--- a/openmeetings-install/src/main/java/module-info.java
+++ b/openmeetings-install/src/main/java/module-info.java
@@@ -16,10 -16,14 +16,16 @@@
* specific language governing permissions and limitations
* under the License.
*/
- module org.apache.openmeetings.util.test {
- requires transitive org.apache.openmeetings.util;
-package org.apache.openmeetings;
++module org.apache.openmeetings.install {
++ exports org.apache.openmeetings.cli;
++ exports org.apache.openmeetings.backup;
++ exports org.apache.openmeetings.installation;
- //tests
- requires org.junit.jupiter.engine;
- requires org.junit.jupiter.api;
-import org.junit.jupiter.api.Test;
-
-class TestConnection {
-
- @Test
- void testNoop() {
- //no-op
- }
++ requires transitive org.apache.openmeetings.core;
++ requires java.xml.bind;
++ requires org.apache.commons.io;
++ requires java.desktop;
++ requires spring.context.support;
++ requires commons.cli;
++ requires quartz;
}
diff --cc openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
index 6990b12,33942d8..57a5d0b
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
@@@ -381,10 -382,10 +382,7 @@@ public class BackupExport
writeList(zos, "extraMenus.xml", EXTRA_MENU_LIST_NODE, list);
}
-- /*
-- * Package private for tests
-- */
-- static <T> ByteArrayOutputStream stream(String listElement, List<T> list) throws Exception {
++ public static <T> ByteArrayOutputStream stream(String listElement, List<T> list) throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream(10 * 1024); //10K
writeList(baos, listElement, list);
return baos;
diff --cc openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
index 8a66ea9,ec17fa0..58e2609f
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
@@@ -480,15 -483,23 +483,23 @@@ public class BackupImport
}
}
}
+ log.info("File explorer item import complete");
+ success = true;
+ } catch (Exception e) {
+ throw e;
+ } finally {
+ if (f != null) {
+ log.info("Clearing temp files ...");
+ FileUtils.deleteDirectory(f);
+ }
+ cleanup();
+ if (success) {
+ progress.set(100);
+ }
}
- log.info("File explorer item import complete, clearing temp files");
-
- FileUtils.deleteDirectory(f);
- cleanup();
- progressHolder.setProgress(100);
}
-- void cleanup() {
++ public void cleanup() {
ldapMap.clear();
oauthMap.clear();
userMap.clear();
@@@ -505,7 -516,7 +516,7 @@@
messageFolderMap.put(TRASH_FOLDER_ID, TRASH_FOLDER_ID);
}
-- static BackupVersion getVersion(File base) {
++ public static BackupVersion getVersion(File base) {
List<BackupVersion> list = new ArrayList<>(1);
readList(base, "version.xml", VERSION_LIST_NODE, VERSION_NODE, BackupVersion.class, list::add, true);
return list.isEmpty() ? new BackupVersion() : list.get(0);
@@@ -514,7 -525,7 +525,7 @@@
/*
* ##################### Import Configs
*/
-- void importConfigs(File base) throws Exception {
++ public void importConfigs(File base) throws Exception {
final Map<Integer, String> keyMap = new HashMap<>();
Arrays.stream(KeyEvent.class.getDeclaredFields())
.filter(fld -> fld.getName().startsWith("VK_"))
@@@ -577,7 -588,7 +588,7 @@@
/*
* ##################### Import Groups
*/
-- void importGroups(File base) throws Exception {
++ public void importGroups(File base) throws Exception {
log.info("Configs import complete, starting group import");
readList(base, "organizations.xml", GROUP_LIST_NODE, GROUP_NODE, Group.class, g -> {
Long oldId = g.getId();
@@@ -590,7 -601,7 +601,7 @@@
/*
* ##################### Import LDAP Configs
*/
-- Long importLdap(File base) {
++ public Long importLdap(File base) {
log.info("Groups import complete, starting LDAP config import");
Long[] defaultLdapId = {cfgDao.getLong(CONFIG_DEFAULT_LDAP_ID, null)};
readList(base, "ldapconfigs.xml", "ldapconfigs", "ldapconfig", LdapConfig.class, c -> {
@@@ -613,7 -624,7 +624,7 @@@
/*
* ##################### OAuth2 servers
*/
-- void importOauth(File base) {
++ public void importOauth(File base) {
log.info("Ldap config import complete, starting OAuth2 server import");
readList(base, "oauth2servers.xml", OAUTH_LIST_NODE, OAUTH_NODE, OAuthServer.class
, s -> {
@@@ -629,7 -640,7 +640,7 @@@
/*
* ##################### Import Users
*/
-- void importUsers(File base) throws Exception {
++ public void importUsers(File base) throws Exception {
log.info("OAuth2 servers import complete, starting user import");
String jNameTimeZone = getDefaultTimezone();
//add existent emails from database
@@@ -755,7 -766,7 +766,7 @@@
/*
* ##################### Import Room Groups
*/
-- void importRoomGroups(File base) throws Exception {
++ public void importRoomGroups(File base) throws Exception {
log.info("Room import complete, starting room groups import");
Class<RoomGroup> eClazz = RoomGroup.class;
JAXBContext jc = JAXBContext.newInstance(eClazz);
@@@ -784,7 -795,7 +795,7 @@@
/*
* ##################### Import Chat messages
*/
-- void importChat(File base) throws Exception {
++ public void importChat(File base) throws Exception {
log.info("Room groups import complete, starting chat messages import");
Class<ChatMessage> eClazz = ChatMessage.class;
JAXBContext jc = JAXBContext.newInstance(eClazz);
@@@ -807,7 -818,7 +818,7 @@@
/*
* ##################### Import Calendars
*/
-- void importCalendars(File base) throws Exception {
++ public void importCalendars(File base) throws Exception {
log.info("Chat messages import complete, starting calendar import");
Class<OmCalendar> eClazz = OmCalendar.class;
JAXBContext jc = JAXBContext.newInstance(eClazz);
@@@ -825,7 -836,7 +836,7 @@@
/*
* ##################### Import Appointments
*/
-- void importAppointments(File base) throws Exception {
++ public void importAppointments(File base) throws Exception {
log.info("Calendar import complete, starting appointement import");
Class<Appointment> eClazz = Appointment.class;
JAXBContext jc = JAXBContext.newInstance(eClazz);
@@@ -860,7 -871,7 +871,7 @@@
*
* Reminder Invitations will be NOT send!
*/
-- void importMeetingMembers(File base) throws Exception {
++ public void importMeetingMembers(File base) throws Exception {
log.info("Appointement import complete, starting meeting members import");
Class<MeetingMember> eClazz = MeetingMember.class;
JAXBContext jc = JAXBContext.newInstance(eClazz);
@@@ -953,7 -964,7 +964,7 @@@
/*
* ##################### Import Recordings
*/
-- void importRecordings(File base) throws Exception {
++ public void importRecordings(File base) throws Exception {
log.info("Meeting members import complete, starting recordings server import");
final Map<Long, Long> folders = new HashMap<>();
saveTree(base, "flvRecordings.xml", RECORDING_LIST_NODE, RECORDING_NODE, Recording.class, folders, r -> {
@@@ -996,7 -1007,7 +1007,7 @@@
/*
* ##################### Import Private Message Folders
*/
-- void importPrivateMsgFolders(File base) {
++ public void importPrivateMsgFolders(File base) {
log.info("Recording import complete, starting private message folder import");
readList(base, "privateMessageFolder.xml", MSG_FOLDER_LIST_NODE, MSG_FOLDER_NODE, PrivateMessageFolder.class, p -> {
Long folderId = p.getId();
@@@ -1141,7 -1152,7 +1152,7 @@@
}, true);
}
-- void importExtraMenus(File base) throws Exception {
++ public void importExtraMenus(File base) throws Exception {
log.info("Room files complete, starting extra menus import");
Class<ExtraMenu> eClazz = ExtraMenu.class;
JAXBContext jc = JAXBContext.newInstance(eClazz);
diff --cc openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
index e653c2a,8a36fb8..297784b
--- a/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
+++ b/openmeetings-install/src/main/java/org/apache/openmeetings/cli/Admin.java
@@@ -105,7 -105,7 +105,7 @@@ public class Admin
private File home;
private String step;
-- Admin() {
++ public Admin() {
cfg = new InstallationConfig();
opts = buildOptions();
step = "Initialization";
@@@ -227,8 -227,8 +227,7 @@@
return context;
}
-- //package private wrapper for testing
-- void process(String... args) throws Exception {
++ public void process(String... args) throws Exception {
CommandLineParser parser = new DefaultParser();
try {
cmdl = parser.parse(opts, args);
diff --cc openmeetings-service/src/main/java/module-info.java
index 696b002,68a8763..d39d422
--- a/openmeetings-service/src/main/java/module-info.java
+++ b/openmeetings-service/src/main/java/module-info.java
@@@ -16,29 -16,33 +16,22 @@@
* specific language governing permissions and limitations
* under the License.
*/
- module apache.openmeetings.core {
- requires transitive apache.openmeetings.db;
-package org.apache.openmeetings.rdc;
-
-import java.awt.event.KeyEvent;
-
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-class TestKeyCodesNumber {
- private static final Logger log = LoggerFactory.getLogger(TestKeyCodesNumber.class);
-
- @Test
- void testKeyCodes() {
- try {
-
- for (int i = 1; i < 600; i++) {
-
- String charText = KeyEvent.getKeyText(i);
-
- log.debug("ERROR " + i + " " + charText);
-
- }
-
- } catch (Exception err) {
- log.error("[testKeyCodes]", err);
- }
-
- }
-
++module org.apache.openmeetings.service {
++ exports org.apache.openmeetings.service.calendar;
++ exports org.apache.openmeetings.service.calendar.caldav;
++ exports org.apache.openmeetings.service.mail;
++ exports org.apache.openmeetings.service.mail.template;
++ exports org.apache.openmeetings.service.mail.template.subject;
++ exports org.apache.openmeetings.service.room;
++ exports org.apache.openmeetings.service.scheduler;
+
- requires transitive org.apache.commons.io;
++ requires transitive org.apache.openmeetings.core;
+
- requires kurento.client;
- requires kurento.commons;
- requires kurento.jsonrpc.client;
- requires java.activation;
- requires com.google.gson;
- requires java.mail;
- requires java.xml;
- requires xstream;
++ requires transitive org.apache.wicket.spring;
+
- requires jodconverter.core;
- requires jodconverter.local;
- requires org.apache.directory.ldap.api.all;
- requires tika.parsers;
- requires javax.inject;
- requires wicket.ioc;
++ requires org.apache.httpcomponents.httpcore;
++ requires org.apache.httpcomponents.httpclient;
++ requires caldav4j;
++ requires jackrabbit.webdav;
+ requires java.annotation;
- requires apache.openmeetings.util;
- requires asterisk.java;
- requires jain.sip.ri;
}
-
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/caldav/IcalUtils.java
index 57a3ce2,57a3ce2..8250564
--- 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
@@@ -20,20 -20,20 +20,26 @@@ package org.apache.openmeetings.service
import static java.util.UUID.randomUUID;
import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
++import static org.apache.openmeetings.util.CalendarHelper.getZoneDateTime;
import static org.apache.openmeetings.util.mail.MailUtil.MAILTO;
import static org.apache.openmeetings.util.mail.MailUtil.SCHEME_MAILTO;
import java.net.URI;
import java.text.ParsePosition;
++import java.time.Instant;
++import java.time.ZonedDateTime;
++import java.time.temporal.Temporal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.NoSuchElementException;
++import java.util.Optional;
import java.util.Set;
import java.util.TimeZone;
import java.util.UUID;
++import java.util.concurrent.atomic.AtomicReference;
import org.apache.commons.lang3.time.FastDateFormat;
import org.apache.openmeetings.db.dao.user.UserDao;
@@@ -50,12 -50,12 +56,8 @@@ import org.springframework.beans.factor
import net.fortuna.ical4j.model.Calendar;
import net.fortuna.ical4j.model.Component;
--import net.fortuna.ical4j.model.ComponentList;
--import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.Parameter;
import net.fortuna.ical4j.model.Property;
--import net.fortuna.ical4j.model.PropertyList;
--import net.fortuna.ical4j.model.Recur.Frequency;
import net.fortuna.ical4j.model.TimeZoneRegistry;
import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
import net.fortuna.ical4j.model.component.CalendarComponent;
@@@ -73,6 -73,6 +75,7 @@@ import net.fortuna.ical4j.model.propert
import net.fortuna.ical4j.model.property.Transp;
import net.fortuna.ical4j.model.property.Uid;
import net.fortuna.ical4j.model.property.Version;
++import net.fortuna.ical4j.transform.recurrence.Frequency;
/**
* Class which provides iCalendar Utilities.
@@@ -81,6 -81,6 +84,8 @@@
@org.springframework.stereotype.Component
public class IcalUtils {
private static final Logger log = LoggerFactory.getLogger(IcalUtils.class);
++ private static final TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
++ 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
@@@ -119,7 -119,7 +124,7 @@@
*/
public List<Appointment> parseCalendartoAppointments(Calendar calendar, Long ownerId) {
List<Appointment> appointments = new ArrayList<>();
-- ComponentList<CalendarComponent> events = calendar.getComponents(Component.VEVENT);
++ List<CalendarComponent> events = calendar.getComponents(Component.VEVENT);
User owner = userDao.get(ownerId);
for (CalendarComponent event : events) {
@@@ -148,14 -148,14 +153,22 @@@
if (calendar == null) {
return a;
}
-- CalendarComponent event = calendar.getComponent(Component.VEVENT);
-- if (event != null) {
++ calendar.getComponent(Component.VEVENT).ifPresent(event -> {
a.setEtag(etag);
-- a = addVEventPropertiestoAppointment(a, event);
-- }
++ addVEventPropertiestoAppointment(a, event);
++ });;
return a;
}
++ private Date getDate(CalendarComponent event, String prop) {
++ return getDate(event.getProperty(prop).get());
++ }
++
++ @SuppressWarnings("unchecked")
++ private Date getDate(Property prop) {
++ return Date.from(Instant.from(((DateProperty<? extends Temporal>)prop).getDate()));
++ }
++
/**
* Add properties from the Given VEvent Component to the Appointment
*
@@@ -164,51 -164,51 +177,21 @@@
* @return Updated Appointment
*/
private Appointment addVEventPropertiestoAppointment(Appointment a, CalendarComponent event) {
-- DateProperty dtstart = (DateProperty)event.getProperty(Property.DTSTART)
-- , dtend = (DateProperty)event.getProperty(Property.DTEND)
-- , dtstamp = (DateProperty)event.getProperty(Property.DTSTAMP)
-- , lastmod = (DateProperty)event.getProperty(Property.LAST_MODIFIED);
-- Property uid = event.getProperty(Property.UID),
-- description = event.getProperty(Property.DESCRIPTION),
-- summary = event.getProperty(Property.SUMMARY),
-- location = event.getProperty(Property.LOCATION),
-- organizer = event.getProperty(Property.ORGANIZER),
-- recur = event.getProperty(Property.RRULE);
-- PropertyList<Attendee> attendees = event.getProperties(Property.ATTENDEE);
--
-- if (uid != null) {
-- a.setIcalId(uid.getValue());
-- }
--
-- Date d = dtstart.getDate();
-- a.setStart(d);
-- if (dtend == null) {
-- a.setEnd(addTimetoDate(d, java.util.Calendar.HOUR_OF_DAY, 1));
-- } else {
-- a.setEnd(dtend.getDate());
-- }
--
-- a.setInserted(dtstamp.getDate());
--
-- if (lastmod != null) {
-- a.setUpdated(lastmod.getDate());
-- }
++ event.getProperty(Property.UID).ifPresent(uid -> a.setIcalId(uid.getValue()));
-- if (description != null) {
-- a.setDescription(description.getValue());
-- }
--
-- if (summary != null) {
-- a.setTitle(summary.getValue());
-- }
++ Date d = getDate(event, Property.DTSTART);
++ a.setStart(getDate(event, Property.DTSTART));
++ event.getProperty(Property.DTEND).ifPresentOrElse(dtend -> a.setEnd(getDate(dtend))
++ , () -> a.setEnd(addTimetoDate(d, java.util.Calendar.HOUR_OF_DAY, 1)));
-- if (location != null) {
-- a.setLocation(location.getValue());
-- }
++ event.getProperty(Property.DTSTAMP).ifPresent(dtstamp -> a.setInserted(getDate(dtstamp)));
++ event.getProperty(Property.LAST_MODIFIED).ifPresent(lastmod -> a.setUpdated(getDate(lastmod)));
++ event.getProperty(Property.DESCRIPTION).ifPresent(description -> a.setDescription(description.getValue()));
++ event.getProperty(Property.SUMMARY).ifPresent(summary -> a.setTitle(summary.getValue()));
++ event.getProperty(Property.LOCATION).ifPresent(location -> a.setLocation(location.getValue()));
-- if (recur != null) {
-- Parameter freq = recur.getParameter("FREQ");
-- if (freq != null) {
++ event.getProperty(Property.RRULE).ifPresent(recur -> {
++ recur.getParameters().getFirst("FREQ").ifPresent(freq -> {
if (freq.getValue().equals(Frequency.DAILY.name())) {
a.setIsDaily(true);
} else if (freq.getValue().equals(Frequency.WEEKLY.name())) {
@@@ -218,22 -218,22 +201,22 @@@
} else if (freq.getValue().equals(Frequency.YEARLY.name())) {
a.setIsYearly(true);
}
-- }
-- }
++ });
++ });
Set<MeetingMember> attList = a.getMeetingMembers() == null ? new HashSet<>()
: new HashSet<>(a.getMeetingMembers());
-- String organizerEmail = null;
++ AtomicReference<String> organizerEmail = new AtomicReference<>();
//Note this value can be repeated in attendees as well.
-- if (organizer != null) {
++ event.getProperty(Property.ORGANIZER).ifPresent(organizer -> {
URI uri = URI.create(organizer.getValue());
//If the value of the organizer is an email
if (SCHEME_MAILTO.equals(uri.getScheme())) {
String email = uri.getSchemeSpecificPart();
-- organizerEmail = email;
++ organizerEmail.set(email);
if (!email.equals(a.getOwner().getAddress().getEmail())) {
//Contact or exist and owner
User org = userDao.getByEmail(email);
@@@ -245,29 -245,29 +228,26 @@@
}
}
}
-- }
++ });
-- if (attendees != null && !attendees.isEmpty()) {
-- for (Property attendee : attendees) {
-- URI uri = URI.create(attendee.getValue());
-- if (SCHEME_MAILTO.equals(uri.getScheme())) {
-- String email = uri.getSchemeSpecificPart();
--
-- Role role = attendee.getParameter(Role.CHAIR.getName());
-- if (role != null && role.getValue().equals(Role.CHAIR.getValue())
-- && email.equals(organizerEmail)) {
-- continue;
-- }
++ event.getProperties(Property.ATTENDEE).forEach(attendee -> {
++ URI uri = URI.create(attendee.getValue());
++ if (SCHEME_MAILTO.equals(uri.getScheme())) {
++ String email = uri.getSchemeSpecificPart();
-- User u = userDao.getByEmail(email);
-- if (u == null) {
-- u = userDao.getContact(email, a.getOwner());
-- }
-- attList.add(createMeetingMember(a, u));
++ Optional<Role> role = attendee.getParameters().getFirst(Role.CHAIR.getName());
++ if (role.isPresent() && role.get().getValue().equals(Role.CHAIR.getValue()) && email.equals(organizerEmail.get())) {
++ return;
++ }
++ User u = userDao.getByEmail(email);
++ if (u == null) {
++ u = userDao.getContact(email, a.getOwner());
}
++ attList.add(createMeetingMember(a, u));
++
}
-- }
++ });
a.setMeetingMembers(attList.isEmpty() ? null : new ArrayList<>(attList));
@@@ -302,16 -302,16 +282,15 @@@
* @return Parsed TimeZone
*/
public TimeZone parseTimeZone(Calendar calendar, User owner) {
-- if (calendar != null) {
-- Component timezone = calendar.getComponent(Component.VTIMEZONE);
-- if (timezone != null) {
-- Property tzid = timezone.getProperty(Property.TZID);
-- if (tzid != null) {
-- return getTimeZone(tzid.getValue());
-- }
-- }
-- }
-- return getTimeZone(owner);
++ return Optional.ofNullable(calendar)
++ .map(cal -> cal.getComponent(Component.VTIMEZONE))
++ .filter(Optional::isPresent)
++ .map(Optional::get)
++ .map(timezone -> timezone.getProperty(Property.TZID))
++ .filter(Optional::isPresent)
++ .map(Optional::get)
++ .map(tzid -> getTimeZone(tzid.getValue()))
++ .orElse(getTimeZone(owner));
}
/**
@@@ -327,13 -327,13 +306,9 @@@
return null;
}
-- String[] acceptedFormats = {"yyyyMMdd'T'HHmmss", "yyyyMMdd'T'HHmmss'Z'", "yyyyMMdd"};
-- Parameter tzid = dt.getParameter(Parameter.TZID);
-- if (tzid == null) {
-- return parseDate(dt.getValue(), acceptedFormats, timeZone);
-- } else {
-- return parseDate(dt.getValue(), acceptedFormats, getTimeZone(tzid.getValue()));
-- }
++ return dt.getParameters().getFirst(Parameter.TZID)
++ .map(tzid -> parseDate(dt.getValue(), getTimeZone(tzid.getValue())))
++ .orElse(parseDate(dt.getValue(), timeZone));
}
/**
@@@ -346,14 -346,14 +321,14 @@@
* @return <code>java.util.Date</code> representation of string or
* <code>null</code> if the Date could not be parsed.
*/
-- public Date parseDate(String str, String[] patterns, TimeZone inTimeZone) {
++ public Date parseDate(String str, TimeZone inTimeZone) {
FastDateFormat parser;
Locale locale = WebSession.get().getLocale();
TimeZone timeZone = str.endsWith("Z") ? TimeZone.getTimeZone("UTC") : inTimeZone;
ParsePosition pos = new ParsePosition(0);
-- for (String pattern : patterns) {
++ for (String pattern : acceptedFormats) {
parser = FastDateFormat.getInstance(pattern, timeZone, locale);
pos.setIndex(0);
Date date = parser.parse(str, pos);
@@@ -373,7 -373,7 +348,7 @@@
* @param amount Amount to be Added
* @return New Date
*/
-- public Date addTimetoDate(Date date, int field, int amount) {
++ public Date addTimetoDate(Date date, int field, int amount) { //FIXME TODO
java.util.Calendar c = java.util.Calendar.getInstance();
c.setTime(date);
c.add(field, amount);
@@@ -381,37 -381,37 +356,6 @@@
}
/**
-- * Methods to parse Appointment to iCalendar according RFC 2445
-- *
-- * @param appointment to be converted to iCalendar
-- * @return iCalendar representation of the Appointment
-- */
-- public Calendar parseAppointmenttoCalendar(Appointment appointment) {
-- String tzid = parseTimeZone(null, appointment.getOwner()).getID();
--
-- TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
--
-- net.fortuna.ical4j.model.TimeZone timeZone = registry.getTimeZone(tzid);
-- if (timeZone == null) {
-- throw new NoSuchElementException("Unable to get time zone by id provided: " + tzid);
-- }
--
-- Calendar icsCalendar = new Calendar();
-- icsCalendar.getProperties().add(new ProdId(PROD_ID));
-- icsCalendar.getProperties().add(Version.VERSION_2_0);
-- icsCalendar.getProperties().add(CalScale.GREGORIAN);
-- icsCalendar.getComponents().add(timeZone.getVTimeZone());
--
-- DateTime start = new DateTime(appointment.getStart()), end = new DateTime(appointment.getEnd());
--
-- VEvent meeting = new VEvent(start, end, appointment.getTitle());
-- addVEventpropsfromAppointment(appointment, meeting);
-- icsCalendar.getComponents().add(meeting);
--
-- return icsCalendar;
-- }
--
-- /**
* Adds the Appointment Properties to the given VEvent
*
* @param appointment Appointment whose properties are taken
@@@ -460,35 -460,35 +404,61 @@@
meeting.getProperties().add(organizer);
}
-- /**
-- * Parses a List of Appointments into a VCALENDAR component.
-- *
-- * @param appointments List of Appointments for the Calendar
-- * @param ownerId Owner of the Appointments
-- * @return VCALENDAR representation of the Appointments
-- */
-- public Calendar parseAppointmentstoCalendar(List<Appointment> appointments, Long ownerId) {
-- String tzid = parseTimeZone(null, userDao.get(ownerId)).getID();
--
-- TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
--
++ private net.fortuna.ical4j.model.TimeZone getTimazone(String tzid) {
net.fortuna.ical4j.model.TimeZone timeZone = registry.getTimeZone(tzid);
if (timeZone == null) {
throw new NoSuchElementException("Unable to get time zone by id provided: " + tzid);
}
++ return timeZone;
++ }
++ private Calendar getCalendar(net.fortuna.ical4j.model.TimeZone timeZone) {
Calendar icsCalendar = new Calendar();
icsCalendar.getProperties().add(new ProdId(PROD_ID));
icsCalendar.getProperties().add(Version.VERSION_2_0);
icsCalendar.getProperties().add(CalScale.GREGORIAN);
icsCalendar.getComponents().add(timeZone.getVTimeZone());
++ return icsCalendar;
++ }
-- for (Appointment appointment : appointments) {
-- DateTime start = new DateTime(appointment.getStart()), end = new DateTime(appointment.getEnd());
++ private void parseAppointment(Appointment appointment, Calendar icsCalendar, net.fortuna.ical4j.model.TimeZone timeZone) {
++ ZonedDateTime start = getZoneDateTime(appointment.getStart(), timeZone.getID());
++ ZonedDateTime end = getZoneDateTime(appointment.getEnd(), timeZone.getID());
-- VEvent meeting = new VEvent(start, end, appointment.getTitle());
-- addVEventpropsfromAppointment(appointment, meeting);
-- icsCalendar.getComponents().add(meeting);
++ VEvent meeting = new VEvent(start, end, appointment.getTitle());
++ addVEventpropsfromAppointment(appointment, meeting);
++ icsCalendar.getComponents().add(meeting);
++ }
++
++ /**
++ * Methods to parse Appointment to iCalendar according RFC 2445
++ *
++ * @param appointment to be converted to iCalendar
++ * @return iCalendar representation of the Appointment
++ */
++ public Calendar parseAppointmenttoCalendar(Appointment appointment) {
++ net.fortuna.ical4j.model.TimeZone timeZone = getTimazone(parseTimeZone(null, appointment.getOwner()).getID());
++
++ Calendar icsCalendar = getCalendar(timeZone);
++ parseAppointment(appointment, icsCalendar, timeZone);
++
++ return icsCalendar;
++ }
++
++ /**
++ * Parses a List of Appointments into a VCALENDAR component.
++ *
++ * @param appointments List of Appointments for the Calendar
++ * @param ownerId Owner of the Appointments
++ * @return VCALENDAR representation of the Appointments
++ */
++ public Calendar parseAppointmentstoCalendar(List<Appointment> appointments, Long ownerId) {
++ net.fortuna.ical4j.model.TimeZone timeZone = getTimazone(parseTimeZone(null, userDao.get(ownerId)).getID());
++
++ Calendar icsCalendar = getCalendar(timeZone);
++
++ for (Appointment appointment : appointments) {
++ parseAppointment(appointment, icsCalendar, timeZone);
}
return icsCalendar;
}
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/EmailManager.java
index 593c7c7,593c7c7..ae91fa0
--- 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
@@@ -23,8 -23,8 +23,8 @@@ import static org.apache.openmeetings.u
import static org.apache.openmeetings.util.OpenmeetingsVariables.getWicketApplicationName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendRegisterEmail;
--import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.mail.MailHandler;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.service.mail.template.RegisterUserTemplate;
import org.apache.wicket.Application;
import org.apache.wicket.request.mapper.parameter.PageParameters;
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
index 39c0d5f,39c0d5f..ddd8113
--- 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
@@@ -22,8 -22,8 +22,8 @@@ import static org.apache.openmeetings.d
import java.util.Locale;
--import org.apache.openmeetings.IApplication;
--import org.apache.openmeetings.IWebSession;
++import org.apache.openmeetings.db.IApplication;
++import org.apache.openmeetings.db.IWebSession;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java
index 08149d8,08149d8..04dc2de
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java
@@@ -47,7 -47,7 +47,7 @@@ public class AppointmentReminderTemplat
}
@Override
-- String getPrefix() {
++ public String getPrefix() {
return app.getOmString("1158", locale);
}
}
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentTemplate.java
index 8f40f5f,8f40f5f..d2ab5d8
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentTemplate.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentTemplate.java
@@@ -59,7 -59,7 +59,7 @@@ public abstract class AppointmentTempla
add(new Label("end", format(a.getEnd())));
}
-- abstract String getPrefix();
++ public abstract String getPrefix();
@Override
Fragment getSubjectFragment() {
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java
index ebf807b,ebf807b..fd32229
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java
@@@ -47,7 -47,7 +47,7 @@@ public class CanceledAppointmentTemplat
}
@Override
-- String getPrefix() {
++ public String getPrefix() {
return app.getOmString("1157", locale);
}
}
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java
index 161d10f,161d10f..627b34e
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java
@@@ -47,7 -47,7 +47,7 @@@ public class CreatedAppointmentTemplat
}
@Override
-- String getPrefix() {
++ public String getPrefix() {
return app.getOmString("1151", locale);
}
}
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/InvitedAppointmentTemplate.java
index 7f0b00d,7f0b00d..ac4823e
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/InvitedAppointmentTemplate.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/InvitedAppointmentTemplate.java
@@@ -28,7 -28,7 +28,7 @@@ public abstract class InvitedAppointmen
private static final long serialVersionUID = 1L;
protected final String invitorName;
-- InvitedAppointmentTemplate(Locale locale, Appointment a, TimeZone tz, String invitorName) {
++ public InvitedAppointmentTemplate(Locale locale, Appointment a, TimeZone tz, String invitorName) {
super(locale, a, tz);
this.invitorName = invitorName;
}
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java
index cb9b315,cb9b315..f6231d0
--- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java
+++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java
@@@ -47,7 -47,7 +47,7 @@@ public class UpdatedAppointmentTemplat
}
@Override
-- String getPrefix() {
++ public String getPrefix() {
return app.getOmString("1155", locale);
}
}
diff --cc openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
index 32822a2,32822a2..9397ce7
--- 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
@@@ -22,12 -22,12 +22,13 @@@ import static java.util.UUID.randomUUID
import static org.apache.openmeetings.db.entity.calendar.Appointment.allowedStart;
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
++import static org.apache.openmeetings.util.CalendarHelper.getZoneDateTime;
import java.util.Date;
import java.util.TimeZone;
--import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.mail.MailHandler;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.dao.room.InvitationDao;
import org.apache.openmeetings.db.entity.basic.MailMessage;
import org.apache.openmeetings.db.entity.calendar.Appointment;
@@@ -117,14 -117,14 +118,15 @@@ public class InvitationManager implemen
if (invitationLink != null) {
desc += (desc.isEmpty() ? "" : "\n\n\n") + invitationLink;
}
++ String tzid = getTimeZone(owner).getID();
IcalHandler handler = new IcalHandler(MessageType.CANCEL == type ? IcalHandler.ICAL_METHOD_CANCEL : IcalHandler.ICAL_METHOD_REQUEST)
-- .createVEvent(getTimeZone(owner).getID(), a.getStart(), a.getEnd(), a.getTitle())
++ .createVEvent(getZoneDateTime(a.getStart(), tzid), getZoneDateTime(a.getEnd(), tzid), a.getTitle())
.addOrganizer(replyToEmail, owner.getDisplayName())
.setUid(a.getIcalId())
.addAttendee(email, i.getInvitee().getDisplayName(), isOwner)
-- .setCreated(a.getInserted())
++ .setCreated(getZoneDateTime(a.getInserted(), tzid))
.setDescription(desc)
-- .setModified(a.getUpdated())
++ .setModified(getZoneDateTime(a.getUpdated(), tzid))
.setLocation(a.getLocation())
.setSequence(0)
.build();
diff --cc openmeetings-util/pom.xml
index 5ac31ed,f066117..0dade93
--- a/openmeetings-util/pom.xml
+++ b/openmeetings-util/pom.xml
@@@ -146,8 -128,8 +128,18 @@@
<artifactId>aspectjtools</artifactId>
</dependency>
<dependency>
++ <groupId>com.sun.mail</groupId>
++ <artifactId>jakarta.mail</artifactId>
++ </dependency>
++ <dependency>
<groupId>io.prometheus</groupId>
-- <artifactId>simpleclient</artifactId>
++ <artifactId>simpleclient_servlet</artifactId>
++ </dependency>
++ <dependency>
++ <groupId>org.junit.jupiter</groupId>
++ <artifactId>junit-jupiter-engine</artifactId>
++ <scope>compile</scope>
++ <optional>true</optional>
</dependency>
</dependencies>
</project>
diff --cc openmeetings-util/src/main/java/module-info.java
index ecd5250,0000000..2a5c013
mode 100644,000000..100644
--- a/openmeetings-util/src/main/java/module-info.java
+++ b/openmeetings-util/src/main/java/module-info.java
@@@ -1,48 -1,0 +1,48 @@@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+module org.apache.openmeetings.util {
++ exports org.apache.openmeetings.util;
++ exports org.apache.openmeetings.util.crypt;
++ exports org.apache.openmeetings.util.mail;
++ exports org.apache.openmeetings.util.process;
++ exports org.apache.openmeetings.util.ws;
++ exports org.apache.openmeetings.util.logging;
++
+ requires transitive org.apache.wicket.util;
+ requires transitive org.apache.wicket.core;
+ requires transitive org.apache.wicket.extensions;
+
+ requires transitive org.apache.commons.codec;
+ requires transitive org.apache.commons.lang3;
++ requires transitive org.apache.tika.core;
++
++ requires transitive jakarta.activation;
+
+ requires transitive com.github.openjson;
+ requires transitive org.slf4j;
+ requires transitive org.bouncycastle.provider;
- requires transitive jakarta.activation;
+ requires transitive org.mnode.ical4j.core;
- requires org.aspectj.tools;
- requires transitive javax.servlet.api;
- requires transitive tika.core;
+ requires transitive spring.context;
- requires transitive logback.classic;
- requires transitive logback.core;
++ requires transitive ch.qos.logback.classic;
++ requires transitive ch.qos.logback.core;
+ requires transitive dom4j;
- requires transitive jcip.annotations;
- requires simpleclient;
-
- exports org.apache.openmeetings.util;
- exports org.apache.openmeetings.util.crypt;
- exports org.apache.openmeetings.util.mail;
- exports org.apache.openmeetings.util.process;
- exports org.apache.openmeetings.util.ws;
- exports org.apache.openmeetings.util.logging;
++ requires javax.servlet.api;
++ requires simpleclient.servlet;
++ requires org.aspectj.tools;
+}
diff --cc openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
index 8910122,8910122..7ad0ff6
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
@@@ -26,7 -26,7 +26,7 @@@ import java.io.IOException
import java.io.InputStream;
import java.io.OutputStream;
--import javax.activation.DataSource;
++import jakarta.activation.DataSource;
public class ByteArrayDataSource implements DataSource {
private byte[] data; // data
diff --cc openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
index 8314358,8314358..e4a498f
--- a/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
+++ b/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
@@@ -24,7 -24,7 +24,7 @@@ import java.io.ByteArrayOutputStream
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URI;
--import java.util.Date;
++import java.time.ZonedDateTime;
import java.util.NoSuchElementException;
import org.slf4j.Logger;
@@@ -32,7 -32,7 +32,6 @@@ import org.slf4j.LoggerFactory
import net.fortuna.ical4j.data.CalendarOutputter;
import net.fortuna.ical4j.model.Calendar;
--import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.TimeZone;
import net.fortuna.ical4j.model.TimeZoneRegistry;
import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
@@@ -66,6 -66,6 +65,7 @@@ import net.fortuna.ical4j.validate.Vali
*/
public class IcalHandler {
private static final Logger log = LoggerFactory.getLogger(IcalHandler.class);
++ private static final TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
static {
System.setProperty("net.fortuna.ical4j.timezone.update.enabled", "false");
System.setProperty("net.fortuna.ical4j.timezone.cache.impl", "net.fortuna.ical4j.util.MapTimeZoneCache");
@@@ -99,32 -99,32 +99,25 @@@
icsCalendar.getProperties().add(method);
}
-- public IcalHandler createVEvent(String tz, Date startDate, Date endDate, String name) {
-- TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
--
-- timeZone = registry.getTimeZone(tz);
++ public IcalHandler createVEvent(ZonedDateTime start, ZonedDateTime end, String name) {
++ timeZone = registry.getTimeZone(start.getZone().getId());
if (timeZone == null) {
-- throw new NoSuchElementException("Unable to get time zone by id provided: " + tz);
++ throw new NoSuchElementException("Unable to get time zone by id provided: " + start.getZone());
}
-- DateTime start = new DateTime(startDate);
-- start.setTimeZone(timeZone);
-- DateTime end = new DateTime(endDate);
-- end.setTimeZone(timeZone);
--
meeting = new VEvent(start, end, name);
meeting.getProperties().add(Transp.OPAQUE);
meeting.getProperties().add(Status.VEVENT_CONFIRMED);
return this;
}
-- public IcalHandler setCreated(Date date) {
-- meeting.getProperties().add(new Created(new DateTime(date)));
++ public IcalHandler setCreated(ZonedDateTime date) {
++ meeting.getProperties().add(new Created(date.toInstant()));
return this;
}
-- public IcalHandler setModified(Date date) {
-- meeting.getProperties().add(new LastModified(new DateTime(date == null ? new Date() : date)));
++ public IcalHandler setModified(ZonedDateTime date) {
++ meeting.getProperties().add(new LastModified((date == null ? ZonedDateTime.now() : date).toInstant()));
return this;
}
diff --cc openmeetings-web/pom.xml
index 1255216,02fe510..49fe8eb
--- a/openmeetings-web/pom.xml
+++ b/openmeetings-web/pom.xml
@@@ -622,17 -579,16 +579,8 @@@
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
-- <groupId>io.prometheus</groupId>
-- <artifactId>simpleclient_servlet</artifactId>
-- </dependency>
-- <dependency>
-- <groupId>org.apache.tomcat</groupId>
-- <artifactId>tomcat-catalina</artifactId>
-- </dependency>
-- <dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery-ui-touch-punch</artifactId>
- <version>0.2.3-2</version>
</dependency>
<!-- Test dependencies -->
<dependency>
diff --cc openmeetings-web/src/main/java/module-info.java
index 0000000,0000000..ad9ddf2
new file mode 100644
--- /dev/null
+++ b/openmeetings-web/src/main/java/module-info.java
@@@ -1,0 -1,0 +1,50 @@@
++/*
++ * Licensed to the Apache Software Foundation (ASF) under one
++ * or more contributor license agreements. See the NOTICE file
++ * distributed with this work for additional information
++ * regarding copyright ownership. The ASF licenses this file
++ * to you under the Apache License, Version 2.0 (the
++ * "License") + you may not use this file except in compliance
++ * with the License. You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing,
++ * software distributed under the License is distributed on an
++ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
++ * KIND, either express or implied. See the License for the
++ * specific language governing permissions and limitations
++ * under the License.
++ */
++module org.apache.openmeetings.web {
++ requires org.apache.openmeetings.service;
++ requires org.apache.wicket.auth.roles;
++ requires org.apache.wicket.devutils;
++
++ requires wicketstuff.dashboard.core;
++ requires wicketstuff.datastore.hazelcast;
++ requires wicketstuff.select2;
++ requires wicketstuff.urlfragment;
++
++ requires wicket.bootstrap.extensions;
++ requires wicket.bootstrap.core;
++ requires wicket.bootstrap.themes;
++
++ requires org.danekja.jdk.serializable.functional;
++ requires wicket.jquery.ui;
++ requires wicket.jquery.ui.calendar;
++ requires wicket.jquery.ui.core;
++ requires wicket.jquery.ui.plugins;
++ requires javax.websocket.api;
++ requires com.hazelcast.core;
++ requires java.management;
++ requires simpleclient.servlet;
++ requires commons.fileupload;
++ requires org.apache.openmeetings.install;
++ requires spring.orm;
++ requires java.net.http;
++ requires wicket.webjars;
++ requires jqplot;
++ requires jqplot4java;
++ requires java.ws.rs;
++}
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java
index 9132b84,39160b7..2da273b
--- 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
@@@ -18,9 -18,9 +18,9 @@@
*/
package org.apache.openmeetings.web.admin.connection;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
- import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelConfirm;
+ import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelConfirm;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
index a72f18f,a72f18f..53e64fe
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/groups/GroupsPanel.java
@@@ -19,9 -19,9 +19,9 @@@
package org.apache.openmeetings.web.admin.groups;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
++import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultGroup;
--import static org.apache.openmeetings.web.app.WebSession.getRights;
import java.util.Iterator;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
index 93cde50,2219359..25217e1
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/labels/LangPanel.java
@@@ -19,8 -19,8 +19,8 @@@
package org.apache.openmeetings.web.admin.labels;
import static java.time.Duration.ZERO;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+ import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelDangerConfirm;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
- import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
import static org.apache.wicket.request.resource.ContentDisposition.ATTACHMENT;
import java.io.IOException;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java
index b93776d,afcb9b9..6f688a1
--- 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
@@@ -19,13 -19,13 +19,13 @@@
package org.apache.openmeetings.web.admin.rooms;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isRecordingsEnabled;
import static org.apache.openmeetings.web.admin.AdminUserChoiceProvider.PAGE_SIZE;
import static org.apache.openmeetings.web.app.Application.kickUser;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
- import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
+ import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelDangerConfirm;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isRecordingsEnabled;
import static org.apache.wicket.validation.validator.StringValidator.maximumLength;
import java.util.ArrayList;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UserForm.java
index b60059c,b60059c..6b561cf
--- 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
@@@ -23,10 -23,10 +23,10 @@@ import static org.apache.openmeetings.d
import static org.apache.openmeetings.db.entity.user.User.DISPLAY_NAME_NA;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendRegisterEmail;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isSendRegisterEmail;
import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
import java.util.ArrayList;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/users/UsersPanel.java
index 6dba04d,6dba04d..eb701b8
--- 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
@@@ -19,8 -19,8 +19,8 @@@
package org.apache.openmeetings.web.admin.users;
import static org.apache.openmeetings.db.dao.user.UserDao.getNewUserInstance;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.user.User;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.java
index a173df2,4dbb3b8..c196086
--- 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
@@@ -45,10 -46,10 +46,10 @@@ import java.util.stream.Stream
import javax.websocket.WebSocketContainer;
--import org.apache.openmeetings.IApplication;
import org.apache.openmeetings.core.sip.SipManager;
import org.apache.openmeetings.core.util.ChatWebSocketHelper;
import org.apache.openmeetings.core.util.WebSocketHelper;
++import org.apache.openmeetings.db.IApplication;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.label.LabelDao;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
index f64b4a1,957ee1d..d6076f2
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
index 89cd296,cad7b48..4d60bfb
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ar.properties.xml
@@@ -763,7 -763,7 +763,7 @@@ see https://openmeetings.apache.org/Lan
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
index 9e2563d,160dc48..ab8effa
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bg.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
index 531ec4d,a4894e6..507b7e5
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_bn.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
index 15bc331,7882279..c40b777
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ca.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
index 9320649,3bb47dc..870fabb
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_cs.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
index afc6e54,0d0afd6..4709e5e
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_da.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
index 69025b3,b5cf43e..be6c68b
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_el.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
index 413ac0a,db09cee..3bbf79d
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_fi.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
index e0ac9f7,b9f9087..7c91881
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_gl.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
index c6f6ba4,491aaff..501f548
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_hi.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
index 9bb7d65,e4378c8..47cb519
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_in.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_iw.properties.xml
index f2c325f,8fd939c..b69d03c
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_iw.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_iw.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
index d542c70,707be0e..d569f96
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ko.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
index 729ecd5,1386623..1d05a23
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ku.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
index 3423fcc,33ff47e..6b75be1
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_lo.properties.xml
@@@ -763,7 -763,7 +763,7 @@@ see https://openmeetings.apache.org/Lan
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
index 14d1726,6f31705..10b5551
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_nl.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
index 404f951,6d7df1b..2834dcd
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pl.properties.xml
@@@ -763,7 -763,7 +763,7 @@@ see https://openmeetings.apache.org/Lan
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
index b8076ac,bfe087d..57d96f9
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
index 1679a06,62eb69d..4c671d8
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_pt_BR.properties.xml
@@@ -763,7 -763,7 +763,7 @@@ see https://openmeetings.apache.org/Lan
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
index 15663b0,4912e6e..ef1cfa7
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_sk.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
index 6a5e248,b6ca04e..140661a
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ta.properties.xml
@@@ -765,7 -774,7 +774,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
index 281e418,891c8e7..59fdcaf
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_th.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
index b273337,06bd4cb..aa96294
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tk.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
index 169e6cb,8dd2585..d50261d
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_tr.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
index f64b4a1,957ee1d..d6076f2
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_ur.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
index 01db3e1,5f3b4ba..5dabc7f
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/Application_zh_TW.properties.xml
@@@ -763,7 -772,7 +772,7 @@@ To update your system
<entry key="install.wizard.params.step4.crypt"><![CDATA[Crypt Type]]></entry>
<entry key="install.wizard.params.step4.cryptClassName"><![CDATA[Crypt Class]]></entry>
<entry key="install.wizard.params.step4.cryptClassName.text"><![CDATA[You can use this default crypt type which is equal to
-- RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.util.crypt.SCryptImplementation</b>
++ RFC 7914 - The scrypt Password-Based Key Derivation Function:<b>org.apache.openmeetings.web.util.crypt.SCryptImplementation</b>
for more information or to write your own Crypt-Style see: <a
href="https://openmeetings.apache.org/CustomCryptMechanism.html"
target="_blank">Custom Crypt Mechanism</a> You can edit this
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
index a4df318,a4df318..6621ed0
--- 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
@@@ -41,8 -41,8 +41,8 @@@ import java.util.Set
import java.util.TimeZone;
import org.apache.commons.lang3.time.FastDateFormat;
--import org.apache.openmeetings.IWebSession;
import org.apache.openmeetings.core.ldap.LdapLoginManager;
++import org.apache.openmeetings.db.IWebSession;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.label.LabelDao;
import org.apache.openmeetings.db.dao.room.InvitationDao;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WhiteboardManager.java
index 6d24e77,6d24e77..1be3d6a
--- 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
@@@ -20,8 -20,8 +20,8 @@@ package org.apache.openmeetings.web.app
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_SLIDE;
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultLang;
import static org.apache.openmeetings.web.room.wb.WbWebSocketHelper.sendWbAll;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.getDefaultLang;
import java.util.ArrayList;
import java.util.HashMap;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
index 75c1811,75c1811..9222ce8
--- 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
@@@ -19,10 -19,10 +19,10 @@@
package org.apache.openmeetings.web.common;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasGroupAdminLevel;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isDisplayNameEditable;
import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isDisplayNameEditable;
import java.util.ArrayList;
import java.util.List;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/FileTreePanel.java
index 8ea79c8,21aea80..8ba2189
--- 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
@@@ -21,15 -21,16 +21,16 @@@ package org.apache.openmeetings.web.com
import static de.agilecoders.wicket.core.markup.html.bootstrap.dialog.Modal.BUTTON_MARKUP_ID;
import static java.time.Duration.ZERO;
import static java.util.UUID.randomUUID;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
-import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
+ import static org.apache.openmeetings.web.app.WebSession.getUserId;
+ import static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
+ import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelDangerConfirmCfg;
+ import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
+ import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_JPG;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_MP4;
+import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
- import static org.apache.openmeetings.web.app.WebSession.getUserId;
- import static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
- import static org.apache.openmeetings.web.pages.BasePage.ALIGN_LEFT;
- import static org.apache.openmeetings.web.pages.BasePage.ALIGN_RIGHT;
import java.io.File;
import java.nio.file.Path;
@@@ -44,10 -45,8 +45,8 @@@ import org.apache.openmeetings.db.entit
import org.apache.openmeetings.db.entity.file.BaseFileItem.Type;
import org.apache.openmeetings.db.entity.file.FileItem;
import org.apache.openmeetings.db.entity.record.Recording;
--import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.common.NameDialog;
- import org.apache.openmeetings.web.common.confirmation.ConfirmableAjaxBorder;
- import org.apache.openmeetings.web.common.confirmation.ConfirmationDialog;
++import org.apache.openmeetings.util.OmFileHelper;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxEventBehavior;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/common/tree/OmTreeProvider.java
index 1517e47,1517e47..f93c6b0
--- 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
@@@ -19,9 -19,9 +19,9 @@@
package org.apache.openmeetings.web.common.tree;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isRecordingsEnabled;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isRecordingsEnabled;
import java.util.ArrayList;
import java.util.Iterator;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
index 92350d3,92350d3..66d9090
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
@@@ -18,10 -18,10 +18,10 @@@
*/
package org.apache.openmeetings.web.pages;
++import static org.apache.openmeetings.web.app.Application.isInstalled;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getApplicationName;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getGaCode;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isInitComplete;
--import static org.apache.openmeetings.web.app.Application.isInstalled;
import static org.apache.wicket.RuntimeConfigurationType.DEVELOPMENT;
import java.util.HashMap;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/ForgetPasswordDialog.java
index ee2be61,ee2be61..9ed0701
--- 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
@@@ -19,9 -19,9 +19,9 @@@
package org.apache.openmeetings.web.pages.auth;
import static java.util.UUID.randomUUID;
++import static org.apache.openmeetings.web.app.Application.urlForPage;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
import static org.apache.openmeetings.util.OpenmeetingsVariables.getMinLoginLength;
--import static org.apache.openmeetings.web.app.Application.urlForPage;
import java.util.Date;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/install/InstallWizard.java
index 865e228,865e228..e265115
--- 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
@@@ -19,9 -19,9 +19,9 @@@
package org.apache.openmeetings.web.pages.install;
import static org.apache.openmeetings.core.converter.BaseConverter.EXEC_EXT;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONES;
import static org.apache.openmeetings.web.app.WebSession.AVAILABLE_TIMEZONE_SET;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.USER_LOGIN_MINIMUM_LENGTH;
import static org.apache.wicket.validation.validator.RangeValidator.range;
import static org.apache.wicket.validation.validator.StringValidator.minimumLength;
import static org.springframework.web.context.support.WebApplicationContextUtils.getWebApplicationContext;
@@@ -45,17 -45,17 +45,17 @@@ import org.apache.openmeetings.db.dao.l
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
--import org.apache.openmeetings.util.ConnectionProperties;
--import org.apache.openmeetings.util.ConnectionProperties.DbType;
--import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.util.process.ProcessHelper;
import org.apache.openmeetings.util.process.ProcessResult;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.common.ErrorMessagePanel;
import org.apache.openmeetings.web.common.OmLabel;
++import org.apache.openmeetings.util.ConnectionProperties;
++import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.util.OmTooltipBehavior;
import org.apache.openmeetings.web.util.ThreadHelper;
++import org.apache.openmeetings.util.ConnectionProperties.DbType;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomPanel.java
index de66749,0e84051..c0c4461
--- 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
@@@ -23,10 -23,10 +23,10 @@@ import static java.time.Duration.ZERO
import static org.apache.openmeetings.core.remote.KurentoHandler.activityAllowed;
import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_USER_PREFIX;
import static org.apache.openmeetings.db.entity.calendar.Appointment.allowedStart;
--import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.room.wb.WbPanel.WB_JS_REFERENCE;
++import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
import java.io.IOException;
import java.nio.file.Files;
@@@ -59,7 -56,8 +56,7 @@@ import org.apache.openmeetings.db.util.
import org.apache.openmeetings.db.util.ws.RoomMessage;
import org.apache.openmeetings.db.util.ws.RoomMessage.Type;
import org.apache.openmeetings.db.util.ws.TextRoomMessage;
--import org.apache.openmeetings.util.NullStringer;
+ import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.ClientManager;
import org.apache.openmeetings.web.app.QuickPollManager;
import org.apache.openmeetings.web.app.TimerService;
@@@ -73,6 -71,6 +70,7 @@@ import org.apache.openmeetings.web.room
import org.apache.openmeetings.web.room.wb.WbAction;
import org.apache.openmeetings.web.room.wb.WbPanel;
import org.apache.openmeetings.web.util.ExtendedClientProperties;
++import org.apache.openmeetings.util.NullStringer;
import org.apache.openmeetings.web.util.TouchPunchResourceReference;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.Component;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/RoomResourceReference.java
index 98636ed,98636ed..ae9cb40
--- 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
@@@ -19,11 -19,11 +19,11 @@@
package org.apache.openmeetings.web.room;
import static org.apache.openmeetings.db.dto.room.Whiteboard.ATTR_SLIDE;
++import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PNG;
import static org.apache.openmeetings.util.OmFileHelper.MP4_MIME_TYPE;
import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
import static org.apache.openmeetings.util.OmFileHelper.getImagesDir;
--import static org.apache.openmeetings.web.app.WebSession.getUserId;
import java.io.File;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/ActionsSubMenu.java
index 8ec7507,7655214..33e9f2c
--- 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
@@@ -18,10 -18,10 +18,10 @@@
*/
package org.apache.openmeetings.web.room.menu;
++import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PDF;
import static org.apache.openmeetings.util.OmFileHelper.EXTENSION_PNG;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isSipEnabled;
--import static org.apache.openmeetings.web.app.WebSession.getUserId;
import java.io.Serializable;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/menu/RoomMenuPanel.java
index d96d16f,d96d16f..4fd172b
--- 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
@@@ -18,16 -18,16 +18,16 @@@
*/
package org.apache.openmeetings.web.room.menu;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.util.GroupLogoResourceReference.getUrl;
import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_GROUP;
import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_MY;
import static org.apache.openmeetings.web.util.OmUrlFragment.ROOMS_PUBLIC;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REDIRECT_URL_FOR_EXTERNAL;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
import java.util.ArrayList;
import java.util.Date;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/sidebar/RoomFilePanel.java
index 5eb979d,5eb979d..1468cc6
--- 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
@@@ -18,9 -18,9 +18,9 @@@
*/
package org.apache.openmeetings.web.room.sidebar;
--import static org.apache.openmeetings.util.OmFileHelper.getHumanSize;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
++import static org.apache.openmeetings.util.OmFileHelper.getHumanSize;
import org.apache.openmeetings.db.dao.file.FileItemDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
index 3894920,3894920..74bd097
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WbWebSocketHelper.java
@@@ -28,12 -28,12 +28,12 @@@ import java.util.function.Predicate
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.file.BaseFileItem;
--import org.apache.openmeetings.util.NullStringer;
import org.apache.openmeetings.util.ws.IClusterWsMessage;
import org.apache.openmeetings.web.room.RoomPreviewResourceReference;
import org.apache.openmeetings.web.room.RoomResourceReference;
import org.apache.openmeetings.web.user.record.Mp4RecordingResourceReference;
import org.apache.openmeetings.web.user.record.PngRecordingResourceReference;
++import org.apache.openmeetings.util.NullStringer;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.handler.resource.ResourceReferenceRequestHandler;
import org.apache.wicket.request.mapper.parameter.PageParameters;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WsMessageWb.java
index 6c8018e,6c8018e..6d226d2
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WsMessageWb.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WsMessageWb.java
@@@ -18,8 -18,8 +18,8 @@@
*/
package org.apache.openmeetings.web.room.wb;
--import org.apache.openmeetings.util.NullStringer;
import org.apache.openmeetings.util.ws.IClusterWsMessage;
++import org.apache.openmeetings.util.NullStringer;
import com.github.openjson.JSONObject;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WsMessageWbFile.java
index b3c7212,b3c7212..2051f48
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WsMessageWbFile.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/WsMessageWbFile.java
@@@ -19,8 -19,8 +19,8 @@@
package org.apache.openmeetings.web.room.wb;
import org.apache.openmeetings.db.entity.file.BaseFileItem;
--import org.apache.openmeetings.util.NullStringer;
import org.apache.openmeetings.util.ws.IClusterWsMessage;
++import org.apache.openmeetings.util.NullStringer;
import com.github.openjson.JSONObject;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
index 4c51295,0481bee..eacf2e6
--- 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
@@@ -18,13 -18,13 +18,13 @@@
*/
package org.apache.openmeetings.web.user.calendar;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.common.BasePanel.EVT_CHANGE;
- import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
+ import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelDangerConfirm;
import static org.apache.openmeetings.web.util.CalendarWebHelper.getDate;
import static org.apache.openmeetings.web.util.CalendarWebHelper.getDateTime;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
import java.time.LocalDateTime;
import java.util.ArrayList;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/Chat.java
index 3d91602,3d91602..0ce06b1
--- 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
@@@ -20,11 -20,11 +20,11 @@@ package org.apache.openmeetings.web.use
import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ALL;
import static org.apache.openmeetings.core.util.ChatWebSocketHelper.ID_ROOM_PREFIX;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_CHAT;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isChatSendOnEnter;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.room.RoomPanel.isModerator;
import static org.apache.openmeetings.web.util.CallbackFunctionHelper.getNamedFunction;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_CHAT;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isChatSendOnEnter;
import static org.apache.openmeetings.web.util.ProfileImageResourceReference.getUrl;
import static org.apache.wicket.ajax.attributes.CallbackParameter.explicit;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/dashboard/admin/AdminCleanupInfoDialog.java
index 5d76376,44509eb..6a03349
--- 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
@@@ -23,10 -23,10 +23,10 @@@ import static org.apache.openmeetings.c
import static org.apache.openmeetings.cli.CleanupHelper.getImportUnit;
import static org.apache.openmeetings.cli.CleanupHelper.getProfileUnit;
import static org.apache.openmeetings.cli.CleanupHelper.getRecUnit;
++import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelDangerConfirm;
import static org.apache.openmeetings.util.OmFileHelper.getHumanSize;
import static org.apache.openmeetings.util.OmFileHelper.getStreamsDir;
import static org.apache.openmeetings.util.OmFileHelper.getUploadDir;
- import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
-import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelDangerConfirm;
import org.apache.openmeetings.cli.CleanupEntityUnit;
import org.apache.openmeetings.cli.CleanupUnit;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.java
index 3be2347,3be2347..b51fc47
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/InvitationsPanel.java
@@@ -19,9 -19,9 +19,9 @@@
package org.apache.openmeetings.web.user.profile;
import static org.apache.openmeetings.db.util.FormatHelper.formatUser;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import java.util.Iterator;
import java.util.Set;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/MessagesContactsPanel.java
index 83d6b73,f5f6819..489f7c9
--- 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
@@@ -21,10 -21,10 +21,10 @@@ package org.apache.openmeetings.web.use
import static org.apache.openmeetings.db.entity.user.PrivateMessage.INBOX_FOLDER_ID;
import static org.apache.openmeetings.db.entity.user.PrivateMessage.SENT_FOLDER_ID;
import static org.apache.openmeetings.db.entity.user.PrivateMessage.TRASH_FOLDER_ID;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import static org.apache.openmeetings.web.app.WebSession.getDateFormat;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
- import static org.apache.openmeetings.web.common.confirmation.ConfirmationBehavior.newOkCancelDangerConfirm;
+ import static org.apache.openmeetings.web.common.confirmation.ConfirmationHelper.newOkCancelDangerConfirm;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import java.util.ArrayList;
import java.util.HashSet;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/UserSearchPanel.java
index 94afde3,94afde3..bf9a4c4
--- 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
@@@ -19,8 -19,8 +19,8 @@@
package org.apache.openmeetings.web.user.profile;
import static org.apache.openmeetings.db.util.TimezoneUtil.getTimeZone;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_CLASS;
import java.util.ArrayList;
import java.util.Iterator;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/profile/WidgetsPanel.java
index 0e80f38,0e80f38..988e127
--- 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
@@@ -19,11 -19,11 +19,11 @@@
package org.apache.openmeetings.web.user.profile;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS;
import static org.apache.openmeetings.web.app.Application.getDashboardContext;
import static org.apache.openmeetings.web.app.WebSession.getDashboard;
import static org.apache.openmeetings.web.app.WebSession.getRights;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_MYROOMS;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS;
import java.util.ArrayList;
import java.util.Iterator;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/record/RecordingsPanel.java
index 1cd806e,5a14902..12b8361
--- 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
@@@ -18,9 -18,9 +18,9 @@@
*/
package org.apache.openmeetings.web.user.record;
++import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.util.OmFileHelper.getHumanSize;
import static org.apache.openmeetings.util.OmFileHelper.getRecordingChunk;
--import static org.apache.openmeetings.web.app.WebSession.getUserId;
import java.util.List;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomListPanel.java
index 3576fc8,3576fc8..76073fc
--- 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
@@@ -18,8 -18,8 +18,8 @@@
*/
package org.apache.openmeetings.web.user.rooms;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
import static org.apache.openmeetings.web.common.BasePanel.EVT_CLICK;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
import java.io.Serializable;
import java.util.List;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
index 4760969,4760969..9ed7c0a
--- 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
@@@ -28,9 -28,9 +28,9 @@@ import org.apache.openmeetings.db.dao.r
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.basic.Client;
import org.apache.openmeetings.db.entity.room.Room;
--import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.app.ClientManager;
import org.apache.openmeetings.web.common.UserPanel;
++import org.apache.openmeetings.util.OmFileHelper;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsSelectorPanel.java
index ffff1f7,f8c7716..1650b31
--- 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
@@@ -18,10 -18,11 +18,11 @@@
*/
package org.apache.openmeetings.web.user.rooms;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
--import static org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_GROUP;
import static org.apache.openmeetings.web.util.OmUrlFragment.TYPE_MY;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.ATTR_TITLE;
++import static org.apache.openmeetings.util.OpenmeetingsVariables.isMyRoomsEnabled;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.web.app.Application;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/util/GroupLogoResourceReference.java
index 060c838,060c838..bf066c9
--- 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
@@@ -19,10 -19,10 +19,10 @@@
package org.apache.openmeetings.web.util;
import static org.apache.openmeetings.db.util.AuthLevelUtil.hasAdminLevel;
--import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
--import static org.apache.openmeetings.util.OmFileHelper.getGroupLogo;
import static org.apache.openmeetings.web.app.WebSession.getRights;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
++import static org.apache.openmeetings.util.OmFileHelper.getGroupLogo;
import java.io.File;
import java.io.IOException;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/util/ProfileImageResourceReference.java
index ce79595,ce79595..21bd5fb
--- 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
@@@ -20,8 -20,8 +20,8 @@@ package org.apache.openmeetings.web.uti
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.web.app.WebSession;
++import org.apache.openmeetings.util.OmFileHelper;
import org.apache.wicket.injection.Injector;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@@ -34,14 -34,14 +34,15 @@@ import org.slf4j.Logger
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpServletResponse;
++
++import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
++import static org.apache.openmeetings.util.OmFileHelper.SIP_USER_ID;
++
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URI;
--import static org.apache.openmeetings.util.OmFileHelper.PNG_MIME_TYPE;
--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);
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboardPersister.java
index 5b468ed,5b468ed..71274b9
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboardPersister.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/UserDashboardPersister.java
@@@ -19,8 -19,8 +19,8 @@@
package org.apache.openmeetings.web.util;
import static java.nio.charset.StandardCharsets.UTF_8;
--import static org.apache.openmeetings.util.OmFileHelper.getUserDashboard;
import static org.apache.openmeetings.web.app.WebSession.getUserId;
++import static org.apache.openmeetings.util.OmFileHelper.getUserDashboard;
import java.io.File;
import java.io.FileInputStream;
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/OpenMeetingsMetricsServlet.java
index 05c1555,05c1555..1b9bdd5
--- 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
@@@ -21,8 -21,8 +21,7 @@@ package org.apache.openmeetings.web.uti
import io.prometheus.client.exporter.MetricsServlet;
public class OpenMeetingsMetricsServlet extends MetricsServlet {
--
-- private static final long serialVersionUID = -2488393857088858502L;
++ private static final long serialVersionUID = 1L;
public OpenMeetingsMetricsServlet() {
super();
diff --cc openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/TomcatGenericExports.java
index 8865859,8865859..0383d14
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/TomcatGenericExports.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/logging/TomcatGenericExports.java
@@@ -18,10 -18,10 +18,12 @@@
*/
package org.apache.openmeetings.web.util.logging;
++import java.io.InputStream;
import java.lang.management.ManagementFactory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
++import java.util.Properties;
import java.util.Set;
import javax.management.Attribute;
@@@ -30,11 -30,11 +32,11 @@@ import javax.management.MBeanServer
import javax.management.ObjectInstance;
import javax.management.ObjectName;
--import org.apache.catalina.util.ServerInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.prometheus.client.Collector;
++import io.prometheus.client.Collector.MetricFamilySamples;
import io.prometheus.client.CounterMetricFamily;
import io.prometheus.client.GaugeMetricFamily;
@@@ -293,7 -293,7 +295,14 @@@ public class TomcatGenericExports exten
private void addVersionInfo(List<MetricFamilySamples> mfs) {
GaugeMetricFamily tomcatInfo = new GaugeMetricFamily("tomcat_info", "tomcat version info",
List.of("version", "build"));
-- tomcatInfo.addMetric(List.of(ServerInfo.getServerNumber(), ServerInfo.getServerBuilt()), 1);
++ try (InputStream is = getClass().getResourceAsStream("/org/apache/catalina/util/ServerInfo.properties")) {
++ Properties props = new Properties();
++ props.load(is);
++ //server info can be get as props.getProperty("server.info");
++ tomcatInfo.addMetric(List.of(props.getProperty("server.number"), props.getProperty("server.built")), 1);
++ } catch (Throwable t) {
++ log.warn("Unable to read Tomcat version: ", t);
++ }
mfs.add(tomcatInfo);
}
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
index 5819d14,65ba0b0..695051c
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentAddAppointment.java
@@@ -29,7 -29,7 +29,6 @@@ import java.util.ArrayList
import java.util.Calendar;
import java.util.Date;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
@@@ -38,6 -38,6 +37,7 @@@ import org.apache.openmeetings.db.entit
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.service.calendar.AppointmentLogic;
import org.apache.openmeetings.web.app.WebSession;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
index 642c15f,50996e8..c704dec
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestAppointmentSchedulerTask.java
@@@ -23,9 -23,9 +23,9 @@@ import static org.apache.openmeetings.u
import static org.apache.openmeetings.util.OpenmeetingsVariables.setBaseUrl;
import static org.junit.jupiter.api.Assertions.assertTrue;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.entity.basic.Configuration;
import org.apache.openmeetings.service.calendar.AppointmentLogic;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureAppointment.java
index a5993c2,21371c2..4d30e87
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureAppointment.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureAppointment.java
@@@ -24,8 -24,8 +24,8 @@@ import java.util.Date
import java.util.Iterator;
import java.util.List;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.entity.calendar.Appointment;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetAppointmentByRange.java
index cf58b10,33f9a57..6b532c9
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetAppointmentByRange.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetAppointmentByRange.java
@@@ -23,9 -23,9 +23,9 @@@ import static org.junit.jupiter.api.Ass
import java.util.ArrayList;
import java.util.Calendar;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.calendar.MeetingMember;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetUserStart.java
index 9898299,a40d9a8..e948b0d
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetUserStart.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureGetUserStart.java
@@@ -18,7 -18,7 +18,7 @@@
*/
package org.apache.openmeetings.calendar;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureMeetingMember.java
index 25e4d16,b29ffdb..c3d38c1
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureMeetingMember.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestDatabaseStructureMeetingMember.java
@@@ -18,10 -18,10 +18,10 @@@
*/
package org.apache.openmeetings.calendar;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
- class TestDatabaseStructureMeetingMember extends AbstractJUnitDefaults {
+ class TestDatabaseStructureMeetingMember extends AbstractOmServerTest {
@Test
void testUpdateMeetingMember(){
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
index 511b803,bde1652..047cf0a
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestGetAppointment.java
@@@ -24,9 -24,9 +24,9 @@@ import static org.junit.jupiter.api.Ass
import java.util.Calendar;
import java.util.Date;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
index 9b1483f,cf9e953..50f3d61
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestOmCalendar.java
@@@ -21,10 -21,10 +21,10 @@@ package org.apache.openmeetings.calenda
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
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.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
index 7da0ed6,2d3d2cf..d16c730
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/calendar/TestSendIcalMessage.java
@@@ -19,6 -19,6 +19,7 @@@
package org.apache.openmeetings.calendar;
import static java.util.UUID.randomUUID;
++import static org.apache.openmeetings.util.CalendarHelper.getZoneDateTime;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.io.ByteArrayInputStream;
@@@ -27,24 -27,24 +28,25 @@@ import java.util.Date
import java.util.TimeZone;
import javax.activation.DataHandler;
--import javax.mail.BodyPart;
--import javax.mail.Message;
--import javax.mail.Multipart;
--import javax.mail.internet.InternetAddress;
--import javax.mail.internet.MimeBodyPart;
--import javax.mail.internet.MimeMessage;
--import javax.mail.internet.MimeMultipart;
--
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
++
import org.apache.openmeetings.core.mail.MailHandler;
import org.apache.openmeetings.util.mail.ByteArrayDataSource;
import org.apache.openmeetings.util.mail.IcalHandler;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
- class TestSendIcalMessage extends AbstractJUnitDefaults {
++import jakarta.mail.BodyPart;
++import jakarta.mail.Message;
++import jakarta.mail.Multipart;
++import jakarta.mail.internet.InternetAddress;
++import jakarta.mail.internet.MimeBodyPart;
++import jakarta.mail.internet.MimeMessage;
++import jakarta.mail.internet.MimeMultipart;
++
+ class TestSendIcalMessage extends AbstractOmServerTest {
private static final Logger log = LoggerFactory.getLogger(TestSendIcalMessage.class);
@Autowired
@@@ -65,8 -65,8 +67,9 @@@
Calendar endCal = Calendar.getInstance();
endCal.add(Calendar.HOUR_OF_DAY, 1);
Date end = endCal.getTime();
++ String tzid = TimeZone.getDefault().getID();
IcalHandler handler = new IcalHandler(IcalHandler.ICAL_METHOD_REQUEST)
-- .createVEvent(TimeZone.getDefault().getID(), start, end, "test event")
++ .createVEvent(getZoneDateTime(start, tzid), getZoneDateTime(end, tzid), "test event")
.setLocation("")
.setDescription("localhost:5080/link_openmeetings")
.setUid(randomUUID().toString())
@@@ -91,16 -91,16 +94,12 @@@
// -- Create a new message --
BodyPart msg = new MimeBodyPart();
-- msg.setDataHandler(new DataHandler(new ByteArrayDataSource(htmlBody,
-- "text/html; charset=\"utf-8\"")));
++ msg.setDataHandler(new DataHandler(new ByteArrayDataSource(htmlBody, "text/html; charset=\"utf-8\"")));
Multipart multipart = new MimeMultipart();
BodyPart iCalAttachment = new MimeBodyPart();
-- iCalAttachment.setDataHandler(new DataHandler(
-- new javax.mail.util.ByteArrayDataSource(
-- new ByteArrayInputStream(iCalMimeBody),
-- "text/calendar;method=REQUEST;charset=\"UTF-8\"")));
++ iCalAttachment.setDataHandler(new DataHandler(new jakarta.mail.util.ByteArrayDataSource(new ByteArrayInputStream(iCalMimeBody), "text/calendar;method=REQUEST;charset=\"UTF-8\"")));
iCalAttachment.setFileName("invite.ics");
multipart.addBodyPart(iCalAttachment);
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/cmdline/TestAdmin.java
index 38bcf05,5ba13a8..cfe624b
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/cmdline/TestAdmin.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/cmdline/TestAdmin.java
@@@ -16,14 -16,14 +16,9 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.cli;
++package org.apache.openmeetings.cmdline;
import static org.apache.commons.io.FileUtils.deleteQuietly;
- import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
- import static org.apache.openmeetings.AbstractJUnitDefaults.email;
- import static org.apache.openmeetings.AbstractJUnitDefaults.group;
- import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
- import static org.apache.openmeetings.AbstractSpringTest.setOmHome;
-import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
-import static org.apache.openmeetings.AbstractOmServerTest.email;
-import static org.apache.openmeetings.AbstractOmServerTest.group;
-import static org.apache.openmeetings.AbstractOmServerTest.setOmHome;
-import static org.apache.openmeetings.AbstractOmServerTest.userpass;
import static org.apache.openmeetings.cli.Admin.OM_HOME;
import static org.apache.openmeetings.db.util.ApplicationHelper.destroyApplication;
import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
@@@ -33,6 -33,6 +28,11 @@@ import static org.apache.openmeetings.u
import static org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
import static org.apache.openmeetings.web.pages.install.TestInstall.resetH2Home;
import static org.apache.openmeetings.web.pages.install.TestInstall.setH2Home;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.adminUsername;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.email;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.group;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.setOmHome;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.userpass;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
@@@ -42,6 -42,7 +42,9 @@@ import java.util.ArrayList
import java.util.List;
import java.util.UUID;
-import org.apache.openmeetings.IsolatedTest;
++import org.apache.openmeetings.cli.Admin;
++import org.apache.openmeetings.cli.ExitException;
++import org.apache.openmeetings.web.test.IsolatedTest;
import org.apache.wicket.Application;
import org.apache.wicket.protocol.http.WebApplication;
import org.junit.jupiter.api.AfterEach;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/cmdline/TestPatcher.java
index 149583f,194572c..34f787e
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/cmdline/TestPatcher.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/cmdline/TestPatcher.java
@@@ -16,18 -16,19 +16,20 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.cli;
++package org.apache.openmeetings.cmdline;
- import static org.apache.openmeetings.AbstractSpringTest.setOmHome;
-import static org.apache.openmeetings.AbstractOmServerTest.setOmHome;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.setOmHome;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.IOException;
import java.util.TimeZone;
import org.apache.openjpa.lib.util.Files;
-import org.apache.openmeetings.IsolatedTest;
++import org.apache.openmeetings.cli.ConnectionPropertiesPatcher;
import org.apache.openmeetings.util.ConnectionProperties;
--import org.apache.openmeetings.util.ConnectionProperties.DbType;
import org.apache.openmeetings.util.OmFileHelper;
++import org.apache.openmeetings.util.ConnectionProperties.DbType;
++import org.apache.openmeetings.web.test.IsolatedTest;
import org.apache.wicket.request.Url;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/config/TestConfig.java
index 9e45fbb,56bce75..9d29143
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/config/TestConfig.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/config/TestConfig.java
@@@ -24,8 -24,8 +24,8 @@@ import static org.junit.jupiter.api.Ass
import java.util.List;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.entity.basic.Configuration;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/core/file/TestFileProcessor.java
index 5a0545f,e472b79..b056443
--- 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
@@@ -28,12 -28,12 +28,12 @@@ import java.io.FileInputStream
import java.io.InputStream;
import java.util.Optional;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.core.data.file.FileProcessor;
import org.apache.openmeetings.db.dto.file.FileItemDTO;
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.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
index 03d1726,18bc5c0..8ca2e08
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestAddGroup.java
@@@ -20,9 -20,9 +20,9 @@@ package org.apache.openmeetings.domain
import static org.junit.jupiter.api.Assertions.assertNotNull;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.entity.user.Group;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestUserGroupAggregation.java
index 576757e,3aec7e8..57fd6ad
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestUserGroupAggregation.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/domain/TestUserGroupAggregation.java
@@@ -21,9 -21,9 +21,9 @@@ package org.apache.openmeetings.domain
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
index ec508a2,bd5b349..a087402
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/invitiation/TestInvitation.java
@@@ -19,12 -19,12 +19,11 @@@
package org.apache.openmeetings.invitiation;
import static org.apache.openmeetings.util.CalendarHelper.getDate;
--import static org.junit.Assert.assertNotNull;
++import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.time.LocalDateTime;
import java.util.Date;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.room.Invitation;
@@@ -33,6 -33,6 +32,7 @@@ import org.apache.openmeetings.db.entit
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.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
index fe1296d,0f4e998..3cb675f
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/ldap/TestLdap.java
@@@ -52,13 -52,13 +52,13 @@@ import org.apache.directory.server.core
import org.apache.directory.server.core.annotations.CreateDS;
import org.apache.directory.server.core.annotations.CreatePartition;
import org.apache.directory.server.protocol.shared.transport.Transport;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.core.ldap.LdapLoginManager;
import org.apache.openmeetings.db.dao.server.LdapConfigDao;
import org.apache.openmeetings.db.entity.server.LdapConfig;
import org.apache.openmeetings.db.entity.user.User;
--import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.app.WebSession;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
++import org.apache.openmeetings.util.OmException;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
index 361b090,073daec..953a4c9
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
@@@ -20,10 -20,10 +20,10 @@@ package org.apache.openmeetings.smoke
import static org.junit.jupiter.api.Assertions.assertNotNull;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
- class TestSmokeBasic extends AbstractJUnitDefaults {
+ class TestSmokeBasic extends AbstractOmServerTest {
@Test
void createErrorValueAndTest() {
assertNotNull(userDao.get(1L));
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
index 6aeb394,2831699..e50ec6d
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserContact.java
@@@ -19,9 -19,9 +19,9 @@@
package org.apache.openmeetings.user;
import static java.util.UUID.randomUUID;
++import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.apache.openmeetings.util.OpenmeetingsVariables.isSipEnabled;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setSipEnabled;
--import static org.apache.openmeetings.web.app.WebSession.getUserId;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
@@@ -29,11 -29,11 +29,11 @@@ import static org.junit.jupiter.api.Ass
import java.util.List;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.junit.jupiter.api.Test;
- class TestUserContact extends AbstractWicketTester {
+ class TestUserContact extends AbstractWicketTesterTest {
@Test
void testGetUser() {
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserCount.java
index f835642,73957e2..3a2fcb3
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserCount.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserCount.java
@@@ -23,12 -23,12 +23,12 @@@ import static org.apache.openmeetings.w
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.user.Group;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.junit.jupiter.api.Test;
- class TestUserCount extends AbstractWicketTester {
+ class TestUserCount extends AbstractWicketTesterTest {
@Test
void testCountSearchUsers() throws Exception {
User u = createUser();
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
index d201a8b,f4c4683..ca7251f
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/user/TestUserGroup.java
@@@ -26,12 -26,12 +26,12 @@@ import static org.junit.jupiter.api.Ass
import java.util.List;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.dao.user.GroupUserDao;
import org.apache.openmeetings.db.entity.user.Group;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.util.OmException;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
index 15a4808,b2a36aa..c69a094
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestAuth.java
@@@ -22,9 -22,9 +22,9 @@@ import static java.util.UUID.randomUUID
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
import org.apache.openmeetings.db.entity.server.Sessiondata;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
index 7a6e834,43133d1..2f6f011
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/userdata/TestLogin.java
@@@ -20,12 -20,12 +20,12 @@@ package org.apache.openmeetings.userdat
import static org.junit.jupiter.api.Assertions.assertNotNull;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.util.OmException;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
- class TestLogin extends AbstractJUnitDefaults {
+ class TestLogin extends AbstractOmServerTest {
@Test
void testTestLogin() throws OmException {
User us = userDao.login(adminUsername, userpass);
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
index 80e4e33,16d5a97..3e8a71a
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestCalendar.java
@@@ -25,11 -25,11 +25,11 @@@ import static org.junit.jupiter.api.Ass
import java.time.LocalDateTime;
import java.util.List;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.user.User;
--import org.apache.openmeetings.util.OmException;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.openmeetings.web.user.calendar.CalendarPanel;
++import org.apache.openmeetings.util.OmException;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
import org.apache.wicket.util.tester.FormTester;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
index a24b3e2,e433169..222e95f
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainAreas.java
@@@ -40,8 -40,8 +40,6 @@@ import static org.junit.jupiter.api.Ass
import java.util.function.Consumer;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
--import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.admin.backup.BackupPanel;
import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
import org.apache.openmeetings.web.admin.connection.ConnectionsPanel;
@@@ -60,12 -60,12 +58,14 @@@ import org.apache.openmeetings.web.page
import org.apache.openmeetings.web.pages.install.InstallWizardPage;
import org.apache.openmeetings.web.room.RoomPanel;
import org.apache.openmeetings.web.room.wb.AbstractWbPanel;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.openmeetings.web.user.calendar.CalendarPanel;
import org.apache.openmeetings.web.user.dashboard.OmDashboardPanel;
import org.apache.openmeetings.web.user.profile.EditProfilePanel;
import org.apache.openmeetings.web.user.profile.MessagesContactsPanel;
import org.apache.openmeetings.web.user.record.RecordingsPanel;
import org.apache.openmeetings.web.user.rooms.RoomsSelectorPanel;
++import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.util.OmUrlFragment.AreaKeys;
import org.apache.wicket.authorization.UnauthorizedInstantiationException;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
index adfd94c,344111d..33d60a9
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/TestMainMenu.java
@@@ -20,8 -20,8 +20,6 @@@ package org.apache.openmeetings.web
import static org.junit.jupiter.api.Assertions.assertNotNull;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
--import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.admin.backup.BackupPanel;
import org.apache.openmeetings.web.admin.configurations.ConfigsPanel;
import org.apache.openmeetings.web.admin.connection.ConnectionsPanel;
@@@ -33,10 -33,10 +31,12 @@@ import org.apache.openmeetings.web.admi
import org.apache.openmeetings.web.admin.rooms.RoomsPanel;
import org.apache.openmeetings.web.admin.users.UsersPanel;
import org.apache.openmeetings.web.common.BasePanel;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.openmeetings.web.user.calendar.CalendarPanel;
import org.apache.openmeetings.web.user.dashboard.OmDashboardPanel;
import org.apache.openmeetings.web.user.record.RecordingsPanel;
import org.apache.openmeetings.web.user.rooms.RoomsSelectorPanel;
++import org.apache.openmeetings.util.OmException;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplication.java
index 985d45b,0a305c0..5cefeb9
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplication.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplication.java
@@@ -29,11 -29,11 +29,11 @@@ import java.util.Locale
import java.util.Map.Entry;
import java.util.stream.Collectors;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.dao.label.LabelDao;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
- class TestApplication extends AbstractJUnitDefaults {
+ class TestApplication extends AbstractOmServerTest {
@Test
void testMissing() {
assertEquals("[Missing]", app.getOmString("909", Locale.ENGLISH));
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplicationMocked.java
index 7d5fa53,fbeff05..554b0a9
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplicationMocked.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestApplicationMocked.java
@@@ -18,9 -18,10 +18,10 @@@
*/
package org.apache.openmeetings.web.app;
--import static org.junit.Assert.assertEquals;
--import static org.junit.Assert.assertNull;
++import static org.junit.jupiter.api.Assertions.assertEquals;
++import static org.junit.jupiter.api.Assertions.assertNull;
-import org.apache.openmeetings.RegularTest;
++import org.apache.openmeetings.web.test.RegularTest;
import org.apache.wicket.request.Url;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestOmAuthenticationStrategy.java
index a055f3c,8c0a7c1..d62c42b
--- 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
@@@ -25,11 -25,11 +25,11 @@@ import static org.junit.jupiter.api.Ass
import javax.servlet.http.Cookie;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.junit.jupiter.api.Test;
- class TestOmAuthenticationStrategy extends AbstractWicketTester {
+ class TestOmAuthenticationStrategy extends AbstractWicketTesterTest {
@Test
void test() {
String encKey = randomUUID().toString();
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestUserManagerMocked.java
index b57c21e,6ac16bc..1e29e6d
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestUserManagerMocked.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestUserManagerMocked.java
@@@ -46,6 -47,6 +46,7 @@@ import org.apache.openmeetings.db.entit
import org.apache.openmeetings.db.manager.IClientManager;
import org.apache.openmeetings.service.mail.EmailManager;
import org.apache.openmeetings.util.crypt.SCryptImplementation;
++import org.apache.openmeetings.web.test.RegularTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java
index bfa1208,0c1ab7b..ef02f78
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/app/TestWebSession.java
@@@ -22,12 -22,12 +22,12 @@@ import static org.junit.jupiter.api.Ass
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.util.OmException;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.junit.jupiter.api.Test;
- class TestWebSession extends AbstractWicketTester {
+ class TestWebSession extends AbstractWicketTesterTest {
@Test
void testLogin() throws OmException {
WebSession ws = WebSession.get();
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/TestHashPage.java
index 92e5195,fdab9aa..771b2cb
--- 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
@@@ -25,12 -25,12 +25,11 @@@ import static org.apache.openmeetings.w
import static org.apache.openmeetings.web.pages.HashPage.PANEL_MAIN;
import static org.apache.openmeetings.web.pages.HashPage.PANEL_RECORDING;
import static org.apache.openmeetings.web.util.OmUrlFragment.CHILD_ID;
- import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertEquals;
++import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.Date;
import java.util.UUID;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.room.InvitationDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
@@@ -41,6 -41,6 +40,7 @@@ import org.apache.openmeetings.db.entit
import org.apache.openmeetings.util.crypt.CryptProvider;
import org.apache.openmeetings.web.common.MainPanel;
import org.apache.openmeetings.web.room.RoomPanel;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.openmeetings.web.user.record.VideoInfo;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.panel.Panel;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
index 1dfcd8e,7d943b1..add14c9
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/auth/TestLoginUI.java
@@@ -32,13 -32,13 +32,13 @@@ import java.lang.reflect.Method
import java.util.List;
import java.util.Locale;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.basic.Configuration;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.pages.ActivatePage;
import org.apache.openmeetings.web.pages.MainPage;
import org.apache.openmeetings.web.pages.ResetPage;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
import org.apache.wicket.extensions.markup.html.captcha.CaptchaImageResource;
import org.apache.wicket.markup.html.image.Image;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
index de2da84,a2f5d41..ce8fba3
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/pages/install/TestInstall.java
@@@ -19,17 -19,18 +19,18 @@@
package org.apache.openmeetings.web.pages.install;
import static org.apache.commons.io.FileUtils.deleteQuietly;
- import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
- import static org.apache.openmeetings.AbstractJUnitDefaults.email;
- import static org.apache.openmeetings.AbstractJUnitDefaults.group;
- import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
- import static org.apache.openmeetings.AbstractWicketTester.checkErrors;
- import static org.apache.openmeetings.AbstractWicketTester.countErrors;
- import static org.apache.openmeetings.AbstractWicketTester.getWicketTester;
-import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
-import static org.apache.openmeetings.AbstractOmServerTest.email;
-import static org.apache.openmeetings.AbstractOmServerTest.group;
-import static org.apache.openmeetings.AbstractOmServerTest.setOmHome;
-import static org.apache.openmeetings.AbstractOmServerTest.userpass;
-import static org.apache.openmeetings.AbstractWicketTesterTest.checkErrors;
-import static org.apache.openmeetings.AbstractWicketTesterTest.countErrors;
-import static org.apache.openmeetings.AbstractWicketTesterTest.getWicketTester;
import static org.apache.openmeetings.cli.ConnectionPropertiesPatcher.DEFAULT_DB_NAME;
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
import static org.apache.openmeetings.util.OpenmeetingsVariables.DEFAULT_APP_NAME;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.adminUsername;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.email;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.group;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.setOmHome;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.userpass;
++import static org.apache.openmeetings.web.test.AbstractWicketTesterTest.checkErrors;
++import static org.apache.openmeetings.web.test.AbstractWicketTesterTest.countErrors;
++import static org.apache.openmeetings.web.test.AbstractWicketTesterTest.getWicketTester;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@@ -41,13 -42,13 +42,13 @@@ import java.util.Locale
import java.util.Random;
import java.util.TimeZone;
- import org.apache.openmeetings.AbstractSpringTest;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
-import org.apache.openmeetings.IsolatedTest;
import org.apache.openmeetings.cli.ConnectionPropertiesPatcher;
--import org.apache.openmeetings.util.ConnectionProperties.DbType;
import org.apache.openmeetings.util.crypt.SCryptImplementation;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
++import org.apache.openmeetings.web.test.IsolatedTest;
++import org.apache.openmeetings.util.ConnectionProperties.DbType;
import org.apache.wicket.ajax.AjaxClientInfoBehavior;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
import org.apache.wicket.extensions.wizard.WizardButton;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/service/mail/TestEmailTemplate.java
index 9f0e26f,1476a8b..ec0259e
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/service/mail/TestEmailTemplate.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/service/mail/TestEmailTemplate.java
@@@ -16,13 -16,13 +16,19 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.service.mail.template;
++package org.apache.openmeetings.web.service.mail;
import static org.junit.jupiter.api.Assertions.assertFalse;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.entity.user.UserContact;
++import org.apache.openmeetings.service.mail.template.FeedbackTemplate;
++import org.apache.openmeetings.service.mail.template.InvitationTemplate;
++import org.apache.openmeetings.service.mail.template.RegisterUserTemplate;
++import org.apache.openmeetings.service.mail.template.RequestContactConfirmTemplate;
++import org.apache.openmeetings.service.mail.template.RequestContactTemplate;
++import org.apache.openmeetings.service.mail.template.ResetPasswordTemplate;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.wicket.util.string.Strings;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/service/mail/TestSubjTemplate.java
index 5d6e699,d579181..15f6d8d
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/service/mail/TestSubjTemplate.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/service/mail/TestSubjTemplate.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.service.mail.template.subject;
++package org.apache.openmeetings.web.service.mail;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@@ -29,11 -29,11 +29,19 @@@ import java.util.Locale
import java.util.TimeZone;
import java.util.function.Consumer;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.db.entity.record.Recording;
import org.apache.openmeetings.db.entity.user.Group;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.service.mail.template.subject.AppointmentReminderTemplate;
++import org.apache.openmeetings.service.mail.template.subject.CanceledAppointmentTemplate;
++import org.apache.openmeetings.service.mail.template.subject.CreatedAppointmentTemplate;
++import org.apache.openmeetings.service.mail.template.subject.InvitedAppointmentTemplate;
++import org.apache.openmeetings.service.mail.template.subject.NewGroupUsersNotificationTemplate;
++import org.apache.openmeetings.service.mail.template.subject.RecordingExpiringTemplate;
++import org.apache.openmeetings.service.mail.template.subject.SubjectEmailTemplate;
++import org.apache.openmeetings.service.mail.template.subject.UpdatedAppointmentTemplate;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.apache.wicket.util.string.Strings;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/AbstractOmServerTest.java
index 3ac007f,b277a75..a8e6bb7
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/AbstractOmServerTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/AbstractOmServerTest.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings;
++package org.apache.openmeetings.web.test;
import static java.util.UUID.randomUUID;
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
@@@ -39,7 -41,10 +41,10 @@@ import org.apache.openmeetings.db.entit
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.installation.ImportInitvalues;
import org.apache.openmeetings.installation.InstallationConfig;
-import org.apache.openmeetings.util.OmFileHelper;
import org.apache.openmeetings.web.app.Application;
++import org.apache.openmeetings.util.OmFileHelper;
+ import org.apache.tomcat.util.scan.Constants;
+ import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/AbstractWicketTesterTest.java
index 6285b75,773cbd1..519a9da
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/AbstractWicketTesterTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/AbstractWicketTesterTest.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings;
++package org.apache.openmeetings.web.test;
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
import static org.apache.openmeetings.web.common.OmWebSocketPanel.CONNECTED_MSG;
@@@ -33,10 -33,10 +33,10 @@@ import java.util.function.Consumer
import org.apache.openmeetings.db.entity.user.User;
import org.apache.openmeetings.db.entity.user.User.Type;
--import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.app.WebSession;
import org.apache.openmeetings.web.pages.MainPage;
++import org.apache.openmeetings.util.OmException;
import org.apache.wicket.behavior.AbstractAjaxBehavior;
import org.apache.wicket.feedback.ExactLevelFeedbackMessageFilter;
import org.apache.wicket.feedback.FeedbackMessage;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/IsolatedTest.java
index 25e4d16,85a526a..c16a84f
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/IsolatedTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/IsolatedTest.java
@@@ -16,15 -16,17 +16,17 @@@
* specific language governing permissions and limitations
* under the License.
*/
- package org.apache.openmeetings.calendar;
-package org.apache.openmeetings;
++package org.apache.openmeetings.web.test;
- import org.apache.openmeetings.AbstractJUnitDefaults;
- import org.junit.jupiter.api.Test;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
- class TestDatabaseStructureMeetingMember extends AbstractJUnitDefaults {
+ import org.junit.jupiter.api.Tag;
- @Test
- void testUpdateMeetingMember(){
- //TODO add test
- }
+ @Target({ ElementType.TYPE, ElementType.METHOD })
+ @Retention(RetentionPolicy.RUNTIME)
+ @Tag("isolated")
+ public @interface IsolatedTest {
}
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/RegularTest.java
index 7518278,73a8e94..a31d547
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/RegularTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/RegularTest.java
@@@ -16,20 -16,17 +16,17 @@@
* specific language governing permissions and limitations
* under the License.
*/
- package org.apache.openmeetings.backup;
-package org.apache.openmeetings;
++package org.apache.openmeetings.web.test;
- import java.io.Serializable;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
- public class ProgressHolder implements Serializable {
- private static final long serialVersionUID = 1L;
+ import org.junit.jupiter.api.Tag;
- private int progress;
-
- public int getProgress() {
- return progress;
- }
-
- public void setProgress(int progress) {
- this.progress = progress;
- }
+ @Target({ ElementType.TYPE, ElementType.METHOD })
+ @Retention(RetentionPolicy.RUNTIME)
+ @Tag("regular")
+ public @interface RegularTest {
}
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/AbstractTestImport.java
index e0904e9,4f44062..8184803
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/AbstractTestImport.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/AbstractTestImport.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_PATH_FFMPEG;
@@@ -26,13 -26,13 +26,15 @@@ import static org.apache.openmeetings.u
import static org.apache.openmeetings.util.OpenmeetingsVariables.getCryptClassName;
import static org.junit.jupiter.api.Assertions.assertNotNull;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
++import org.apache.openmeetings.backup.BackupImport;
import org.apache.openmeetings.db.entity.basic.Configuration;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired;
- public class AbstractTestImport extends AbstractJUnitDefaults {
+ public class AbstractTestImport extends AbstractOmServerTest {
++ public static final String BACKUP_ROOT = "org/apache/openmeetings/backup/";
private String cryptClass = null;
@Autowired
protected BackupImport backupImport;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestExport.java
index 04bd0dc,8327cae..4c1c780
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestExport.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestExport.java
@@@ -16,12 -16,12 +16,12 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
import static java.util.UUID.randomUUID;
import static org.apache.openmeetings.db.bind.Constants.FILE_LIST_NODE;
import static org.apache.openmeetings.db.bind.Constants.USER_LIST_NODE;
--import static org.junit.Assert.assertNotNull;
++import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.io.ByteArrayOutputStream;
import java.io.File;
@@@ -33,19 -33,19 +33,18 @@@ import java.time.LocalDate
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
++import org.apache.openmeetings.backup.BackupExport;
import org.apache.openmeetings.db.dao.file.FileItemDao;
import org.apache.openmeetings.db.entity.file.BaseFileItem;
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.apache.openmeetings.web.test.AbstractOmServerTest;
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 AbstractJUnitDefaults {
+ class TestExport extends AbstractOmServerTest {
@Autowired
private FileItemDao fileItemDao;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImport.java
index 249e38b,249e38b..dccdbd3
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImport.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImport.java
@@@ -16,13 -16,13 +16,15 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
++import org.apache.openmeetings.backup.BackupImport;
++import org.apache.openmeetings.backup.BackupVersion;
import org.apache.openmeetings.db.dao.basic.ChatDao;
import org.apache.openmeetings.db.dao.record.RecordingDao;
import org.apache.openmeetings.db.dao.room.ExtraMenuDao;
@@@ -35,7 -35,7 +37,6 @@@ import org.junit.jupiter.api.Test
import org.springframework.beans.factory.annotation.Autowired;
class TestImport extends AbstractTestImport {
-- public static final String BACKUP_ROOT = "org/apache/openmeetings/backup/";
@Autowired
private LdapConfigDao ldapDao;
@Autowired
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportCalendar.java
index 46a759a,46a759a..f948c63
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportCalendar.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportCalendar.java
@@@ -16,9 -16,9 +16,9 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
--import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
++import static org.apache.openmeetings.web.test.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportConfig.java
index de3c7b3,de3c7b3..527d3f4
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportConfig.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportConfig.java
@@@ -16,13 -16,13 +16,13 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
--import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_FRONTEND;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_OAUTH;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REGISTER_SOAP;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_REPLY_TO_ORGANIZER;
++import static org.apache.openmeetings.web.test.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportOld.java
index 2d80d25,ce6aa5a..1f0d091
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportOld.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportOld.java
@@@ -16,9 -16,9 +16,8 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
--import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportRoom.java
index e96f0f6,e96f0f6..2b2104d
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportRoom.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportRoom.java
@@@ -16,9 -16,9 +16,9 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
--import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
++import static org.apache.openmeetings.web.test.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.io.File;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportUser.java
index 57b2023,57b2023..17f0a6d
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportUser.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/backup/TestImportUser.java
@@@ -16,15 -16,15 +16,16 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.backup;
++package org.apache.openmeetings.web.test.backup;
--import static org.apache.openmeetings.backup.TestImport.BACKUP_ROOT;
++import static org.apache.openmeetings.web.test.backup.TestImport.BACKUP_ROOT;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.io.File;
import java.util.List;
++import org.apache.openmeetings.backup.BackupException;
import org.apache.openmeetings.db.dao.server.LdapConfigDao;
import org.apache.openmeetings.db.entity.server.LdapConfig;
import org.apache.openmeetings.db.entity.user.User;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/db/TestFileDao.java
index 058705d,6e9b0a4..dd40eb3
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/db/TestFileDao.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/db/TestFileDao.java
@@@ -16,20 -16,20 +16,20 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.db.dao;
++package org.apache.openmeetings.web.test.db;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import java.util.List;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.dao.file.FileItemDao;
import org.apache.openmeetings.db.dao.user.GroupDao;
import org.apache.openmeetings.db.entity.file.BaseFileItem;
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.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/db/TestRoomDao.java
index 30e02be,86ee4ca..7c18061
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/db/TestRoomDao.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/db/TestRoomDao.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.db.dao;
++package org.apache.openmeetings.web.test.db;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
@@@ -26,11 -26,11 +26,11 @@@ import static org.junit.jupiter.api.Ass
import java.util.HashSet;
import java.util.Set;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.room.Room.RoomElement;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/test/job/TestJob.java
index 89515a8,c2521fd..b4bb5d8
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/job/TestJob.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/test/job/TestJob.java
@@@ -16,11 -16,11 +16,11 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.service.scheduler;
++package org.apache.openmeetings.web.test.job;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DASHBOARD_SHOW_RSS;
import static org.apache.openmeetings.util.OpenmeetingsVariables.setInitComplete;
--import static org.junit.Assert.assertNotNull;
++import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doAnswer;
@@@ -32,12 -32,12 +32,14 @@@ import java.time.ZoneId
import java.util.Date;
import java.util.List;
- import org.apache.openmeetings.AbstractWicketTester;
-import org.apache.openmeetings.AbstractWicketTesterTest;
import org.apache.openmeetings.core.mail.MailHandler;
import org.apache.openmeetings.db.entity.basic.Configuration;
import org.apache.openmeetings.db.entity.user.Group;
import org.apache.openmeetings.db.entity.user.GroupUser;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.service.scheduler.CleanupJob;
++import org.apache.openmeetings.service.scheduler.ReminderJob;
++import org.apache.openmeetings.web.test.AbstractWicketTesterTest;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/util/TestDateTime.java
index 926c59a,b6500ca..5369890
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/util/TestDateTime.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/util/TestDateTime.java
@@@ -16,9 -16,9 +16,9 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.util;
++package org.apache.openmeetings.web.util;
--import static org.junit.Assert.assertNotNull;
++import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.text.SimpleDateFormat;
@@@ -29,9 -29,11 +29,11 @@@ import java.util.Calendar
import java.util.Date;
import java.util.Locale;
-import org.apache.openmeetings.RegularTest;
import org.apache.openmeetings.web.common.datetime.AbstractOmDateTimePicker;
++import org.apache.openmeetings.web.test.RegularTest;
import org.junit.jupiter.api.Test;
+ @RegularTest
class TestDateTime {
@Test
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/web/util/TestStoredFile.java
index ff343c3,4529a41..526c5f7
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/web/util/TestStoredFile.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/web/util/TestStoredFile.java
@@@ -16,7 -16,7 +16,7 @@@
* specific language governing permissions and limitations
* under the License.
*/
--package org.apache.openmeetings.util;
++package org.apache.openmeetings.web.util;
import static org.apache.openmeetings.util.OmFileHelper.getDefaultProfilePicture;
import static org.junit.jupiter.api.Assertions.assertTrue;
@@@ -25,10 -25,10 +25,11 @@@ import java.io.File
import java.io.FileNotFoundException;
import java.io.IOException;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
++import org.apache.openmeetings.util.StoredFile;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.junit.jupiter.api.Test;
- class TestStoredFile extends AbstractJUnitDefaults {
+ class TestStoredFile extends AbstractOmServerTest {
@Test
void testPng() throws FileNotFoundException, IOException {
File f = getDefaultProfilePicture();
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
index 67cf812,e77fb4c..2e93793
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/AbstractWebServiceTest.java
@@@ -20,12 -20,11 +20,11 @@@ package org.apache.openmeetings.webserv
import static java.util.UUID.randomUUID;
import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
- import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
- import static org.apache.openmeetings.AbstractJUnitDefaults.ensureSchema;
- import static org.apache.openmeetings.AbstractJUnitDefaults.soapUsername;
- import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
-import static org.apache.openmeetings.AbstractOmServerTest.createPass;
-import static org.apache.openmeetings.AbstractOmServerTest.ensureSchema;
-import static org.apache.openmeetings.AbstractOmServerTest.soapUsername;
-import static org.apache.openmeetings.AbstractOmServerTest.userpass;
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
- import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.createPass;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.ensureSchema;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.soapUsername;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.userpass;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/CreateTomcatExtension.java
index 0000000,b3bc927..d66fdbd
mode 000000,100644..100644
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/CreateTomcatExtension.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/CreateTomcatExtension.java
@@@ -1,0 -1,82 +1,82 @@@
+ /*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+ package org.apache.openmeetings.webservice;
+
+ import static java.util.UUID.randomUUID;
+ import static org.apache.openmeetings.util.OmFileHelper.getOmHome;
+
+ import java.io.File;
+ import java.net.InetAddress;
+ import java.nio.file.Files;
+
+ import org.apache.catalina.LifecycleState;
+ import org.apache.catalina.connector.Connector;
+ import org.apache.catalina.startup.Tomcat;
-import org.apache.openmeetings.AbstractOmServerTest;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
+ import org.junit.jupiter.api.extension.BeforeAllCallback;
+ import org.junit.jupiter.api.extension.ExtensionContext;
+
+ public class CreateTomcatExtension implements BeforeAllCallback {
+ private String host;
+ private String context;
+ private int port = 8080;
+ private Tomcat tomcat;
+
+ public CreateTomcatExtension(String host, String context) {
+ this.host = host;
+ this.context = context;
+ }
+
+ @Override
+ public void beforeAll(ExtensionContext extContext) throws Exception {
+ if (tomcat == null) {
+ extContext.getRoot().getStore(ExtensionContext.Namespace.GLOBAL).put("my_report", new ExtensionContext.Store.CloseableResource() {
+ @Override
+ public void close() throws Throwable {
+ if (tomcat.getServer() != null && tomcat.getServer().getState() != LifecycleState.DESTROYED) {
+ if (tomcat.getServer().getState() != LifecycleState.STOPPED) {
+ tomcat.stop();
+ }
+ tomcat.destroy();
+ }
+ }
+ });
+ AbstractOmServerTest.init();
+ tomcat = new Tomcat();
+ Connector connector = new Connector("HTTP/1.1");
+ connector.setProperty("address", InetAddress.getByName(host).getHostAddress());
+ connector.setPort(0);
+ tomcat.getService().addConnector(connector);
+ tomcat.setConnector(connector);
+ File wd = Files.createTempDirectory("om" + randomUUID().toString()).toFile();
+ tomcat.setBaseDir(wd.getCanonicalPath());
+ tomcat.getHost().setAppBase(wd.getCanonicalPath());
+ tomcat.getHost().setAutoDeploy(false);
+ tomcat.getHost().setDeployOnStartup(false);
+ tomcat.addWebapp(context, getOmHome().getAbsolutePath());
+ tomcat.getConnector(); // to init the connector
+ tomcat.start();
+ port = tomcat.getConnector().getLocalPort();
+ }
+ }
+
+ public int getPort() {
+ return port;
+ }
+ }
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
index 18fdafa,ff962b0..7c984b6
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestCalendarService.java
@@@ -19,11 -19,11 +19,11 @@@
package org.apache.openmeetings.webservice;
import static java.util.UUID.randomUUID;
- import static org.apache.openmeetings.AbstractJUnitDefaults.ONE_HOUR;
- import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
- import static org.apache.openmeetings.AbstractJUnitDefaults.createUser;
- import static org.apache.openmeetings.AbstractJUnitDefaults.getAppointment;
- import static org.apache.openmeetings.AbstractJUnitDefaults.getUser;
-import static org.apache.openmeetings.AbstractOmServerTest.ONE_HOUR;
-import static org.apache.openmeetings.AbstractOmServerTest.createPass;
-import static org.apache.openmeetings.AbstractOmServerTest.createUser;
-import static org.apache.openmeetings.AbstractOmServerTest.getAppointment;
-import static org.apache.openmeetings.AbstractOmServerTest.getUser;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.ONE_HOUR;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.createPass;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.createUser;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.getAppointment;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.getUser;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@@ -37,7 -37,7 +37,6 @@@ import java.util.List
import javax.ws.rs.core.Form;
import javax.ws.rs.core.Response;
- import org.apache.openmeetings.AbstractJUnitDefaults;
-import org.apache.openmeetings.AbstractOmServerTest;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
import org.apache.openmeetings.db.dao.room.InvitationDao;
@@@ -51,6 -51,6 +50,7 @@@ import org.apache.openmeetings.db.entit
import org.apache.openmeetings.db.entity.calendar.MeetingMember;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.db.entity.user.User;
++import org.apache.openmeetings.web.test.AbstractOmServerTest;
import org.apache.openmeetings.webservice.util.AppointmentParamConverter;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
index 2b4f875,42124d6..81233f5
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestErrorService.java
@@@ -19,7 -19,7 +19,7 @@@
package org.apache.openmeetings.webservice;
import static java.util.UUID.randomUUID;
- import static org.apache.openmeetings.AbstractJUnitDefaults.rnd;
-import static org.apache.openmeetings.AbstractOmServerTest.rnd;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.rnd;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestFileService.java
index 7a93bd5,4474b6f..d297299
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestFileService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestFileService.java
@@@ -20,10 -20,10 +20,10 @@@ package org.apache.openmeetings.webserv
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.UUID.randomUUID;
- import static org.apache.openmeetings.AbstractJUnitDefaults.UNIT_TEST_ARAB_EXT_TYPE;
- import static org.apache.openmeetings.AbstractJUnitDefaults.createUser;
- import static org.apache.openmeetings.AbstractJUnitDefaults.getUser;
-import static org.apache.openmeetings.AbstractOmServerTest.UNIT_TEST_ARAB_EXT_TYPE;
-import static org.apache.openmeetings.AbstractOmServerTest.createUser;
-import static org.apache.openmeetings.AbstractOmServerTest.getUser;
--import static org.junit.Assert.assertFalse;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.UNIT_TEST_ARAB_EXT_TYPE;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.createUser;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.getUser;
++import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
index 820c4a3,3b24400..8d79e4f
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestGroupService.java
@@@ -18,8 -18,8 +18,8 @@@
*/
package org.apache.openmeetings.webservice;
- import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
- import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
-import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
-import static org.apache.openmeetings.AbstractOmServerTest.userpass;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.adminUsername;
++import static org.apache.openmeetings.web.test.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;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRecordingService.java
index 142cd76,e237380..a7a4f46
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRecordingService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestRecordingService.java
@@@ -19,7 -19,7 +19,7 @@@
package org.apache.openmeetings.webservice;
import static java.util.UUID.randomUUID;
- import static org.apache.openmeetings.AbstractJUnitDefaults.getUser;
-import static org.apache.openmeetings.AbstractOmServerTest.getUser;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.getUser;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --cc openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
index 104ab48,e3319ba..f2cf923
--- a/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
+++ b/openmeetings-web/src/test/java/org/apache/openmeetings/webservice/TestUserService.java
@@@ -20,11 -20,11 +20,11 @@@ package org.apache.openmeetings.webserv
import static java.util.UUID.randomUUID;
import static javax.ws.rs.core.MediaType.APPLICATION_FORM_URLENCODED;
- import static org.apache.openmeetings.AbstractJUnitDefaults.adminUsername;
- import static org.apache.openmeetings.AbstractJUnitDefaults.createPass;
- import static org.apache.openmeetings.AbstractJUnitDefaults.rnd;
- import static org.apache.openmeetings.AbstractJUnitDefaults.userpass;
-import static org.apache.openmeetings.AbstractOmServerTest.adminUsername;
-import static org.apache.openmeetings.AbstractOmServerTest.createPass;
-import static org.apache.openmeetings.AbstractOmServerTest.rnd;
-import static org.apache.openmeetings.AbstractOmServerTest.userpass;
import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.adminUsername;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.createPass;
++import static org.apache.openmeetings.web.test.AbstractOmServerTest.rnd;
++import static org.apache.openmeetings.web.test.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.assertNotEquals;
@@@ -46,8 -46,8 +46,8 @@@ import org.apache.openmeetings.db.dto.u
import org.apache.openmeetings.db.dto.user.UserDTO;
import org.apache.openmeetings.db.entity.user.Address;
import org.apache.openmeetings.db.entity.user.User;
--import org.apache.openmeetings.util.OmException;
import org.apache.openmeetings.web.app.WebSession;
++import org.apache.openmeetings.util.OmException;
import org.apache.wicket.util.string.StringValue;
import org.apache.wicket.util.string.Strings;
import org.junit.jupiter.api.Test;
diff --cc openmeetings-web/src/test/jetty/web.xml
index 1922c43,1922c43..2805d75
--- a/openmeetings-web/src/test/jetty/web.xml
+++ b/openmeetings-web/src/test/jetty/web.xml
@@@ -30,7 -30,7 +30,7 @@@
<param-value>1048576</param-value> <!-- 1MB by default -->
</context-param>
<listener>
-- <listener-class>org.apache.openmeetings.util.OMContextListener</listener-class>
++ <listener-class>org.apache.openmeetings.web.util.OMContextListener</listener-class>
</listener>
<filter>
diff --cc openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/configs.xml
index a1e5f24,a1e5f24..bf58577
--- a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/configs.xml
+++ b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/configs.xml
@@@ -28,7 -28,7 +28,7 @@@ see http://openmeetings.apache.org/Upgr
<config>
<id><![CDATA[1]]></id>
<key><![CDATA[crypt_ClassName]]></key>
-- <value><![CDATA[org.apache.openmeetings.util.crypt.SHA256Implementation]]></value>
++ <value><![CDATA[org.apache.openmeetings.web.util.crypt.SHA256Implementation]]></value>
<created class="java.util.Date"><![CDATA[1502426201301]]></created>
<comment><![CDATA[This Class is used for Authentification-Crypting. Be carefull what you do here! If you change it while running previous Pass of users will not be workign anymore! for more Information see http://openmeetings.apache.org/CustomCryptMechanism.html]]></comment>
<deleted><![CDATA[false]]></deleted>
@@@ -495,7 -495,7 +495,7 @@@
<id><![CDATA[1]]></id>
<type><![CDATA[string]]></type>
<key><![CDATA[crypt.class.name]]></key>
-- <value><![CDATA[org.apache.openmeetings.util.crypt.SCryptImplementation]]></value>
++ <value><![CDATA[org.apache.openmeetings.web.util.crypt.SCryptImplementation]]></value>
<comment><![CDATA[This Class is used for Authentification-Crypting. Be carefull what you do here! If you change it while running previous Pass of users will not be workign anymore! for more Information see http://openmeetings.apache.org/CustomCryptMechanism.html]]></comment>
</config>
<config>
diff --cc openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/skip/configs.xml
index 4534b62,4534b62..5a04fd1
--- a/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/skip/configs.xml
+++ b/openmeetings-web/src/test/resources/org/apache/openmeetings/backup/config/skip/configs.xml
@@@ -27,7 -27,7 +27,7 @@@ see http://openmeetings.apache.org/Upgr
<configs>
<config>
<id><![CDATA[1]]></id>
-- <value><![CDATA[org.apache.openmeetings.util.crypt.SHA256Implementation]]></value>
++ <value><![CDATA[org.apache.openmeetings.web.util.crypt.SHA256Implementation]]></value>
<created class="java.util.Date"><![CDATA[1502426201301]]></created>
<comment><![CDATA[This Class is used for Authentification-Crypting. Be carefull what you do here! If you change it while running previous Pass of users will not be workign anymore! for more Information see http://openmeetings.apache.org/CustomCryptMechanism.html]]></comment>
<deleted><![CDATA[false]]></deleted>
@@@ -35,7 -35,7 +35,7 @@@
<config>
<id><![CDATA[1]]></id>
<key><![CDATA[deleted_test]]></key>
-- <value><![CDATA[org.apache.openmeetings.util.crypt.SHA256Implementation]]></value>
++ <value><![CDATA[org.apache.openmeetings.web.util.crypt.SHA256Implementation]]></value>
<created class="java.util.Date"><![CDATA[1502426201301]]></created>
<comment><![CDATA[This Class is used for Authentification-Crypting. Be carefull what you do here! If you change it while running previous Pass of users will not be workign anymore! for more Information see http://openmeetings.apache.org/CustomCryptMechanism.html]]></comment>
<deleted><![CDATA[true]]></deleted>
diff --cc openmeetings-webservice/src/main/java/module-info.java
index 350e96b,b3174f1..4953f4d
--- a/openmeetings-webservice/src/main/java/module-info.java
+++ b/openmeetings-webservice/src/main/java/module-info.java
@@@ -16,8 -16,14 +16,15 @@@
* specific language governing permissions and limitations
* under the License.
*/
- package org.apache.openmeetings.test;
-
- public @interface NonJenkinsTests {
-package org.apache.openmeetings;
++module org.apache.openmeetings.webservice {
++ requires transitive org.apache.openmeetings.service;
-import org.junit.jupiter.api.Test;
-
-class TestConnection {
-
- @Test
- void testNoop() {
- //no-op
- }
++ requires java.jws;
++ requires java.ws.rs;
++ requires org.apache.cxf.core;
++ requires io.swagger.v3.oas.annotations;
++ requires org.apache.cxf.frontend.jaxrs;
++ requires java.desktop;
++ requires org.apache.pdfbox;
++ requires java.xml.ws;
}
diff --cc pom.xml
index 90676e6,973f010..b1c4308
--- a/pom.xml
+++ b/pom.xml
@@@ -77,18 -77,19 +77,19 @@@
<forbiddenapis.version>3.1</forbiddenapis.version>
<maven-checkstyle-plugin.version>3.1.1</maven-checkstyle-plugin.version>
<frontend-maven-plugin.version>1.11.0</frontend-maven-plugin.version>
+ <swagger-plugin.version>2.1.6</swagger-plugin.version>
<!-- dependency versions -->
- <junit.version>5.8.0-M1</junit.version>
- <wicket.version>9.5.0-SNAPSHOT</wicket.version>
- <wicket-jquery-ui.version>9.3.2</wicket-jquery-ui.version>
- <wicketstuff.version>9.5.0-SNAPSHOT</wicketstuff.version>
- <wicket-bootstrap.version>5.0.5</wicket-bootstrap.version>
- <font-awesome.version>5.15.3</font-awesome.version>
- <spring.version>5.3.9</spring.version>
- <tomcat.version>9.0.50</tomcat.version>
- <ical4j.version>3.0.21</ical4j.version>
- <cxf.version>3.4.4</cxf.version>
- <io.prometheus.version>0.11.0</io.prometheus.version>
+ <junit.version>5.8.2</junit.version>
+ <wicket.version>9.7.0</wicket.version>
+ <wicket-jquery-ui.version>9.5.0</wicket-jquery-ui.version>
+ <wicketstuff.version>9.7.0</wicketstuff.version>
+ <wicket-bootstrap.version>6.0.0-M6-SNAPSHOT</wicket-bootstrap.version>
+ <font-awesome.version>5.15.4</font-awesome.version>
- <spring.version>5.3.13</spring.version>
++ <spring.version>5.3.14</spring.version>
+ <tomcat.version>9.0.56</tomcat.version>
- <ical4j.version>3.0.21</ical4j.version>
++ <ical4j.version>4.0.0-alpha10</ical4j.version>
+ <cxf.version>3.4.5</cxf.version>
- <io.prometheus.version>0.12.0</io.prometheus.version>
++ <io.prometheus.version>0.14.1</io.prometheus.version>
<aspectjtools.version>1.9.7</aspectjtools.version>
<simple-xml.version>2.7.1</simple-xml.version>
<jettison.version>1.4.1</jettison.version>
@@@ -96,37 -97,40 +97,41 @@@
<src.pack.skip>false</src.pack.skip>
<h2.version>1.4.200</h2.version>
<commons-lang3.version>3.12.0</commons-lang3.version>
-- <javax.mail.version>1.6.2</javax.mail.version>
- <openjpa.version>3.1.2</openjpa.version>
- <asterisk-java.version>3.12.0</asterisk-java.version>
- <commons-dbcp.version>2.8.0</commons-dbcp.version>
- <commons-pool2.version>2.10.0</commons-pool2.version>
- <commons-cli.version>1.4</commons-cli.version>
++ <jakarta.mail.version>2.0.1</jakarta.mail.version>
+ <openjpa.version>3.2.1-SNAPSHOT</openjpa.version>
- <asterisk-java.version>3.15.0</asterisk-java.version>
++ <asterisk-java.version>3.24.0</asterisk-java.version>
+ <commons-dbcp.version>2.9.0</commons-dbcp.version>
+ <commons-pool2.version>2.11.1</commons-pool2.version>
+ <commons-cli.version>1.5.0</commons-cli.version>
<dom4j.version>2.1.3</dom4j.version>
<commons-codec.version>1.15</commons-codec.version>
<commons-io.version>2.11.0</commons-io.version>
- <postgresql.version>42.2.23</postgresql.version>
- <mysql.version>8.0.25</mysql.version>
- <mssql.version>9.2.1.jre11</mssql.version>
- <ojdbc.version>19.11.0.0</ojdbc.version>
+ <postgresql.version>42.3.1</postgresql.version>
+ <mysql.version>8.0.27</mysql.version>
+ <mssql.version>9.4.0.jre11</mssql.version>
+ <ojdbc.version>19.12.0.0</ojdbc.version>
<commons-collections4.version>4.4</commons-collections4.version>
- <xstream.version>1.4.17</xstream.version>
+ <xstream.version>1.4.18</xstream.version>
<api-all.version>2.1.0</api-all.version>
-- <caldav4j.version>1.0.1</caldav4j.version>
- <tika-parsers.version>1.27</tika-parsers.version>
- <tika-parsers.version>2.1.0</tika-parsers.version>
++ <caldav4j.version>1.0.3</caldav4j.version>
++ <tika-parsers.version>2.2.0</tika-parsers.version>
<commons-text.version>1.9</commons-text.version>
- <slf4j.version>1.7.31</slf4j.version>
- <logback.version>1.2.3</logback.version>
- <jetty.version>9.4.43.v20210629</jetty.version>
+ <slf4j.version>1.7.32</slf4j.version>
- <logback.version>1.2.4</logback.version>
++ <logback.version>1.3.0-alpha10</logback.version>
+ <jetty.version>9.4.44.v20210927</jetty.version>
<license.excludedScopes>test</license.excludedScopes>
- <bcprov-jdk15on.version>1.69</bcprov-jdk15on.version>
- <mockito.version>3.11.2</mockito.version>
+ <bcprov-jdk15on.version>1.70</bcprov-jdk15on.version>
- <mockito.version>4.1.0</mockito.version>
++ <mockito.version>4.2.0</mockito.version>
<quartz.version>2.3.2</quartz.version>
- <kurento.version>6.16.1</kurento.version>
+ <kurento.version>6.16.2</kurento.version>
<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.2</jodconverter.version>
+ <jaxb-runtime.version>2.3.3</jaxb-runtime.version>
+ <javax.servlet-api.version>3.1.0</javax.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.1.11</swagger.version>
<!-- Exclude all generated code -->
<sonar.exclusions>file:**/generated-sources/**, file:**/jquery-ui.css, file:**/cssemoticons.js, file:**/bootstrap-confirmation.js</sonar.exclusions>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
@@@ -576,11 -596,11 +597,6 @@@
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
-- <artifactId>simpleclient</artifactId>
-- <version>${io.prometheus.version}</version>
-- </dependency>
-- <dependency>
-- <groupId>io.prometheus</groupId>
<artifactId>simpleclient_servlet</artifactId>
<version>${io.prometheus.version}</version>
</dependency>
@@@ -590,11 -610,11 +606,6 @@@
<version>${aspectjtools.version}</version>
</dependency>
<dependency>
-- <groupId>org.apache.tomcat</groupId>
-- <artifactId>tomcat-catalina</artifactId>
-- <version>${tomcat.version}</version>
-- </dependency>
-- <dependency>
<groupId>org.codehaus.jettison</groupId>
<artifactId>jettison</artifactId>
<version>${jettison.version}</version>
@@@ -712,6 -771,204 +762,204 @@@
<version>${jain-sip.version}</version>
</dependency>
<dependency>
+ <!-- required for JAXB/CXF -->
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-runtime</artifactId>
+ <version>${jaxb-runtime.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>jquery-ui-touch-punch</artifactId>
+ <version>${jquery-ui-touch-punch.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-collections4</artifactId>
+ <version>${commons-collections4.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.thoughtworks.xstream</groupId>
+ <artifactId>xstream</artifactId>
+ <version>${xstream.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.api</groupId>
+ <artifactId>api-all</artifactId>
+ <version>${api-all.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>xml-apis</groupId>
+ <artifactId>xml-apis</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.mail</groupId>
- <artifactId>javax.mail</artifactId>
- <version>${javax.mail.version}</version>
++ <artifactId>jakarta.mail</artifactId>
++ <version>${jakarta.mail.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>${dom4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-codec</groupId>
+ <artifactId>commons-codec</artifactId>
+ <version>${commons-codec.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>${commons-io.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.wicketstuff</groupId>
+ <artifactId>wicketstuff-datastore-hazelcast</artifactId>
+ <version>${wicketstuff.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openjpa</groupId>
+ <artifactId>openjpa</artifactId>
+ <version>${openjpa.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-dbcp2</artifactId>
+ <version>${commons-dbcp.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.commons</groupId>
+ <artifactId>commons-pool2</artifactId>
+ <version>${commons-pool2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <version>${h2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.postgresql</groupId>
+ <artifactId>postgresql</artifactId>
+ <version>${postgresql.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.microsoft.sqlserver</groupId>
+ <artifactId>mssql-jdbc</artifactId>
+ <version>${mssql.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.oracle.database.jdbc</groupId>
+ <artifactId>ojdbc10</artifactId>
+ <version>${ojdbc.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-cli</groupId>
+ <artifactId>commons-cli</artifactId>
+ <version>${commons-cli.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.github.caldav4j</groupId>
+ <artifactId>caldav4j</artifactId>
+ <version>${caldav4j.version}</version>
+ <exclusions>
+ <exclusion>
+ <!-- Remove the need for ehcache, since we use the Methods directly -->
+ <groupId>net.sf.ehcache</groupId>
+ <artifactId>ehcache</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>${mysql.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>jasny-bootstrap</artifactId>
+ <version>${jasny-bootstrap.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.webjars</groupId>
+ <artifactId>bootstrap</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.wicketstuff</groupId>
+ <artifactId>wicketstuff-dashboard-core</artifactId>
+ <version>${wicketstuff.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.wicket-jquery-ui</groupId>
+ <artifactId>wicket-jquery-ui-core</artifactId>
+ <version>${wicket-jquery-ui.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.wicket-jquery-ui</groupId>
+ <artifactId>wicket-jquery-ui</artifactId>
+ <version>${wicket-jquery-ui.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.wicket-jquery-ui</groupId>
+ <artifactId>wicket-jquery-ui-calendar</artifactId>
+ <version>${wicket-jquery-ui.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>com.googlecode.wicket-jquery-ui</groupId>
+ <artifactId>wicket-jquery-ui-plugins</artifactId>
+ <version>${wicket-jquery-ui.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.wicketstuff</groupId>
+ <artifactId>wicketstuff-urlfragment</artifactId>
+ <version>${wicketstuff.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.wicketstuff</groupId>
+ <artifactId>wicketstuff-select2</artifactId>
+ <version>${wicketstuff.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.wicketstuff</groupId>
+ <artifactId>jqplot</artifactId>
+ <version>${wicketstuff.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>de.agilecoders.wicket</groupId>
+ <artifactId>wicket-bootstrap-extensions</artifactId>
+ <version>${wicket-bootstrap.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>de.agilecoders.wicket</groupId>
+ <artifactId>wicket-bootstrap-themes</artifactId>
+ <version>${wicket-bootstrap.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.webjars</groupId>
+ <artifactId>font-awesome</artifactId>
+ <version>${font-awesome.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.quartz-scheduler</groupId>
+ <artifactId>quartz</artifactId>
+ <version>${quartz.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.swagger.core.v3</groupId>
+ <artifactId>swagger-annotations</artifactId>
+ <version>${swagger.version}</version>
+ </dependency>
+
+ <!-- TESTS -->
+ <dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-inline</artifactId>
<version>${mockito.version}</version>
@@@ -729,19 -986,37 +977,40 @@@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
++ <groupId>org.junit.jupiter</groupId>
++ <artifactId>junit-jupiter-engine</artifactId>
++ <version>${junit.version}</version>
++ <scope>test</scope>
++ </dependency>
++ <dependency>
+ <groupId>org.apache.directory.server</groupId>
+ <artifactId>apacheds-test-framework</artifactId>
+ <version>${apacheds-test-framework.version}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.directory.api</groupId>
+ <artifactId>api-ldap-schema-data</artifactId>
+ </exclusion>
++ <exclusion>
++ <groupId>junit</groupId>
++ <artifactId>junit</artifactId>
++ </exclusion>
+ </exclusions>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.tomcat.embed</groupId>
+ <artifactId>tomcat-embed-websocket</artifactId>
+ <version>${tomcat.version}</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
-- <artifactId>junit-jupiter-api</artifactId>
-- <version>${junit.version}</version>
-- <scope>test</scope>
-- </dependency>
-- <dependency>
-- <groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
-- <version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
@@@ -954,6 -1194,37 +1188,38 @@@
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>${maven-checkstyle-plugin.version}</version>
+ <configuration>
+ <checkstyleRules>
+ <module name = "Checker">
+ <property name="fileExtensions" value="java,js,css,xml"/>
+ <module name="NewlineAtEndOfFile">
+ <property name="fileExtensions" value="java"/>
+ </module>
+ <module name="TreeWalker">
+ <module name="UnusedImports"></module>
+ <module name="RegexpSinglelineJava">
+ <property name="format" value="^\t* "/>
+ <property name="message" value="Indent must use tab characters"/>
+ <property name="ignoreComments" value="true"/>
+ </module>
+ </module>
+ <module name="RegexpSingleline">
+ <property name="format" value="\s+$"/>
+ <property name="message" value="Line has trailing spaces."/>
+ </module>
+ </module>
+ </checkstyleRules>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ <encoding>UTF-8</encoding>
+ <consoleOutput>true</consoleOutput>
+ <failsOnError>true</failsOnError>
++ <excludes>**/module-info.java,**/module-info.test</excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven-assembly-plugin.version}</version>
</plugin>
@@@ -973,7 -1251,8 +1246,9 @@@
<version>${maven-surefire-plugin.version}</version>
<configuration>
<forkCount>1</forkCount>
- <reuseForks>false</reuseForks>
+ <reuseForks>true</reuseForks>
++ <useModulePath>false</useModulePath>
+ <excludedGroups>${excluded.test.groups}</excludedGroups>
<includes>
<include>**/Test*.java</include>
</includes>