diff --git a/core/pom.xml b/core/pom.xml index 2b99d712fa..c79fe8e906 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -12,14 +12,6 @@ <artifactId>core</artifactId> <dependencies> - <dependency> - <groupId>com.google.inject</groupId> - <artifactId>guice</artifactId> - </dependency> - <dependency> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-persist</artifactId> - </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> diff --git a/core/src/main/java/modules/CoreModule.java b/core/src/main/java/modules/CoreModule.java deleted file mode 100644 index cb2c500685..0000000000 --- a/core/src/main/java/modules/CoreModule.java +++ /dev/null @@ -1,158 +0,0 @@ -package modules; - -import com.google.inject.AbstractModule; -import com.google.inject.multibindings.Multibinder; -import com.google.inject.multibindings.OptionalBinder; -import se.su.dsv.scipro.activityplan.*; -import se.su.dsv.scipro.checklist.*; -import se.su.dsv.scipro.date.DateService; -import se.su.dsv.scipro.date.DateServiceImpl; -import se.su.dsv.scipro.events.EventModule; -import se.su.dsv.scipro.finalseminar.*; -import se.su.dsv.scipro.finalthesis.FinalThesisService; -import se.su.dsv.scipro.finalthesis.FinalThesisServiceImpl; -import se.su.dsv.scipro.finalthesis.PublishingConsentService; -import se.su.dsv.scipro.finalthesis.PublishingConsentUnavailable; -import se.su.dsv.scipro.firstmeeting.FirstMeetingService; -import se.su.dsv.scipro.firstmeeting.FirstMeetingServiceImpl; -import se.su.dsv.scipro.forum.ForumModule; -import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService; -import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsServiceImpl; -import se.su.dsv.scipro.group.GroupFacade; -import se.su.dsv.scipro.group.GroupFacadeImpl; -import se.su.dsv.scipro.group.GroupService; -import se.su.dsv.scipro.group.GroupServiceImpl; -import se.su.dsv.scipro.integration.activityfinalseminar.ActivityFinalSeminarRepository; -import se.su.dsv.scipro.integration.activityfinalseminar.ActivityFinalSeminarRepositoryImpl; -import se.su.dsv.scipro.integration.activityforum.ActivityThreadRepository; -import se.su.dsv.scipro.integration.activityforum.ActivityThreadRepositoryImpl; -import se.su.dsv.scipro.mail.MailModule; -import se.su.dsv.scipro.match.ApplicationPeriodFacade; -import se.su.dsv.scipro.match.ApplicationPeriodFacadeImpl; -import se.su.dsv.scipro.match.MatchModule; -import se.su.dsv.scipro.milestones.service.*; -import se.su.dsv.scipro.milestones.service.impl.MilestoneActivityTemplateServiceImpl; -import se.su.dsv.scipro.milestones.service.impl.MilestonePhaseTemplateServiceImpl; -import se.su.dsv.scipro.milestones.service.impl.MilestoneServiceImpl; -import se.su.dsv.scipro.milestones.service.impl.MilestoneStatisticsServiceImpl; -import se.su.dsv.scipro.misc.DaysService; -import se.su.dsv.scipro.misc.DaysServiceImpl; -import se.su.dsv.scipro.nonworkperiod.NonWorkDayPeriodService; -import se.su.dsv.scipro.nonworkperiod.NonWorkDayPeriodServiceImpl; -import se.su.dsv.scipro.notes.NoteService; -import se.su.dsv.scipro.notes.NoteServiceImpl; -import se.su.dsv.scipro.notifications.NotificationModule; -import se.su.dsv.scipro.notifications.settings.service.DeliveryConfigurationService; -import se.su.dsv.scipro.notifications.settings.service.DeliveryConfigurationServiceImpl; -import se.su.dsv.scipro.notifications.settings.service.ReceiverConfigurationService; -import se.su.dsv.scipro.notifications.settings.service.ReceiverConfigurationServiceImpl; -import se.su.dsv.scipro.peer.*; -import se.su.dsv.scipro.plagiarism.*; -import se.su.dsv.scipro.project.ProjectPeopleStatisticsService; -import se.su.dsv.scipro.project.ProjectPeopleStatisticsServiceImpl; -import se.su.dsv.scipro.project.ProjectService; -import se.su.dsv.scipro.project.ProjectServiceImpl; -import se.su.dsv.scipro.projectpartner.ProjectPartnerRepository; -import se.su.dsv.scipro.projectpartner.ProjectPartnerRepositoryImpl; -import se.su.dsv.scipro.projectpartner.ProjectPartnerService; -import se.su.dsv.scipro.projectpartner.ProjectPartnerServiceImpl; -import se.su.dsv.scipro.reflection.ReflectionModule; -import se.su.dsv.scipro.report.*; -import se.su.dsv.scipro.reviewing.ProjectFinalSeminarStatisticsService; -import se.su.dsv.scipro.reviewing.ProjectFinalSeminarStatisticsServiceImpl; -import se.su.dsv.scipro.springdata.serviceimpls.SupervisorServiceImpl; -import se.su.dsv.scipro.springdata.serviceimpls.UnitServiceImpl; -import se.su.dsv.scipro.springdata.serviceimpls.UserProfileServiceImpl; -import se.su.dsv.scipro.springdata.services.SupervisorService; -import se.su.dsv.scipro.springdata.services.UnitService; -import se.su.dsv.scipro.springdata.services.UserProfileService; -import se.su.dsv.scipro.system.*; -import se.su.dsv.scipro.thesislink.ExternalLinkService; -import se.su.dsv.scipro.thesislink.ExternalLinkServiceImpl; - -public class CoreModule extends AbstractModule { - @Override - protected void configure() { - install(new RepositoryModule()); - bind(FooterLinkService.class).to(FooterLinkServiceImpl.class); - bind(ActivityThreadRepository.class).to(ActivityThreadRepositoryImpl.class); - bind(ActivityFinalSeminarRepository.class).to(ActivityFinalSeminarRepositoryImpl.class); - bind(UserService.class).to(UserServiceImpl.class); - bind(MergeService.class).to(MergeServiceImpl.class); - bind(PasswordService.class).to(PasswordServiceImpl.class); - bind(GeneralSystemSettingsService.class).to(GeneralSystemSettingsServiceImpl.class); - bind(ProjectTypeService.class).to(ProjectTypeServiceImpl.class); - bind(UnitService.class).to(UnitServiceImpl.class); - bind(ResearchAreaService.class).to(ResearchAreaServiceImpl.class); - bind(DateService.class).to(DateServiceImpl.class); - bind(ActivityPlanFacade.class).to(ActivityPlanFacadeImpl.class); - bind(ProjectService.class).to(ProjectServiceImpl.class); - bind(ProjectFinalSeminarStatisticsService.class).to(ProjectFinalSeminarStatisticsServiceImpl.class); - bind(ProjectPeopleStatisticsService.class).to(ProjectPeopleStatisticsServiceImpl.class); - bind(DeliveryConfigurationService.class).to(DeliveryConfigurationServiceImpl.class); - bind(ReceiverConfigurationService.class).to(ReceiverConfigurationServiceImpl.class); - bind(ActivityService.class).to(ActivityServiceImpl.class); - bind(ActivityPlanService.class).to(ActivityPlanServiceImpl.class); - bind(ActivityPlanTemplateService.class).to(ActivityPlanTemplateServiceImpl.class); - bind(ChecklistService.class).to(ChecklistServiceImpl.class); - bind(UserProfileService.class).to(UserProfileServiceImpl.class); - bind(FinalSeminarService.class).to(FinalSeminarServiceImpl.class); - bind(FinalSeminarSettingsService.class).to(FinalSeminarSettingsServiceImpl.class); - bind(SupervisorService.class).to(SupervisorServiceImpl.class); - bind(DaysService.class).to(DaysServiceImpl.class); - bind(NonWorkDayPeriodService.class).to(NonWorkDayPeriodServiceImpl.class); - bind(FinalSeminarOppositionService.class).to(FinalSeminarOppositionServiceImpl.class); - bind(AuthorRepository.class).to(AuthorRepositoryImpl.class); - bind(OppositionReportService.class).to(OppositionReportServiceImpl.class); - bind(ApplicationPeriodFacade.class).to(ApplicationPeriodFacadeImpl.class); - bind(GroupFacade.class).to(GroupFacadeImpl.class); - bind(ExternalLinkService.class).to(ExternalLinkServiceImpl.class); - bind(PeerRequestService.class).to(PeerRequestServiceImpl.class); - bind(PeerReviewService.class).to(PeerReviewServiceImpl.class); - bind(MilestoneActivityTemplateService.class).to(MilestoneActivityTemplateServiceImpl.class); - bind(FinalThesisService.class).to(FinalThesisServiceImpl.class); - OptionalBinder.newOptionalBinder(binder(), PublishingConsentService.class) - .setDefault().to(PublishingConsentUnavailable.class); - bind(ChecklistTemplateService.class).to(ChecklistTemplateServiceImpl.class); - bind(PeerPortal.class).to(PeerPortalImpl.class); - bind(FinalSeminarRespondentService.class).to(FinalSeminarRespondentServiceImpl.class); - bind(ProjectPartnerService.class).to(ProjectPartnerServiceImpl.class); - bind(GradingReportService.class).to(GradingReportServiceImpl.class); - bind(GradeCalculatorService.class).to(GradeCalculatorServiceImpl.class); - bind(UserNameService.class).to(UserNameServiceImpl.class); - bind(MileStoneService.class).to(MilestoneServiceImpl.class); - bind(MilestoneStatisticsService.class).to(MilestoneStatisticsServiceImpl.class); - bind(MilestonePhaseTemplateService.class).to(MilestonePhaseTemplateServiceImpl.class); - bind(ReportService.class).to(ReportServiceImpl.class); - bind(CommentThreadService.class).to(CommentThreadServiceImpl.class); - bind(CommentService.class).to(CommentServiceImpl.class); - bind(PerformReviewService.class).to(PeerPortalImpl.class); - bind(EventService.class).to(EventServiceImpl.class); - bind(ChecklistAnswerService.class).to(ChecklistAnswerServiceImpl.class); - bind(FinalSeminarUploadController.class).to(FinalSeminarUploadControllerImpl.class); - bind(FinalSeminarActiveParticipationService.class).to(FinalSeminarActiveParticipationServiceImpl.class); - bind(ExternalResourceService.class).to(ExternalResourceServiceImpl.class); - bind(GroupService.class).to(GroupServiceImpl.class); - bind(NoteService.class).to(NoteServiceImpl.class); - bind(MilestoneActivator.class).asEagerSingleton(); - bind(ActivateCompletedMilestonesOnNewProjects.class).asEagerSingleton(); - bind(FirstMeetingService.class).to(FirstMeetingServiceImpl.class); - bind(FinalSeminarCreationSubscribers.class).asEagerSingleton(); - bind(ProjectPartnerRepository.class).to(ProjectPartnerRepositoryImpl.class); - - install(new PlagiarismModule()); - install(new NotificationModule()); - install(new ProfileModule()); - install(new EventModule()); - install(new MatchModule()); - install(new MailModule()); - install(new ForumModule()); - install(new ReflectionModule()); - - Multibinder.newSetBinder(binder(), UserImportService.class); - bind(UserSearchService.class).to(AggregateUserSearch.class); - Multibinder.newSetBinder(binder(), UserSearchProvider.class) - .addBinding().to(LocalUserSearch.class); - - } -} diff --git a/core/src/main/java/modules/ProfileModule.java b/core/src/main/java/modules/ProfileModule.java deleted file mode 100644 index 16d276dba8..0000000000 --- a/core/src/main/java/modules/ProfileModule.java +++ /dev/null @@ -1,15 +0,0 @@ -package modules; - -import com.google.inject.Key; -import com.google.inject.PrivateModule; -import com.google.inject.name.Names; -import se.su.dsv.scipro.profiles.CurrentProfile; - -public class ProfileModule extends PrivateModule { - @Override - protected void configure() { - requireBinding(Key.get(String.class, Names.named("profile"))); - bind(CurrentProfile.class).asEagerSingleton(); - expose(CurrentProfile.class); - } -} diff --git a/core/src/main/java/modules/RepositoryModule.java b/core/src/main/java/modules/RepositoryModule.java deleted file mode 100644 index 83f7f4539b..0000000000 --- a/core/src/main/java/modules/RepositoryModule.java +++ /dev/null @@ -1,63 +0,0 @@ -package modules; - -import com.google.inject.AbstractModule; -import se.su.dsv.scipro.checklist.ChecklistCategoryRepo; -import se.su.dsv.scipro.checklist.ChecklistCategoryRepoImpl; -import se.su.dsv.scipro.checklist.ChecklistQuestionRepo; -import se.su.dsv.scipro.checklist.ChecklistQuestionRepoImpl; -import se.su.dsv.scipro.finalseminar.FinalSeminarActiveParticipationRepository; -import se.su.dsv.scipro.finalseminar.FinalSeminarActiveParticipationRepositoryImpl; -import se.su.dsv.scipro.finalseminar.FinalSeminarOppositionRepo; -import se.su.dsv.scipro.finalseminar.FinalSeminarOppositionRepoImpl; -import se.su.dsv.scipro.finalseminar.FinalSeminarRepository; -import se.su.dsv.scipro.finalseminar.FinalSeminarRepositoryImpl; -import se.su.dsv.scipro.milestones.MilestoneActivityTemplateRepository; -import se.su.dsv.scipro.milestones.MilestoneActivityTemplateRepositoryImpl; -import se.su.dsv.scipro.peer.CommentThreadRepo; -import se.su.dsv.scipro.peer.CommentThreadRepoImpl; -import se.su.dsv.scipro.peer.PeerRequestRepository; -import se.su.dsv.scipro.peer.PeerRequestRepositoryImpl; -import se.su.dsv.scipro.peer.PeerReviewRepository; -import se.su.dsv.scipro.peer.PeerReviewRepositoryImpl; -import se.su.dsv.scipro.project.ProjectRepo; -import se.su.dsv.scipro.project.ProjectRepoImpl; -import se.su.dsv.scipro.report.GradingReportTemplateRepo; -import se.su.dsv.scipro.report.GradingReportTemplateRepoImpl; -import se.su.dsv.scipro.report.OppositionReportRepo; -import se.su.dsv.scipro.report.OppositionReportRepoImpl; -import se.su.dsv.scipro.reviewing.DecisionRepository; -import se.su.dsv.scipro.reviewing.DecisionRepositoryImpl; -import se.su.dsv.scipro.reviewing.ReviewerTargetRepository; -import se.su.dsv.scipro.reviewing.ReviewerTargetRepositoryImpl; -import se.su.dsv.scipro.system.FooterAddressRepo; -import se.su.dsv.scipro.system.FooterAddressRepoImpl; -import se.su.dsv.scipro.system.FooterLinkRepo; -import se.su.dsv.scipro.system.FooterLinkRepoImpl; -import se.su.dsv.scipro.system.PasswordRepo; -import se.su.dsv.scipro.system.PasswordRepoImpl; -import se.su.dsv.scipro.system.UserRepo; -import se.su.dsv.scipro.system.UserRepoImpl; - -public class RepositoryModule extends AbstractModule { - @Override - protected void configure() { - bind(ChecklistQuestionRepo.class).to(ChecklistQuestionRepoImpl.class); - bind(FinalSeminarOppositionRepo.class).to(FinalSeminarOppositionRepoImpl.class); - bind(FinalSeminarActiveParticipationRepository.class).to(FinalSeminarActiveParticipationRepositoryImpl.class); - bind(GradingReportTemplateRepo.class).to(GradingReportTemplateRepoImpl.class); - bind(MilestoneActivityTemplateRepository.class).to(MilestoneActivityTemplateRepositoryImpl.class); - bind(OppositionReportRepo.class).to(OppositionReportRepoImpl.class); - bind(PasswordRepo.class).to(PasswordRepoImpl.class); - bind(ProjectRepo.class).to(ProjectRepoImpl.class); - bind(UserRepo.class).to(UserRepoImpl.class); - bind(PeerReviewRepository.class).to(PeerReviewRepositoryImpl.class); - bind(PeerRequestRepository.class).to(PeerRequestRepositoryImpl.class); - bind(ChecklistCategoryRepo.class).to(ChecklistCategoryRepoImpl.class); - bind(CommentThreadRepo.class).to(CommentThreadRepoImpl.class); - bind(FooterLinkRepo.class).to(FooterLinkRepoImpl.class); - bind(FooterAddressRepo.class).to(FooterAddressRepoImpl.class); - bind(FinalSeminarRepository.class).to(FinalSeminarRepositoryImpl.class); - bind(ReviewerTargetRepository.class).to(ReviewerTargetRepositoryImpl.class); - bind(DecisionRepository.class).to(DecisionRepositoryImpl.class); - } -} \ No newline at end of file diff --git a/core/src/main/java/se/su/dsv/scipro/daisyExternal/DaisyExternalModule.java b/core/src/main/java/se/su/dsv/scipro/daisyExternal/DaisyExternalModule.java deleted file mode 100644 index 63de05fdfb..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/daisyExternal/DaisyExternalModule.java +++ /dev/null @@ -1,20 +0,0 @@ -package se.su.dsv.scipro.daisyExternal; - -import com.google.inject.Key; -import com.google.inject.PrivateModule; -import com.google.inject.Scopes; -import com.google.inject.name.Names; -import se.su.dsv.scipro.daisyExternal.http.DaisyAPI; -import se.su.dsv.scipro.daisyExternal.http.DaisyAPIImpl; - -public class DaisyExternalModule extends PrivateModule { - @Override - protected void configure() { - requireBinding(Key.get(String.class, Names.named("daisy.api.url"))); - requireBinding(Key.get(String.class, Names.named("daisy.api.username"))); - requireBinding(Key.get(String.class, Names.named("daisy.api.password"))); - - bind(DaisyAPI.class).to(DaisyAPIImpl.class).in(Scopes.SINGLETON); - expose(DaisyAPI.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/events/EventModule.java b/core/src/main/java/se/su/dsv/scipro/events/EventModule.java deleted file mode 100644 index 61fb042f87..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/events/EventModule.java +++ /dev/null @@ -1,15 +0,0 @@ -package se.su.dsv.scipro.events; - -import com.google.common.eventbus.EventBus; -import com.google.inject.AbstractModule; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class EventModule extends AbstractModule { - private static final Logger LOGGER = LoggerFactory.getLogger(EventModule.class); - - @Override - protected void configure() { - bind(EventBus.class).toInstance(new EventBus((throwable, context) -> LOGGER.error("Could not dispatch event: " + context.getSubscriber() + " to " + context.getSubscriberMethod(), throwable))); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/file/FileModule.java b/core/src/main/java/se/su/dsv/scipro/file/FileModule.java deleted file mode 100644 index 82cc9172ea..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/file/FileModule.java +++ /dev/null @@ -1,16 +0,0 @@ -package se.su.dsv.scipro.file; - -import com.google.inject.AbstractModule; - -public class FileModule extends AbstractModule { - @Override - protected void configure() { - bind(FileService.class).to(FileServiceImpl.class); - bind(ProjectFileService.class).to(ProjectFileServiceImpl.class); - bind(ProjectFileRepository.class).to(ProjectFileRepositoryImpl.class); - bind(FileReferenceRepository.class).to(FileReferenceRepositoryImpl.class); - bind(FileDescriptionRepo.class).to(FileDescriptionRepoImpl.class); - - requireBinding(FileStore.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/firstmeeting/FirstMeetingModule.java b/core/src/main/java/se/su/dsv/scipro/firstmeeting/FirstMeetingModule.java deleted file mode 100644 index e567605a8d..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/firstmeeting/FirstMeetingModule.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.su.dsv.scipro.firstmeeting; - -import com.google.inject.AbstractModule; -import se.su.dsv.scipro.firstmeeting.FirstMeetingReminderWorker.FirstMeetingReminderWorkerSchedule; - -public class FirstMeetingModule extends AbstractModule { - @Override - public void configure() { - bind(FirstMeetingReminderWorkerSchedule.class).asEagerSingleton(); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/forum/ForumModule.java b/core/src/main/java/se/su/dsv/scipro/forum/ForumModule.java deleted file mode 100644 index 7346fd1166..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/forum/ForumModule.java +++ /dev/null @@ -1,26 +0,0 @@ -package se.su.dsv.scipro.forum; - -import com.google.inject.PrivateModule; - -public class ForumModule extends PrivateModule { - @Override - protected void configure() { - bind(AbstractThreadRepository.class).to(AbstractThreadRepositoryImpl.class); - bind(ForumPostReadStateRepository.class).to(ForumPostReadStateRepositoryImpl.class); - bind(ForumPostRepository.class).to(ForumPostRepositoryImpl.class); - bind(ProjectThreadRepository.class).to(ProjectThreadRepositoryImpl.class); - bind(GroupThreadRepository.class).to(GroupThreadRepositoryImpl.class); - - expose(ProjectThreadRepository.class); - expose(GroupThreadRepository.class); - - bind(ProjectForumService.class).to(ProjectForumServiceImpl.class); - bind(GroupForumService.class).to(GroupForumServiceImpl.class); - - expose(ProjectForumService.class); - expose(GroupForumService.class); - - bind(BasicForumService.class).to(BasicForumServiceImpl.class); - expose(BasicForumService.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/forum/notifications/ForumNotificationsModule.java b/core/src/main/java/se/su/dsv/scipro/forum/notifications/ForumNotificationsModule.java deleted file mode 100644 index 2a77013615..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/forum/notifications/ForumNotificationsModule.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.su.dsv.scipro.forum.notifications; - -import com.google.inject.AbstractModule; - -public class ForumNotificationsModule extends AbstractModule { - @Override - public void configure() { - bind(ForumNotificationRepository.class).to(ForumNotificationRepositoryImpl.class); - bind(ForumNotifications.class).asEagerSingleton(); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/gdpr/GDPRModule.java b/core/src/main/java/se/su/dsv/scipro/gdpr/GDPRModule.java deleted file mode 100644 index 65a3f3ae8f..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/gdpr/GDPRModule.java +++ /dev/null @@ -1,12 +0,0 @@ -package se.su.dsv.scipro.gdpr; - -import com.google.inject.PrivateModule; - -public class GDPRModule extends PrivateModule { - @Override - protected void configure() { - bind(Reporter.class).to(ZipReporter.class); - - expose(Reporter.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/grading/GradingModule.java b/core/src/main/java/se/su/dsv/scipro/grading/GradingModule.java deleted file mode 100644 index 7f0448f149..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/grading/GradingModule.java +++ /dev/null @@ -1,33 +0,0 @@ -package se.su.dsv.scipro.grading; - -import com.google.inject.Key; -import com.google.inject.PrivateModule; -import com.google.inject.name.Names; - -public class GradingModule extends PrivateModule { - @Override - protected void configure() { - requireBinding(Key.get(String.class, Names.named("service.grading.url"))); - bind(GradingService.class).to(GradingServiceImpl.class); - - expose(GradingService.class); - - bind(PublicationMetadataRepository.class).to(PublicationMetadataRepositoryImpl.class); - bind(PublicationMetadataService.class).to(PublicationMetadataServiceImpl.class); - expose(PublicationMetadataService.class); - - bind(ExaminerTimelineService.class).to(GradingHistory.class); - expose(ExaminerTimelineService.class); - bind(GradingHistoryEventRepository.class).to(GradingHistoryEventRepositoryImpl.class); - bind(ThesisRejectionHistoryService.class).to(GradingHistory.class); - expose(ThesisRejectionHistoryService.class); - bind(ThesisApprovedHistoryService.class).to(GradingHistory.class); - expose(ThesisApprovedHistoryService.class); - bind(ThesisSubmissionHistoryService.class).to(GradingHistory.class); - expose(ThesisSubmissionHistoryService.class); - - bind(NationalSubjectCategoryRepository.class).to(NationalSubjectCategoryRepositoryImpl.class); - bind(NationalSubjectCategoryService.class).to(NationalSubjectCategoryServiceImpl.class); - expose(NationalSubjectCategoryService.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/integration/activityfinalseminar/ActivityFinalSeminarModule.java b/core/src/main/java/se/su/dsv/scipro/integration/activityfinalseminar/ActivityFinalSeminarModule.java deleted file mode 100644 index 0d5d8bf9a4..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/integration/activityfinalseminar/ActivityFinalSeminarModule.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.su.dsv.scipro.integration.activityfinalseminar; - -import com.google.inject.AbstractModule; - -public class ActivityFinalSeminarModule extends AbstractModule { - @Override - protected void configure() { - bind(FinalSeminarActivityHandler.class).asEagerSingleton(); - bind(ActivityFinalSeminarRepository.class).to(ActivityFinalSeminarRepositoryImpl.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/integration/activityforum/ActivityForumModule.java b/core/src/main/java/se/su/dsv/scipro/integration/activityforum/ActivityForumModule.java deleted file mode 100644 index c14a655f13..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/integration/activityforum/ActivityForumModule.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.su.dsv.scipro.integration.activityforum; - -import com.google.inject.AbstractModule; - -public class ActivityForumModule extends AbstractModule { - @Override - protected void configure() { - bind(PostActivityUploadToForum.class).asEagerSingleton(); - bind(ActivityThreadRepository.class).to(ActivityThreadRepositoryImpl.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/mail/MailModule.java b/core/src/main/java/se/su/dsv/scipro/mail/MailModule.java deleted file mode 100644 index c23bc66811..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/mail/MailModule.java +++ /dev/null @@ -1,43 +0,0 @@ -package se.su.dsv.scipro.mail; - -import com.google.inject.Exposed; -import com.google.inject.PrivateModule; -import com.google.inject.Provides; -import se.su.dsv.scipro.file.FileService; -import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService; -import se.su.dsv.scipro.profiles.CurrentProfile; - -import jakarta.mail.Session; -import java.util.Properties; - -public class MailModule extends PrivateModule { - - private static final String TEST_MAIL_SINK = "scipro-mailtest@dsv.su.se"; - - @Override - protected void configure() { - requireBinding(CurrentProfile.class); - requireBinding(GeneralSystemSettingsService.class); - bind(MailEventService.class).to(MailEventServiceImpl.class); - expose(MailEventService.class); - } - - @Provides - @Exposed - public Mailer mailer(CurrentProfile currentProfile, Session session, FileService fileDescriptionService) { - return switch (currentProfile.getCurrentProfile()) { - case DEV -> new PrintingMailer(); - case PROD -> new Mail(session, fileDescriptionService); - case TEST -> new RedirectingMailer(session, TEST_MAIL_SINK, fileDescriptionService); - }; - } - - @Provides - public Session session(GeneralSystemSettingsService generalSystemSettings) { - String smtpHost = generalSystemSettings.getGeneralSystemSettingsInstance().getSmtpServer(); - Properties properties = new Properties(); - properties.setProperty("mail.smtp.host", smtpHost); - properties.setProperty("mail.smtp.sendpartial", Boolean.toString(true)); - return Session.getDefaultInstance(properties); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/match/MatchModule.java b/core/src/main/java/se/su/dsv/scipro/match/MatchModule.java deleted file mode 100644 index 28e19d2295..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/match/MatchModule.java +++ /dev/null @@ -1,26 +0,0 @@ -package se.su.dsv.scipro.match; - -import com.google.inject.AbstractModule; -import com.google.inject.multibindings.OptionalBinder; - -public class MatchModule extends AbstractModule { - @Override - protected void configure() { - OptionalBinder.newOptionalBinder(binder(), IdeaCreationJudge.class) - .setDefault().to(AllowAllIdeaCreationJudge.class); - bind(ProjectStartNotifier.class).asEagerSingleton(); - bind(AddActivityPlanOnProjectStart.class).asEagerSingleton(); - bind(ApplicationPeriodService.class).to(ApplicationPeriodServiceImpl.class); - bind(IdeaService.class).to(IdeaServiceImpl.class); - bind(FirstMeetingRepository.class).to(FirstMeetingRepositoryImpl.class); - bind(KeywordService.class).to(KeywordServiceImpl.class); - bind(MatchService.class).to(MatchServiceImpl.class); - bind(ProgramService.class).to(ProgramServiceImpl.class); - bind(MatchFollowUpService.class).to(MatchFollowUpServiceImpl.class); - bind(TargetService.class).to(TargetServiceImpl.class); - bind(ApplicationPeriodProjectTypeService.class).to(ApplicationPeriodProjectTypeServiceImpl.class); - bind(PreliminaryMatchService.class).to(PreliminaryMatchServiceImpl.class); - bind(IdeaRepository.class).to(IdeaRepositoryImpl.class); - bind(TargetRepository.class).to(TargetRepositoryImpl.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/NotificationControllerImpl.java b/core/src/main/java/se/su/dsv/scipro/notifications/NotificationControllerImpl.java index 8bd1a88a13..0a4a6e08f4 100755 --- a/core/src/main/java/se/su/dsv/scipro/notifications/NotificationControllerImpl.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/NotificationControllerImpl.java @@ -1,6 +1,5 @@ package se.su.dsv.scipro.notifications; -import com.google.inject.ProvisionException; import se.su.dsv.scipro.data.dataobjects.Member; import se.su.dsv.scipro.finalseminar.FinalSeminar; import se.su.dsv.scipro.group.Group; @@ -94,7 +93,7 @@ public class NotificationControllerImpl implements NotificationController { try { return currentUserProvider.get().get(); } - catch (ProvisionException ignored) { + catch (RuntimeException ignored) { return null; } } diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/NotificationModule.java b/core/src/main/java/se/su/dsv/scipro/notifications/NotificationModule.java deleted file mode 100644 index 507ca4bcab..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/notifications/NotificationModule.java +++ /dev/null @@ -1,28 +0,0 @@ -package se.su.dsv.scipro.notifications; - -import com.google.inject.PrivateModule; -import se.su.dsv.scipro.notifications.interfaces.NotificationMailFormatter; -import se.su.dsv.scipro.notifications.interfaces.impl.NotificationMailFormatterImpl; - -public class NotificationModule extends PrivateModule { - - public static final String NOTIFICATION_RELATIVE_PAGE_URL = "notification"; - - @Override - protected void configure() { - bind(Notifications.class).asEagerSingleton(); - - bind(NotificationService.class).to(NotificationServiceImpl.class); - expose(NotificationService.class); - - bind(NotificationEventRepository.class).to(NotificationEventRepositoryImpl.class); - bind(NotificationEventService.class).to(NotificationEventServiceImpl.class); - expose(NotificationEventService.class); - - bind(NotificationMailFormatter.class).to(NotificationMailFormatterImpl.class); - expose(NotificationMailFormatter.class); - bind(NotificationController.class).to(NotificationControllerImpl.class); - expose(NotificationController.class); - } - -} diff --git a/core/src/main/java/se/su/dsv/scipro/notifications/interfaces/impl/NotificationMailFormatterImpl.java b/core/src/main/java/se/su/dsv/scipro/notifications/interfaces/impl/NotificationMailFormatterImpl.java index cdf67a52d4..b8aeadcb99 100755 --- a/core/src/main/java/se/su/dsv/scipro/notifications/interfaces/impl/NotificationMailFormatterImpl.java +++ b/core/src/main/java/se/su/dsv/scipro/notifications/interfaces/impl/NotificationMailFormatterImpl.java @@ -8,7 +8,6 @@ import se.su.dsv.scipro.finalseminar.FinalSeminar; import se.su.dsv.scipro.finalseminar.FinalSeminarService; import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettings; import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService; -import se.su.dsv.scipro.notifications.NotificationModule; import se.su.dsv.scipro.notifications.dataobject.*; import se.su.dsv.scipro.notifications.interfaces.NotificationMailFormatter; import se.su.dsv.scipro.project.Project; @@ -158,7 +157,7 @@ public class NotificationMailFormatterImpl implements NotificationMailFormatter private String getAbsoluteURL(final Notification notification) { final String baseUrl = systemSettingsService.getGeneralSystemSettingsInstance().getSciproURL(); long id = notification.getNotificationEvent().getId(); - return baseUrl + "/" + NotificationModule.NOTIFICATION_RELATIVE_PAGE_URL + "?id=" + id; + return baseUrl + "/" + "notification" + "?id=" + id; } String makeProperty(Object... parts) { diff --git a/core/src/main/java/se/su/dsv/scipro/oauth/OAuthModule.java b/core/src/main/java/se/su/dsv/scipro/oauth/OAuthModule.java deleted file mode 100644 index bce825afe1..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/oauth/OAuthModule.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.su.dsv.scipro.oauth; - -import com.google.inject.PrivateModule; -import com.google.inject.Provides; - -import jakarta.inject.Named; - -public class OAuthModule extends PrivateModule { - @Override - protected void configure() { - bind(OAuthService.class).to(OAuthServiceImpl.class); - - expose(OAuthService.class); - } - - @Provides - OAuthSettings settings( - @Named("oauth.uri") String uri, - @Named("oauth.redirectUri") String redirectUri, - @Named("oauth.clientId") String clientId, - @Named("oauth.clientSecret") String clientSecret) - { - return new OAuthSettings(uri, redirectUri, clientId, clientSecret); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/peer/PeerModule.java b/core/src/main/java/se/su/dsv/scipro/peer/PeerModule.java deleted file mode 100644 index 0fdd05980c..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/peer/PeerModule.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.su.dsv.scipro.peer; - -import com.google.inject.AbstractModule; -import com.google.inject.multibindings.Multibinder; -import se.su.dsv.scipro.system.Lifecycle; - -public class PeerModule extends AbstractModule { - @Override - protected void configure() { - Multibinder.newSetBinder(binder(), Lifecycle.class) - .addBinding().to(PeerWorkerSchedules.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/plagiarism/PlagiarismModule.java b/core/src/main/java/se/su/dsv/scipro/plagiarism/PlagiarismModule.java deleted file mode 100644 index 3f862ea21c..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/plagiarism/PlagiarismModule.java +++ /dev/null @@ -1,11 +0,0 @@ -package se.su.dsv.scipro.plagiarism; - -import com.google.inject.AbstractModule; - -public class PlagiarismModule extends AbstractModule { - @Override - protected void configure() { - bind(PlagiarismControl.class).to(PlagiarismControlImpl.class); - bind(PlagiarismRequestRepository.class).to(PlagiarismRequestRepositoryImpl.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/plagiarism/urkund/UrkundModule.java b/core/src/main/java/se/su/dsv/scipro/plagiarism/urkund/UrkundModule.java deleted file mode 100644 index 573a3a5559..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/plagiarism/urkund/UrkundModule.java +++ /dev/null @@ -1,26 +0,0 @@ -package se.su.dsv.scipro.plagiarism.urkund; - -import com.google.inject.AbstractModule; -import com.google.inject.Provides; -import com.google.inject.Scopes; -import se.su.dsv.scipro.sukat.Sukat; - -import jakarta.persistence.EntityManager; - -public class UrkundModule extends AbstractModule { - @Override - protected void configure() { - bind(UrkundService.class).to(UrkundServiceImpl.class); - bind(UrkundSubmissionRepository.class).to(UrkundSubmissionRepositoryImpl.class); - bind(UrkundApi.class).to(UrkundApiImpl.class).in(Scopes.SINGLETON); - bind(UrkundSettingsRepository.class).to(UrkundSettingsRepositoryImpl.class); - - requireBinding(EntityManager.class); - requireBinding(Sukat.class); - } - - @Provides - public UrkundSettings urkundSettings(UrkundSettingsRepository urkundSettingsRepository) { - return urkundSettingsRepository.getSettings(); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionModule.java b/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionModule.java deleted file mode 100644 index 872fd7d8dd..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/reflection/ReflectionModule.java +++ /dev/null @@ -1,13 +0,0 @@ -package se.su.dsv.scipro.reflection; - -import com.google.inject.AbstractModule; -import se.su.dsv.scipro.finalseminar.AuthorRepository; - -public class ReflectionModule extends AbstractModule { - @Override - protected void configure() { - requireBinding(AuthorRepository.class); - - bind(ReflectionService.class).to(ReflectionServiceImpl.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/reviewing/ReviewingModule.java b/core/src/main/java/se/su/dsv/scipro/reviewing/ReviewingModule.java deleted file mode 100644 index 9a0d1d53f7..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/reviewing/ReviewingModule.java +++ /dev/null @@ -1,25 +0,0 @@ -package se.su.dsv.scipro.reviewing; - -import com.google.inject.AbstractModule; -import se.su.dsv.scipro.file.FileService; - -import jakarta.persistence.EntityManager; - -public class ReviewingModule extends AbstractModule { - @Override - protected void configure() { - requireBinding(FileService.class); - requireBinding(EntityManager.class); - bind(ReviewerThreadRepository.class).to(ReviewerThreadRepositoryImpl.class); - bind(ReviewerInteractionService.class).to(ReviewerInteractionServiceImpl.class); - bind(FinalSeminarApprovalService.class).to(FinalSeminarApprovalServiceImpl.class); - bind(MyReviewService.class).to(ReviewingServiceImpl.class); - bind(ReviewerDecisionService.class).to(ReviewingServiceImpl.class); - bind(RoughDraftApprovalService.class).to(RoughDraftApprovalServiceImpl.class); - bind(ReviewerDeadlineSettingsService.class).to(ReviewerDeadlineSettingsServiceImpl.class); - bind(ReviewerDeadlineSettingsRepository.class).to(ReviewerDeadlineSettingsRepositoryImpl.class); - bind(ReviewerDeadlineFollowupService.class).to(ReviewerDeadlineFollowupServiceImpl.class); - bind(ReviewerCapacityService.class).to(ReviewerCapacityServiceImpl.class); - bind(ReviewerAssignmentService.class).to(ReviewerCapacityServiceImpl.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/security/auth/AuthenticationModule.java b/core/src/main/java/se/su/dsv/scipro/security/auth/AuthenticationModule.java deleted file mode 100644 index 3598358043..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/security/auth/AuthenticationModule.java +++ /dev/null @@ -1,15 +0,0 @@ -package se.su.dsv.scipro.security.auth; - -import com.google.inject.AbstractModule; -import com.google.inject.multibindings.Multibinder; - -public class AuthenticationModule extends AbstractModule { - @Override - protected void configure() { - bind(AuthenticationService.class).to(AuthenticationServiceImpl.class); - - Multibinder<AuthenticationProvider> authenticationProviders - = Multibinder.newSetBinder(binder(), AuthenticationProvider.class); - authenticationProviders.addBinding().to(LocalAuthentication.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/sukat/SukatModule.java b/core/src/main/java/se/su/dsv/scipro/sukat/SukatModule.java deleted file mode 100644 index 544a17ec39..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/sukat/SukatModule.java +++ /dev/null @@ -1,10 +0,0 @@ -package se.su.dsv.scipro.sukat; - -import com.google.inject.AbstractModule; - -public class SukatModule extends AbstractModule { - @Override - protected void configure() { - bind(Sukat.class).to(LDAP.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/survey/SurveyModule.java b/core/src/main/java/se/su/dsv/scipro/survey/SurveyModule.java deleted file mode 100644 index 54a6c83c92..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/survey/SurveyModule.java +++ /dev/null @@ -1,17 +0,0 @@ -package se.su.dsv.scipro.survey; - -import com.google.inject.AbstractModule; -import se.su.dsv.scipro.finalthesis.FinalThesisService; - -import jakarta.persistence.EntityManager; - -public class SurveyModule extends AbstractModule { - @Override - protected void configure() { - requireBinding(EntityManager.class); - requireBinding(FinalThesisService.class); - bind(SurveyRepository.class).to(SurveyRepositoryImpl.class); - bind(QuestionRepository.class).to(QuestionRepositoryImpl.class); - bind(SurveyService.class).to(SurveyServiceImpl.class); - } -} diff --git a/core/src/main/java/se/su/dsv/scipro/workerthreads/WorkerModule.java b/core/src/main/java/se/su/dsv/scipro/workerthreads/WorkerModule.java deleted file mode 100644 index db17d05aec..0000000000 --- a/core/src/main/java/se/su/dsv/scipro/workerthreads/WorkerModule.java +++ /dev/null @@ -1,31 +0,0 @@ -package se.su.dsv.scipro.workerthreads; - -import com.google.inject.AbstractModule; -import com.google.inject.Scopes; -import com.google.inject.multibindings.Multibinder; -import se.su.dsv.scipro.mail.MailEventWorker; -import se.su.dsv.scipro.projectpartner.RemoveFulfilledPartnerAdsWorker; -import se.su.dsv.scipro.system.Lifecycle; - -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; - -public class WorkerModule extends AbstractModule { - private static final int NUMBER_OF_WORKER_THREADS = 4; - - @Override - protected void configure() { - //Multibinder.newSetBinder(binder(), Lifecycle.class).addBinding().to(SchedulerImpl.class); - bind(ScheduledExecutorService.class).toInstance(Executors.newScheduledThreadPool(NUMBER_OF_WORKER_THREADS)); - //bind(Scheduler.class).to(SchedulerImpl.class).in(Scopes.SINGLETON); - bind(TemporaryWorkerScheduler.class).asEagerSingleton(); - bind(WorkerDataService.class).to(WorkerDataServiceImpl.class); - bind(ThesisUploadDeadlineWorker.class); - bind(ManualMatchRemindWorker.class); - bind(MailEventWorker.class); - bind(NotificationCompilationWorker.class); - bind(ThesisUploadReminderWorker.class); - bind(IdeaExportWorker.class); - bind(RemoveFulfilledPartnerAdsWorker.class); - } -} diff --git a/core/src/test/java/se/su/dsv/scipro/forum/ForumModuleTest.java b/core/src/test/java/se/su/dsv/scipro/forum/ForumModuleTest.java index 4c0f37379d..90cc242e77 100644 --- a/core/src/test/java/se/su/dsv/scipro/forum/ForumModuleTest.java +++ b/core/src/test/java/se/su/dsv/scipro/forum/ForumModuleTest.java @@ -1,20 +1,15 @@ package se.su.dsv.scipro.forum; -import com.google.inject.AbstractModule; -import com.google.inject.Module; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import se.su.dsv.scipro.date.DateService; -import se.su.dsv.scipro.file.FileModule; -import se.su.dsv.scipro.file.FileStore; import se.su.dsv.scipro.notifications.NotificationController; import se.su.dsv.scipro.notifications.NotificationService; -import se.su.dsv.scipro.test.GuiceTest; -import se.su.dsv.scipro.test.InMemoryFileStore; +import se.su.dsv.scipro.test.SpringTest; @ExtendWith(MockitoExtension.class) -public abstract class ForumModuleTest extends GuiceTest { +public abstract class ForumModuleTest extends SpringTest { // TODO: Work towards removing these dependencies. @Mock private DateService dateService; @@ -23,18 +18,4 @@ public abstract class ForumModuleTest extends GuiceTest { @Mock private NotificationService notificationService; - @Override - protected Module moduleUnderTest() { - return new AbstractModule() { - @Override - protected void configure() { - install(new ForumModule()); - install(new FileModule()); - bind(FileStore.class).to(InMemoryFileStore.class); - bind(DateService.class).toInstance(dateService); - bind(NotificationController.class).toInstance(notificationController); - bind(NotificationService.class).toInstance(notificationService); - } - }; - } } diff --git a/core/src/test/java/se/su/dsv/scipro/match/MatchModuleTest.java b/core/src/test/java/se/su/dsv/scipro/match/MatchModuleTest.java index 63417a754b..7a189d32f4 100644 --- a/core/src/test/java/se/su/dsv/scipro/match/MatchModuleTest.java +++ b/core/src/test/java/se/su/dsv/scipro/match/MatchModuleTest.java @@ -1,9 +1,6 @@ package se.su.dsv.scipro.match; import com.google.common.eventbus.EventBus; -import com.google.inject.AbstractModule; -import com.google.inject.Module; -import com.google.inject.name.Names; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; @@ -13,10 +10,10 @@ import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService; import se.su.dsv.scipro.mail.MailEventService; import se.su.dsv.scipro.notifications.NotificationController; import se.su.dsv.scipro.project.ProjectService; -import se.su.dsv.scipro.test.GuiceTest; +import se.su.dsv.scipro.test.SpringTest; @ExtendWith(MockitoExtension.class) -public abstract class MatchModuleTest extends GuiceTest { +public abstract class MatchModuleTest extends SpringTest { // ToDo:The system services should be move to a system module that other modules can depend on @Mock protected DateService dateService; @@ -34,28 +31,4 @@ public abstract class MatchModuleTest extends GuiceTest { @Mock protected ProjectService projectService; - @Override - protected Module moduleUnderTest() { - return new AbstractModule() { - @Override - protected void configure() { - install(new MatchModule()); - bind(GeneralSystemSettingsService.class).toInstance(generalSystemSettingsService); - bind(NotificationController.class).toInstance(notificationController); - bind(DateService.class).toInstance(dateService); - bind(MailEventService.class).toInstance(mailEventService); - bind(ActivityPlanFacade.class).toInstance(activityPlanFacade); - bind(EventBus.class).toInstance(eventBus); - bind(ProjectService.class).toInstance(projectService); - - // Work towards removing the dependency on NotificationSourceURL - bindConstant().annotatedWith(Names.named("source.export.fail.supervisor")).to(""); - bindConstant().annotatedWith(Names.named("source.export.fail.user")).to(""); - bindConstant().annotatedWith(Names.named("source.export.success.supervisor")).to(""); - bindConstant().annotatedWith(Names.named("source.export.success.user")).to(""); - bindConstant().annotatedWith(Names.named("source.project.supervisor")).to(""); - bindConstant().annotatedWith(Names.named("source.project.student")).to(""); - } - }; - } } diff --git a/core/src/test/java/se/su/dsv/scipro/notifications/NotificationControllerImplTest.java b/core/src/test/java/se/su/dsv/scipro/notifications/NotificationControllerImplTest.java index 6453a0f537..6c770e1a9d 100755 --- a/core/src/test/java/se/su/dsv/scipro/notifications/NotificationControllerImplTest.java +++ b/core/src/test/java/se/su/dsv/scipro/notifications/NotificationControllerImplTest.java @@ -1,6 +1,5 @@ package se.su.dsv.scipro.notifications; -import com.google.inject.util.Providers; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; @@ -55,7 +54,7 @@ public class NotificationControllerImplTest { notificationService, mailFormatter, mailEventService, - receiverConfiguration, deliveryConfiguration, Providers.of(currentUser)); + receiverConfiguration, deliveryConfiguration, () -> currentUser); when(mailFormatter.format(isA(Notification.class))).thenReturn(new NotificationMail("Subject", "Body")); when(deliveryConfiguration.isDelivery(isA(Notification.Type.class), isA(Enum.class), isA(DeliveryMethod.class), isA(Optional.class))).thenReturn(true); diff --git a/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSettingsRepositoryTest.java b/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSettingsRepositoryTest.java index a2eb62c871..8b113e1524 100644 --- a/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSettingsRepositoryTest.java +++ b/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSettingsRepositoryTest.java @@ -1,35 +1,16 @@ package se.su.dsv.scipro.plagiarism.urkund; -import com.google.inject.AbstractModule; -import com.google.inject.Module; import org.junit.jupiter.api.Test; -import se.su.dsv.scipro.file.FileModule; -import se.su.dsv.scipro.file.FileStore; -import se.su.dsv.scipro.sukat.SukatModule; -import se.su.dsv.scipro.test.GuiceTest; -import se.su.dsv.scipro.test.InMemoryFileStore; +import se.su.dsv.scipro.test.SpringTest; import jakarta.inject.Inject; import static org.junit.jupiter.api.Assertions.assertEquals; -public class UrkundSettingsRepositoryTest extends GuiceTest { +public class UrkundSettingsRepositoryTest extends SpringTest { @Inject private UrkundSettingsRepository urkundSettingsRepository; - @Override - protected Module moduleUnderTest() { - return new AbstractModule() { - @Override - protected void configure() { - install(new SukatModule()); - install(new UrkundModule()); - install(new FileModule()); - bind(FileStore.class).to(InMemoryFileStore.class); - } - }; - } - @Test public void change_settings() { final UrkundSettings settings = urkundSettingsRepository.getSettings(); diff --git a/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSubmissionRepositoryTest.java b/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSubmissionRepositoryTest.java index 0d2599f5fd..6120fe3468 100644 --- a/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSubmissionRepositoryTest.java +++ b/core/src/test/java/se/su/dsv/scipro/plagiarism/urkund/UrkundSubmissionRepositoryTest.java @@ -1,18 +1,12 @@ package se.su.dsv.scipro.plagiarism.urkund; -import com.google.inject.AbstractModule; -import com.google.inject.Module; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; import org.junit.jupiter.api.Test; import se.su.dsv.scipro.file.FileDescription; -import se.su.dsv.scipro.file.FileModule; import se.su.dsv.scipro.file.FileReference; -import se.su.dsv.scipro.file.FileStore; -import se.su.dsv.scipro.sukat.Sukat; -import se.su.dsv.scipro.test.GuiceTest; -import se.su.dsv.scipro.test.InMemoryFileStore; +import se.su.dsv.scipro.test.SpringTest; import jakarta.inject.Inject; import java.time.Instant; @@ -22,23 +16,10 @@ import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -public class UrkundSubmissionRepositoryTest extends GuiceTest { +public class UrkundSubmissionRepositoryTest extends SpringTest { @Inject private UrkundSubmissionRepository submissionRepository; - - @Override - protected Module moduleUnderTest() { - return new AbstractModule() { - @Override - protected void configure() { - install(new UrkundModule()); - bind(Sukat.class).toInstance((username) -> Optional.empty()); - install(new FileModule()); - bind(FileStore.class).to(InMemoryFileStore.class); - } - }; - } @Test public void save() { diff --git a/core/src/test/java/se/su/dsv/scipro/test/IntegrationTest.java b/core/src/test/java/se/su/dsv/scipro/test/IntegrationTest.java index 4833f0e4bd..837f58dc90 100644 --- a/core/src/test/java/se/su/dsv/scipro/test/IntegrationTest.java +++ b/core/src/test/java/se/su/dsv/scipro/test/IntegrationTest.java @@ -1,57 +1,5 @@ package se.su.dsv.scipro.test; -import com.google.inject.AbstractModule; -import com.google.inject.Module; -import com.google.inject.name.Names; -import modules.CoreModule; -import se.su.dsv.scipro.file.FileModule; -import se.su.dsv.scipro.file.FileStore; -import se.su.dsv.scipro.grading.GradingHistory; -import se.su.dsv.scipro.grading.GradingHistoryEventRepository; -import se.su.dsv.scipro.grading.GradingHistoryEventRepositoryImpl; -import se.su.dsv.scipro.grading.GradingModule; -import se.su.dsv.scipro.grading.ThesisSubmissionHistoryService; -import se.su.dsv.scipro.plagiarism.urkund.UrkundModule; -import se.su.dsv.scipro.reviewing.ReviewingModule; -import se.su.dsv.scipro.sukat.SukatModule; -import se.su.dsv.scipro.system.CurrentUser; -import se.su.dsv.scipro.system.User; +public abstract class IntegrationTest extends SpringTest { -import jakarta.inject.Singleton; - -public abstract class IntegrationTest extends GuiceTest { - - @Override - protected Module moduleUnderTest() { - return new AbstractModule() { - @Override - protected void configure() { - bindConstant().annotatedWith(Names.named("profile")).to("TEST"); - install(new CoreModule()); - install(new FileModule()); - install(new ReviewingModule()); - install(new SukatModule()); - install(new UrkundModule()); - bind(ThesisSubmissionHistoryService.class).to(GradingHistory.class); - bind(GradingHistoryEventRepository.class).to(GradingHistoryEventRepositoryImpl.class); - bind(CurrentUser.class).to(TestUser.class); - bind(FileStore.class).to(InMemoryFileStore.class); - } - }; - } - - @Singleton - private static class TestUser implements CurrentUser { - - private User user; - - public void set(User user) { - this.user = user; - } - - @Override - public User get() { - return user; - } - } } diff --git a/core/src/test/java/se/su/dsv/scipro/test/GuiceTest.java b/core/src/test/java/se/su/dsv/scipro/test/SpringTest.java similarity index 96% rename from core/src/test/java/se/su/dsv/scipro/test/GuiceTest.java rename to core/src/test/java/se/su/dsv/scipro/test/SpringTest.java index d10ba07747..3ee673c390 100644 --- a/core/src/test/java/se/su/dsv/scipro/test/GuiceTest.java +++ b/core/src/test/java/se/su/dsv/scipro/test/SpringTest.java @@ -1,7 +1,6 @@ package se.su.dsv.scipro.test; import com.google.common.eventbus.EventBus; -import com.google.inject.Module; import jakarta.inject.Provider; import jakarta.persistence.EntityManager; import jakarta.persistence.EntityManagerFactory; @@ -30,12 +29,12 @@ import java.util.Optional; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; -public abstract class GuiceTest { +public abstract class SpringTest { private EntityManager entityManager; private EntityManagerFactory entityManagerFactory; @BeforeEach - public final void prepareGuice() { + public final void prepareSpring() { entityManagerFactory = Persistence.createEntityManagerFactory("testPersistenceUnit"); this.entityManager = entityManagerFactory.createEntityManager(); EntityTransaction transaction = entityManager.getTransaction(); @@ -51,8 +50,6 @@ public abstract class GuiceTest { .autowireBean(this); } - protected abstract Module moduleUnderTest(); - @AfterEach public final void shutDownPersistence() { entityManager.getTransaction().rollback(); diff --git a/daisy-integration/pom.xml b/daisy-integration/pom.xml index 7c31d026ff..3d94bb165c 100644 --- a/daisy-integration/pom.xml +++ b/daisy-integration/pom.xml @@ -20,10 +20,6 @@ <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> - <dependency> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-servlet</artifactId> - </dependency> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> diff --git a/daisy-integration/src/main/java/se/su/dsv/scipro/integration/daisy/DaisyModule.java b/daisy-integration/src/main/java/se/su/dsv/scipro/integration/daisy/DaisyModule.java deleted file mode 100644 index ffedb6c3c1..0000000000 --- a/daisy-integration/src/main/java/se/su/dsv/scipro/integration/daisy/DaisyModule.java +++ /dev/null @@ -1,44 +0,0 @@ -package se.su.dsv.scipro.integration.daisy; - -import com.google.inject.multibindings.Multibinder; -import com.google.inject.multibindings.OptionalBinder; -import com.google.inject.servlet.ServletModule; -import se.su.dsv.scipro.daisyExternal.ExternalImporter; -import se.su.dsv.scipro.daisyExternal.ImporterTransactions; -import se.su.dsv.scipro.daisyExternal.impl.ExternalImporterDaisyImpl; -import se.su.dsv.scipro.daisyExternal.impl.ImporterTransactionsImpl; -import se.su.dsv.scipro.finalthesis.PublishingConsentService; -import se.su.dsv.scipro.integration.daisy.workers.ProjectExporter; -import se.su.dsv.scipro.integration.daisy.workers.UserImportWorker; -import se.su.dsv.scipro.io.ExternalExporter; -import se.su.dsv.scipro.io.impl.ExternalExporterDaisyImpl; -import se.su.dsv.scipro.match.IdeaCreationJudge; -import se.su.dsv.scipro.system.UserImportService; -import se.su.dsv.scipro.system.UserSearchProvider; - -public class DaisyModule extends ServletModule { - @Override - protected void configureServlets() { - bind(ExternalImporter.class).to(ExternalImporterDaisyImpl.class); - bind(ImporterTransactions.class).to(ImporterTransactionsImpl.class); - - OptionalBinder.newOptionalBinder(binder(), IdeaCreationJudge.class) - .setBinding().to(Daisy.class); - - bind(ExternalExporter.class).to(ExternalExporterDaisyImpl.class); - bind(UserImportWorker.class); - bind(ProjectExporter.class); - bind(DaisyWorkerInitialization.class).asEagerSingleton(); - bind(SyncReviewerWithDaisy.class).asEagerSingleton(); - - Multibinder.newSetBinder(binder(), UserImportService.class) - .addBinding().to(ExternalImporterDaisyImpl.class); - - Multibinder.newSetBinder(binder(), UserSearchProvider.class) - .addBinding().to(DaisyUserSearchService.class); - - OptionalBinder.newOptionalBinder(binder(), PublishingConsentService.class) - .setBinding().to(DaisyConsentService.class); - } - -} diff --git a/daisy-integration/src/main/resources/META-INF/services/com.google.inject.Module b/daisy-integration/src/main/resources/META-INF/services/com.google.inject.Module deleted file mode 100644 index f216e38b02..0000000000 --- a/daisy-integration/src/main/resources/META-INF/services/com.google.inject.Module +++ /dev/null @@ -1 +0,0 @@ -se.su.dsv.scipro.integration.daisy.DaisyModule diff --git a/pom.xml b/pom.xml index 2a0ddec0e3..26d33b22e7 100755 --- a/pom.xml +++ b/pom.xml @@ -38,7 +38,6 @@ <mockito.version>5.3.1</mockito.version> <flyway.version>9.19.1</flyway.version> <jersey.version>3.1.6</jersey.version> - <guice.version>7.0.0</guice.version> <poi.version>5.2.5</poi.version> <jackson.version>2.17.0</jackson.version> @@ -90,7 +89,7 @@ </dependency> <dependency> <groupId>org.apache.wicket</groupId> - <artifactId>wicket-guice</artifactId> + <artifactId>wicket-ioc</artifactId> <version>${wicket.version}</version> </dependency> <dependency> @@ -204,13 +203,6 @@ <artifactId>guava</artifactId> <version>32.0.1-jre</version> </dependency> - <dependency> - <groupId>com.google.inject</groupId> - <artifactId>guice-bom</artifactId> - <version>${guice.version}</version> - <type>pom</type> - <scope>import</scope> - </dependency> <dependency> <groupId>jakarta.mail</groupId> diff --git a/view/pom.xml b/view/pom.xml index b05f59bd56..9cdd26f28b 100644 --- a/view/pom.xml +++ b/view/pom.xml @@ -13,15 +13,6 @@ <packaging>war</packaging> <dependencies> - <dependency> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-servlet</artifactId> - </dependency> - <dependency> - <groupId>com.google.inject.extensions</groupId> - <artifactId>guice-persist</artifactId> - </dependency> - <dependency> <groupId>se.su.dsv.scipro</groupId> <artifactId>core</artifactId> @@ -44,7 +35,7 @@ </dependency> <dependency> <groupId>org.apache.wicket</groupId> - <artifactId>wicket-guice</artifactId> + <artifactId>wicket-ioc</artifactId> </dependency> <dependency> <groupId>org.apache.wicket</groupId> diff --git a/view/src/main/java/se/su/dsv/scipro/SciProApplication.java b/view/src/main/java/se/su/dsv/scipro/SciProApplication.java index 896faee0f4..2f9a987e5d 100755 --- a/view/src/main/java/se/su/dsv/scipro/SciProApplication.java +++ b/view/src/main/java/se/su/dsv/scipro/SciProApplication.java @@ -33,7 +33,6 @@ import se.su.dsv.scipro.forum.pages.ProjectForumBasePage; import se.su.dsv.scipro.forum.pages.SupervisorForumBasePage; import se.su.dsv.scipro.forum.pages.threaded.*; import se.su.dsv.scipro.gdpr.AdminGDPRPage; -import se.su.dsv.scipro.gdpr.GDPRReportResourceReference; import se.su.dsv.scipro.generalsystemsettings.AdminGeneralSettingsPage; import se.su.dsv.scipro.grading.SupervisorGradingPage; import se.su.dsv.scipro.grading.SupervisorGradingReportPage; @@ -49,7 +48,6 @@ import se.su.dsv.scipro.milestones.pages.SupervisorMileStonePage; import se.su.dsv.scipro.nonworkdays.NonWorkDaysPage; import se.su.dsv.scipro.notes.NotesPage; import se.su.dsv.scipro.notifications.NotificationLoader; -import se.su.dsv.scipro.notifications.NotificationModule; import se.su.dsv.scipro.notifications.pages.NotificationLandingPage; import se.su.dsv.scipro.notifications.pages.NotificationsPage; import se.su.dsv.scipro.notifications.pages.SupervisorNotificationSettingsPage; @@ -339,7 +337,7 @@ public class SciProApplication extends LifecycleManagedWebApplication { private void mountNotificationAndSettingsPages() { mountPage("notes", NotesPage.class); - mountPage(NotificationModule.NOTIFICATION_RELATIVE_PAGE_URL, NotificationLandingPage.class); + mountPage("notification", NotificationLandingPage.class); mountPage("notifications", NotificationsPage.class); mountPage("settings", BasicProfilePage.class); mountPage("settings/supervisorprofile", SupervisorProfilePage.class); diff --git a/view/src/main/java/se/su/dsv/scipro/SciProModule.java b/view/src/main/java/se/su/dsv/scipro/SciProModule.java deleted file mode 100644 index 26e7f0a6ba..0000000000 --- a/view/src/main/java/se/su/dsv/scipro/SciProModule.java +++ /dev/null @@ -1,33 +0,0 @@ -package se.su.dsv.scipro; - -import com.google.inject.Singleton; -import com.google.inject.multibindings.Multibinder; -import com.google.inject.persist.jpa.JpaPersistModule; -import com.google.inject.servlet.ServletModule; -import com.google.inject.servlet.SessionScoped; -import modules.CoreModule; -import org.apache.wicket.protocol.http.WebApplication; -import se.su.dsv.scipro.file.FileModule; -import se.su.dsv.scipro.file.FileStore; -import se.su.dsv.scipro.security.auth.AuthenticationModule; -import se.su.dsv.scipro.system.CurrentUser; -import se.su.dsv.scipro.system.Lifecycle; -import se.su.dsv.scipro.workerthreads.WorkerModule; - -public class SciProModule extends ServletModule { - @Override - protected void configureServlets() { - install(new JpaPersistModule("defaultPersistenceUnit")); - install(new CoreModule()); - install(new FileModule()); - bind(FileStore.class).to(FileSystemStore.class); - install(new WorkerModule()); - install(new AuthenticationModule()); - - bind(WebApplication.class).to(SciProApplication.class).in(Singleton.class); - - bind(CurrentUser.class).to(CurrentUserFromWicketSession.class).in(SessionScoped.class); - Multibinder<Lifecycle> lifecycles = Multibinder.newSetBinder(binder(), Lifecycle.class); - lifecycles.addBinding().to(DataInitializer.class); - } -} diff --git a/view/src/main/java/se/su/dsv/scipro/crosscutting/CrosscuttingModule.java b/view/src/main/java/se/su/dsv/scipro/crosscutting/CrosscuttingModule.java deleted file mode 100644 index 9f583db6d6..0000000000 --- a/view/src/main/java/se/su/dsv/scipro/crosscutting/CrosscuttingModule.java +++ /dev/null @@ -1,16 +0,0 @@ -package se.su.dsv.scipro.crosscutting; - -import com.google.common.eventbus.EventBus; -import com.google.inject.AbstractModule; - -public class CrosscuttingModule extends AbstractModule { - @Override - protected void configure() { - requireBinding(EventBus.class); - bind(ReviewingNotifications.class).asEagerSingleton(); - bind(ReviewerSupportMailer.class).asEagerSingleton(); - bind(ReviewerAssignedNotifications.class).asEagerSingleton(); - bind(ReviewerAssignedDeadline.class).asEagerSingleton(); - bind(ForwardPhase2Feedback.class).asEagerSingleton(); - } -} diff --git a/view/src/main/resources/META-INF/services/com.google.inject.Module b/view/src/main/resources/META-INF/services/com.google.inject.Module deleted file mode 100644 index c0c493be41..0000000000 --- a/view/src/main/resources/META-INF/services/com.google.inject.Module +++ /dev/null @@ -1,15 +0,0 @@ -se.su.dsv.scipro.SciProModule -se.su.dsv.scipro.reviewing.ReviewingModule -se.su.dsv.scipro.crosscutting.CrosscuttingModule -se.su.dsv.scipro.integration.activityfinalseminar.ActivityFinalSeminarModule -se.su.dsv.scipro.integration.activityforum.ActivityForumModule -se.su.dsv.scipro.peer.PeerModule -se.su.dsv.scipro.firstmeeting.FirstMeetingModule -se.su.dsv.scipro.forum.notifications.ForumNotificationsModule -se.su.dsv.scipro.daisyExternal.DaisyExternalModule -se.su.dsv.scipro.plagiarism.urkund.UrkundModule -se.su.dsv.scipro.sukat.SukatModule -se.su.dsv.scipro.oauth.OAuthModule -se.su.dsv.scipro.grading.GradingModule -se.su.dsv.scipro.gdpr.GDPRModule -se.su.dsv.scipro.survey.SurveyModule diff --git a/view/src/test/java/se/su/dsv/scipro/SciProTest.java b/view/src/test/java/se/su/dsv/scipro/SciProTest.java index c8240ce767..af6c912281 100755 --- a/view/src/test/java/se/su/dsv/scipro/SciProTest.java +++ b/view/src/test/java/se/su/dsv/scipro/SciProTest.java @@ -1,15 +1,9 @@ package se.su.dsv.scipro; import com.google.common.eventbus.EventBus; -import com.google.inject.AbstractModule; -import com.google.inject.Guice; -import com.google.inject.Injector; -import com.google.inject.multibindings.Multibinder; -import com.google.inject.name.Names; import org.apache.wicket.Component; import org.apache.wicket.Page; import org.apache.wicket.Session; -import org.apache.wicket.guice.GuiceComponentInjector; import org.apache.wicket.request.Request; import org.apache.wicket.request.Response; import org.apache.wicket.spring.injection.annot.SpringComponentInjector; diff --git a/war/src/test/java/se/su/dsv/scipro/workerthreads/SchedulerImplTest.java b/war/src/test/java/se/su/dsv/scipro/workerthreads/SchedulerImplTest.java index a3283bc1a6..f79a05cd26 100644 --- a/war/src/test/java/se/su/dsv/scipro/workerthreads/SchedulerImplTest.java +++ b/war/src/test/java/se/su/dsv/scipro/workerthreads/SchedulerImplTest.java @@ -1,8 +1,10 @@ package se.su.dsv.scipro.workerthreads; -import com.google.inject.util.Providers; +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityManagerFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Answers; import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; @@ -33,7 +35,7 @@ public class SchedulerImplTest { public void schedules_correctly() { long period = 1; TimeUnit timeUnit = TimeUnit.SECONDS; - scheduler.schedule("My worker").runBy(Providers.of(abstractWorker)).every(period, timeUnit); + scheduler.schedule("My worker").runBy(() -> abstractWorker).every(period, timeUnit); verify(scheduledExecutorService).scheduleAtFixedRate(any(Runnable.class), eq(period), eq(period), eq(timeUnit)); }