Added missing bean definitions

This commit is contained in:
Andreas Svanberg 2024-06-04 16:07:34 +02:00
parent 6be1fede34
commit 2d356f6173
2 changed files with 188 additions and 3 deletions
war/src/main/java/se/su/dsv/scipro/war

@ -3,11 +3,13 @@ package se.su.dsv.scipro.war;
import com.google.common.eventbus.EventBus;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
import org.apache.wicket.protocol.http.WebApplication;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import se.su.dsv.scipro.CurrentUserFromWicketSession;
import se.su.dsv.scipro.DataInitializer;
import se.su.dsv.scipro.FileSystemStore;
import se.su.dsv.scipro.activityplan.ActivityPlanFacade;
import se.su.dsv.scipro.activityplan.ActivityPlanFacadeImpl;
@ -18,6 +20,11 @@ import se.su.dsv.scipro.checklist.ChecklistAnswerServiceImpl;
import se.su.dsv.scipro.checklist.ChecklistServiceImpl;
import se.su.dsv.scipro.checklist.ChecklistTemplateService;
import se.su.dsv.scipro.checklist.ChecklistTemplateServiceImpl;
import se.su.dsv.scipro.crosscutting.ForwardPhase2Feedback;
import se.su.dsv.scipro.crosscutting.ReviewerAssignedDeadline;
import se.su.dsv.scipro.crosscutting.ReviewerAssignedNotifications;
import se.su.dsv.scipro.crosscutting.ReviewerSupportMailer;
import se.su.dsv.scipro.crosscutting.ReviewingNotifications;
import se.su.dsv.scipro.daisyExternal.http.DaisyAPIImpl;
import se.su.dsv.scipro.date.DateServiceImpl;
import se.su.dsv.scipro.file.FileDescriptionRepo;
@ -31,6 +38,7 @@ import se.su.dsv.scipro.file.ProjectFileServiceImpl;
import se.su.dsv.scipro.finalseminar.AuthorRepository;
import se.su.dsv.scipro.finalseminar.FinalSeminarActiveParticipationRepository;
import se.su.dsv.scipro.finalseminar.FinalSeminarActiveParticipationServiceImpl;
import se.su.dsv.scipro.finalseminar.FinalSeminarCreationSubscribers;
import se.su.dsv.scipro.finalseminar.FinalSeminarOppositionRepo;
import se.su.dsv.scipro.finalseminar.FinalSeminarOppositionServiceImpl;
import se.su.dsv.scipro.finalseminar.FinalSeminarRepository;
@ -56,6 +64,8 @@ import se.su.dsv.scipro.forum.GroupThreadRepository;
import se.su.dsv.scipro.forum.ProjectForumService;
import se.su.dsv.scipro.forum.ProjectForumServiceImpl;
import se.su.dsv.scipro.forum.ProjectThreadRepository;
import se.su.dsv.scipro.forum.notifications.ForumNotificationRepository;
import se.su.dsv.scipro.forum.notifications.ForumNotifications;
import se.su.dsv.scipro.gdpr.ZipReporter;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsServiceImpl;
@ -69,8 +79,13 @@ import se.su.dsv.scipro.grading.PublicationMetadataServiceImpl;
import se.su.dsv.scipro.grading.ThesisSubmissionHistoryService;
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.FinalSeminarActivityHandler;
import se.su.dsv.scipro.integration.activityforum.ActivityThreadRepository;
import se.su.dsv.scipro.integration.activityforum.PostActivityUploadToForum;
import se.su.dsv.scipro.mail.MailEventService;
import se.su.dsv.scipro.mail.MailEventServiceImpl;
import se.su.dsv.scipro.match.AddActivityPlanOnProjectStart;
import se.su.dsv.scipro.match.ApplicationPeriodFacadeImpl;
import se.su.dsv.scipro.match.ApplicationPeriodProjectTypeServiceImpl;
import se.su.dsv.scipro.match.ApplicationPeriodService;
@ -84,9 +99,12 @@ import se.su.dsv.scipro.match.MatchFollowUpServiceImpl;
import se.su.dsv.scipro.match.MatchServiceImpl;
import se.su.dsv.scipro.match.PreliminaryMatchServiceImpl;
import se.su.dsv.scipro.match.ProgramServiceImpl;
import se.su.dsv.scipro.match.ProjectStartNotifier;
import se.su.dsv.scipro.match.TargetRepository;
import se.su.dsv.scipro.match.TargetServiceImpl;
import se.su.dsv.scipro.milestones.MilestoneActivityTemplateRepository;
import se.su.dsv.scipro.milestones.service.ActivateCompletedMilestonesOnNewProjects;
import se.su.dsv.scipro.milestones.service.MilestoneActivityTemplateService;
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;
@ -98,7 +116,9 @@ import se.su.dsv.scipro.nonworkperiod.NonWorkDayPeriodServiceImpl;
import se.su.dsv.scipro.notes.NoteServiceImpl;
import se.su.dsv.scipro.notifications.NotificationController;
import se.su.dsv.scipro.notifications.NotificationControllerImpl;
import se.su.dsv.scipro.notifications.NotificationService;
import se.su.dsv.scipro.notifications.NotificationServiceImpl;
import se.su.dsv.scipro.notifications.Notifications;
import se.su.dsv.scipro.notifications.interfaces.NotificationMailFormatter;
import se.su.dsv.scipro.notifications.interfaces.impl.NotificationMailFormatterImpl;
import se.su.dsv.scipro.notifications.settings.service.DeliveryConfigurationService;
@ -153,6 +173,9 @@ import se.su.dsv.scipro.reviewing.ReviewerThreadRepository;
import se.su.dsv.scipro.reviewing.ReviewingServiceImpl;
import se.su.dsv.scipro.reviewing.RoughDraftApprovalService;
import se.su.dsv.scipro.reviewing.RoughDraftApprovalServiceImpl;
import se.su.dsv.scipro.security.auth.AuthenticationProvider;
import se.su.dsv.scipro.security.auth.AuthenticationServiceImpl;
import se.su.dsv.scipro.security.auth.LocalAuthentication;
import se.su.dsv.scipro.springdata.serviceimpls.SupervisorServiceImpl;
import se.su.dsv.scipro.springdata.serviceimpls.UnitServiceImpl;
import se.su.dsv.scipro.springdata.serviceimpls.UserProfileServiceImpl;
@ -168,6 +191,9 @@ import se.su.dsv.scipro.system.ExternalResourceServiceImpl;
import se.su.dsv.scipro.system.FooterLinkRepo;
import se.su.dsv.scipro.system.FooterLinkServiceImpl;
import se.su.dsv.scipro.system.LocalUserSearch;
import se.su.dsv.scipro.system.PasswordRepo;
import se.su.dsv.scipro.system.PasswordService;
import se.su.dsv.scipro.system.PasswordServiceImpl;
import se.su.dsv.scipro.system.ProjectTypeServiceImpl;
import se.su.dsv.scipro.system.ResearchAreaServiceImpl;
import se.su.dsv.scipro.system.UserNameServiceImpl;
@ -178,6 +204,7 @@ import se.su.dsv.scipro.thesislink.ExternalLinkServiceImpl;
import se.su.dsv.scipro.workerthreads.WorkerDataServiceImpl;
import java.time.Clock;
import java.util.Set;
@Configuration(proxyBeanMethods = false)
public class CoreConfig {
@ -300,6 +327,19 @@ public class CoreConfig {
return new ApplicationPeriodServiceImpl(em, clock);
}
@Bean
public AuthenticationServiceImpl authenticationService(Set<AuthenticationProvider> authenticationProviders) {
return new AuthenticationServiceImpl(authenticationProviders);
}
@Bean
public LocalAuthentication localAuthentication(
UserService userService,
PasswordService passwordService)
{
return new LocalAuthentication(userService, passwordService);
}
@Bean
public BasicForumServiceImpl basicForumService(
ForumPostRepository forumPostRepository,
@ -593,6 +633,11 @@ public class CoreConfig {
fileService, finalSeminarOppositionRepository);
}
@Bean
public PasswordServiceImpl passwordService(PasswordRepo passwordRepo) {
return new PasswordServiceImpl(passwordRepo);
}
@Bean
public PeerPortalImpl peerPortal(
FileService fileService,
@ -880,4 +925,135 @@ public class CoreConfig {
public CurrentUserFromWicketSession currentUserFromWicketSession() {
return new CurrentUserFromWicketSession();
}
@Bean
public ReviewingNotifications reviewingNotifications(
EventBus eventBus,
NotificationController notificationController,
GeneralSystemSettingsService generalSystemSettingsService,
WebApplication webApplication)
{
return new ReviewingNotifications(eventBus, notificationController, generalSystemSettingsService,
webApplication);
}
@Bean
public ReviewerSupportMailer reviewerSupportMailer(
EventBus eventBus,
GeneralSystemSettingsService generalSystemSettingsService,
MailEventService mailEventService)
{
return new ReviewerSupportMailer(eventBus, mailEventService, generalSystemSettingsService);
}
@Bean
public ReviewerAssignedNotifications reviewerAssignedNotifications(
EventBus eventBus,
NotificationController notificationController,
RoughDraftApprovalService roughDraftApprovalService,
FinalSeminarApprovalService finalSeminarApprovalService)
{
return new ReviewerAssignedNotifications(roughDraftApprovalService,
finalSeminarApprovalService, notificationController, eventBus);
}
@Bean
public ReviewerAssignedDeadline reviewerAssignedDeadline(
EventBus eventBus,
ReviewerDeadlineSettingsService reviewerDeadlineSettingsService,
RoughDraftApprovalService roughDraftApprovalService,
FinalSeminarApprovalService finalSeminarApprovalService,
DaysService daysService,
Clock clock)
{
return new ReviewerAssignedDeadline(roughDraftApprovalService, finalSeminarApprovalService,
reviewerDeadlineSettingsService, daysService, eventBus, clock);
}
@Bean
public ForwardPhase2Feedback forwardPhase2Feedback(
EventBus eventBus,
WebApplication webApplication,
ProjectForumService projectForumService)
{
return new ForwardPhase2Feedback(webApplication, projectForumService, eventBus);
}
@Bean
public DataInitializer dataInitializer() {
return new DataInitializer();
}
@Bean
public FinalSeminarActivityHandler finalSeminarActivityHandler(
ActivityPlanFacade activityPlanFacade,
ActivityFinalSeminarRepository activityFinalSeminarRepository,
EventBus eventBus)
{
return new FinalSeminarActivityHandler(activityPlanFacade, activityFinalSeminarRepository, eventBus);
}
@Bean
public PostActivityUploadToForum postActivityUploadToForum(
EventBus eventBus,
ProjectForumService projectForumService,
ActivityThreadRepository activityThreadRepository)
{
return new PostActivityUploadToForum(projectForumService, activityThreadRepository, eventBus);
}
@Bean
public ForumNotifications forumNotifications(
EventBus eventBus,
NotificationController notificationController,
ForumNotificationRepository forumNotificationRepository,
NotificationService notificationService)
{
return new ForumNotifications(eventBus, notificationController, forumNotificationRepository,
notificationService);
}
@Bean
public ActivateCompletedMilestonesOnNewProjects activateCompletedMilestonesOnNewProjects(
EventBus eventBus,
MilestoneServiceImpl milestoneService,
PeerReviewService peerReviewService,
MilestoneActivityTemplateService milestoneActivityTemplateService,
FinalSeminarService finalSeminarService)
{
return new ActivateCompletedMilestonesOnNewProjects(peerReviewService, milestoneActivityTemplateService,
milestoneService, eventBus, finalSeminarService);
}
@Bean
public FinalSeminarCreationSubscribers finalSeminarCreationSubscribers(
EventBus eventBus,
FinalSeminarServiceImpl finalSeminarService,
NotificationController notificationController,
AuthorRepository authorRepository)
{
return new FinalSeminarCreationSubscribers(authorRepository, finalSeminarService, notificationController, eventBus);
}
@Bean
public ProjectStartNotifier projectStartNotifier(EventBus eventBus, NotificationController notificationController) {
return new ProjectStartNotifier(eventBus, notificationController);
}
@Bean
public AddActivityPlanOnProjectStart addActivityPlanOnProjectStart(
ActivityPlanFacade activityPlanFacade,
EventBus eventBus)
{
return new AddActivityPlanOnProjectStart(activityPlanFacade, eventBus);
}
@Bean
public Notifications notifications(
EventBus eventBus,
NotificationController notificationController,
NotificationService notificationService)
{
return new Notifications(notificationController, notificationService, eventBus);
}
}

@ -18,20 +18,19 @@ import se.su.dsv.scipro.forum.ForumPostReadStateRepositoryImpl;
import se.su.dsv.scipro.forum.ForumPostRepositoryImpl;
import se.su.dsv.scipro.forum.GroupThreadRepositoryImpl;
import se.su.dsv.scipro.forum.ProjectThreadRepositoryImpl;
import se.su.dsv.scipro.forum.notifications.ForumNotificationRepositoryImpl;
import se.su.dsv.scipro.grading.GradingHistoryEventRepositoryImpl;
import se.su.dsv.scipro.grading.NationalSubjectCategoryRepositoryImpl;
import se.su.dsv.scipro.grading.PublicationMetadataRepository;
import se.su.dsv.scipro.grading.PublicationMetadataRepositoryImpl;
import se.su.dsv.scipro.integration.activityfinalseminar.ActivityFinalSeminarRepositoryImpl;
import se.su.dsv.scipro.integration.activityforum.ActivityThreadRepositoryImpl;
import se.su.dsv.scipro.match.FirstMeetingRepositoryImpl;
import se.su.dsv.scipro.match.IdeaRepositoryImpl;
import se.su.dsv.scipro.match.TargetRepositoryImpl;
import se.su.dsv.scipro.milestones.MilestoneActivityTemplateRepositoryImpl;
import se.su.dsv.scipro.peer.CommentThreadRepoImpl;
import se.su.dsv.scipro.peer.PeerPortalImpl;
import se.su.dsv.scipro.peer.PeerRequestRepositoryImpl;
import se.su.dsv.scipro.peer.PeerReviewRepositoryImpl;
import se.su.dsv.scipro.peer.PerformReviewService;
import se.su.dsv.scipro.plagiarism.PlagiarismRequestRepositoryImpl;
import se.su.dsv.scipro.plagiarism.urkund.UrkundSettingsRepositoryImpl;
import se.su.dsv.scipro.plagiarism.urkund.UrkundSubmissionRepositoryImpl;
@ -67,6 +66,11 @@ public class RepositoryConfiguration {
return new ActivityFinalSeminarRepositoryImpl(em);
}
@Bean
public ActivityThreadRepositoryImpl activityThreadRepository(Provider<EntityManager> em) {
return new ActivityThreadRepositoryImpl(em);
}
@Bean
public AuthorRepositoryImpl authorRepository(Provider<EntityManager> em) {
return new AuthorRepositoryImpl(em);
@ -132,6 +136,11 @@ public class RepositoryConfiguration {
return new FooterLinkRepoImpl(em);
}
@Bean
public ForumNotificationRepositoryImpl forumNotificationRepository(Provider<EntityManager> em) {
return new ForumNotificationRepositoryImpl(em);
}
@Bean
public ForumPostReadStateRepositoryImpl forumPostReadStateRepository(Provider<EntityManager> em) {
return new ForumPostReadStateRepositoryImpl(em);