Remove Guice completely
This commit is contained in:
parent
426fa73e41
commit
ff44a8c4d7
core
pom.xml
src
main/java
modules
se/su/dsv/scipro
daisyExternal
events
file
firstmeeting
forum
gdpr
grading
integration
mail
match
notifications
oauth
peer
plagiarism
reflection
reviewing
security/auth
sukat
survey
workerthreads
test/java/se/su/dsv/scipro
daisy-integration
pom.xmlview
war/src/test/java/se/su/dsv/scipro/workerthreads
@ -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>
|
||||
|
@ -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);
|
||||
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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)));
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
11
core/src/main/java/se/su/dsv/scipro/integration/activityfinalseminar/ActivityFinalSeminarModule.java
11
core/src/main/java/se/su/dsv/scipro/integration/activityfinalseminar/ActivityFinalSeminarModule.java
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
3
core/src/main/java/se/su/dsv/scipro/notifications/interfaces/impl/NotificationMailFormatterImpl.java
3
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) {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
}
|
@ -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);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -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("");
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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() {
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
@ -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>
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
@ -1 +0,0 @@
|
||||
se.su.dsv.scipro.integration.daisy.DaisyModule
|
10
pom.xml
10
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>
|
||||
|
11
view/pom.xml
11
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>
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
@ -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();
|
||||
}
|
||||
}
|
@ -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
|
@ -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;
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user