Added missing @Bean definitions

This commit is contained in:
Andreas Svanberg 2024-05-30 12:36:11 +02:00
parent b25212efcc
commit bae694b888
5 changed files with 220 additions and 5 deletions

@ -2,7 +2,7 @@ package se.su.dsv.scipro.grading;
import se.su.dsv.scipro.project.Project;
interface PublicationMetadataRepository {
public interface PublicationMetadataRepository {
void save(PublicationMetadata publicationMetadata);
PublicationMetadata findByProject(Project project);

@ -8,9 +8,9 @@ import se.su.dsv.scipro.system.AbstractRepository;
import jakarta.inject.Inject;
import jakarta.inject.Provider;
class PublicationMetadataRepositoryImpl extends AbstractRepository implements PublicationMetadataRepository {
public class PublicationMetadataRepositoryImpl extends AbstractRepository implements PublicationMetadataRepository {
@Inject
PublicationMetadataRepositoryImpl(Provider<EntityManager> em) {
public PublicationMetadataRepositoryImpl(Provider<EntityManager> em) {
super(em);
}

@ -6,11 +6,11 @@ import se.su.dsv.scipro.system.Language;
import jakarta.inject.Inject;
import java.util.Objects;
class PublicationMetadataServiceImpl implements PublicationMetadataService {
public class PublicationMetadataServiceImpl implements PublicationMetadataService {
private final PublicationMetadataRepository publicationMetadataRepository;
@Inject
PublicationMetadataServiceImpl(PublicationMetadataRepository publicationMetadataRepository) {
public PublicationMetadataServiceImpl(PublicationMetadataRepository publicationMetadataRepository) {
this.publicationMetadataRepository = publicationMetadataRepository;
}

@ -4,6 +4,7 @@ import com.google.common.eventbus.EventBus;
import jakarta.inject.Provider;
import jakarta.persistence.EntityManager;
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;
@ -34,20 +35,43 @@ import se.su.dsv.scipro.finalseminar.FinalSeminarOppositionRepo;
import se.su.dsv.scipro.finalseminar.FinalSeminarOppositionServiceImpl;
import se.su.dsv.scipro.finalseminar.FinalSeminarRepository;
import se.su.dsv.scipro.finalseminar.FinalSeminarRespondentServiceImpl;
import se.su.dsv.scipro.finalseminar.FinalSeminarService;
import se.su.dsv.scipro.finalseminar.FinalSeminarServiceImpl;
import se.su.dsv.scipro.finalseminar.FinalSeminarSettingsService;
import se.su.dsv.scipro.finalseminar.FinalSeminarSettingsServiceImpl;
import se.su.dsv.scipro.finalseminar.FinalSeminarUploadControllerImpl;
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.FirstMeetingServiceImpl;
import se.su.dsv.scipro.forum.AbstractThreadRepository;
import se.su.dsv.scipro.forum.BasicForumService;
import se.su.dsv.scipro.forum.BasicForumServiceImpl;
import se.su.dsv.scipro.forum.ForumPostReadStateRepository;
import se.su.dsv.scipro.forum.ForumPostRepository;
import se.su.dsv.scipro.forum.GroupForumService;
import se.su.dsv.scipro.forum.GroupForumServiceImpl;
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.gdpr.ZipReporter;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsService;
import se.su.dsv.scipro.generalsystemsettings.GeneralSystemSettingsServiceImpl;
import se.su.dsv.scipro.grading.GradingHistory;
import se.su.dsv.scipro.grading.GradingHistoryEventRepository;
import se.su.dsv.scipro.grading.GradingServiceImpl;
import se.su.dsv.scipro.grading.NationalSubjectCategoryRepository;
import se.su.dsv.scipro.grading.NationalSubjectCategoryServiceImpl;
import se.su.dsv.scipro.grading.PublicationMetadataRepository;
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.mail.MailEventService;
import se.su.dsv.scipro.mail.MailEventServiceImpl;
import se.su.dsv.scipro.match.ApplicationPeriodFacadeImpl;
import se.su.dsv.scipro.match.ApplicationPeriodProjectTypeServiceImpl;
import se.su.dsv.scipro.match.ApplicationPeriodService;
import se.su.dsv.scipro.match.ApplicationPeriodServiceImpl;
@ -56,13 +80,17 @@ import se.su.dsv.scipro.match.IdeaRepository;
import se.su.dsv.scipro.match.IdeaService;
import se.su.dsv.scipro.match.IdeaServiceImpl;
import se.su.dsv.scipro.match.KeywordServiceImpl;
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.TargetRepository;
import se.su.dsv.scipro.match.TargetServiceImpl;
import se.su.dsv.scipro.milestones.MilestoneActivityTemplateRepository;
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;
@ -77,10 +105,15 @@ import se.su.dsv.scipro.notifications.settings.service.DeliveryConfigurationServ
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.oauth.OAuthServiceImpl;
import se.su.dsv.scipro.oauth.OAuthSettings;
import se.su.dsv.scipro.peer.CommentServiceImpl;
import se.su.dsv.scipro.peer.PeerPortalImpl;
import se.su.dsv.scipro.peer.PeerRequestRepository;
import se.su.dsv.scipro.peer.PeerRequestService;
import se.su.dsv.scipro.peer.PeerRequestServiceImpl;
import se.su.dsv.scipro.peer.PeerReviewRepository;
import se.su.dsv.scipro.peer.PeerReviewService;
import se.su.dsv.scipro.peer.PeerReviewServiceImpl;
import se.su.dsv.scipro.plagiarism.PlagiarismControl;
import se.su.dsv.scipro.plagiarism.PlagiarismControlImpl;
@ -97,6 +130,7 @@ import se.su.dsv.scipro.project.ProjectServiceImpl;
import se.su.dsv.scipro.projectpartner.ProjectPartnerServiceImpl;
import se.su.dsv.scipro.reflection.ReflectionService;
import se.su.dsv.scipro.reflection.ReflectionServiceImpl;
import se.su.dsv.scipro.report.GradeCalculatorServiceImpl;
import se.su.dsv.scipro.report.GradingReportService;
import se.su.dsv.scipro.report.GradingReportServiceImpl;
import se.su.dsv.scipro.report.GradingReportTemplateRepo;
@ -104,13 +138,18 @@ import se.su.dsv.scipro.report.OppositionReportRepo;
import se.su.dsv.scipro.report.OppositionReportServiceImpl;
import se.su.dsv.scipro.report.ReportServiceImpl;
import se.su.dsv.scipro.reviewing.DecisionRepository;
import se.su.dsv.scipro.reviewing.FinalSeminarApprovalService;
import se.su.dsv.scipro.reviewing.FinalSeminarApprovalServiceImpl;
import se.su.dsv.scipro.reviewing.ProjectFinalSeminarStatisticsServiceImpl;
import se.su.dsv.scipro.reviewing.ReviewerCapacityServiceImpl;
import se.su.dsv.scipro.reviewing.ReviewerDeadlineFollowupServiceImpl;
import se.su.dsv.scipro.reviewing.ReviewerDeadlineSettingsRepository;
import se.su.dsv.scipro.reviewing.ReviewerDeadlineSettingsService;
import se.su.dsv.scipro.reviewing.ReviewerDeadlineSettingsServiceImpl;
import se.su.dsv.scipro.reviewing.ReviewerInteractionService;
import se.su.dsv.scipro.reviewing.ReviewerInteractionServiceImpl;
import se.su.dsv.scipro.reviewing.ReviewerTargetRepository;
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;
@ -125,11 +164,14 @@ import se.su.dsv.scipro.survey.SurveyRepository;
import se.su.dsv.scipro.survey.SurveyServiceImpl;
import se.su.dsv.scipro.system.CurrentUser;
import se.su.dsv.scipro.system.EventServiceImpl;
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.ProjectTypeServiceImpl;
import se.su.dsv.scipro.system.ResearchAreaServiceImpl;
import se.su.dsv.scipro.system.UserNameServiceImpl;
import se.su.dsv.scipro.system.UserRepo;
import se.su.dsv.scipro.system.UserService;
import se.su.dsv.scipro.system.UserServiceImpl;
import se.su.dsv.scipro.thesislink.ExternalLinkServiceImpl;
@ -188,6 +230,11 @@ public class CoreConfig {
return new GradingServiceImpl(url);
}
@Bean
public OAuthServiceImpl oAuthService(OAuthSettings settings) {
return new OAuthServiceImpl(settings);
}
@Bean
public FinalSeminarApprovalServiceImpl finalSeminarApprovalService(
Provider<EntityManager> em,
@ -238,6 +285,11 @@ public class CoreConfig {
fileService);
}
@Bean
public ApplicationPeriodFacadeImpl applicationPeriodFacade() {
return new ApplicationPeriodFacadeImpl();
}
@Bean
public ApplicationPeriodProjectTypeServiceImpl applicationPeriodProjectTypeService(Provider<EntityManager> em) {
return new ApplicationPeriodProjectTypeServiceImpl(em);
@ -248,6 +300,18 @@ public class CoreConfig {
return new ApplicationPeriodServiceImpl(em, clock);
}
@Bean
public BasicForumServiceImpl basicForumService(
ForumPostRepository forumPostRepository,
ForumPostReadStateRepository readStateRepository,
AbstractThreadRepository threadRepository,
FileService fileService,
EventBus eventBus)
{
return new BasicForumServiceImpl(forumPostRepository, readStateRepository, threadRepository, fileService,
eventBus);
}
@Bean
public ChecklistAnswerServiceImpl checklistAnswerService(Provider<EntityManager> em) {
return new ChecklistAnswerServiceImpl(em);
@ -296,6 +360,11 @@ public class CoreConfig {
return new ExternalLinkServiceImpl(em);
}
@Bean
public ExternalResourceServiceImpl externalResourceService(Provider<EntityManager> em) {
return new ExternalResourceServiceImpl(em);
}
@Bean
public FileServiceImpl fileService(
Provider<EntityManager> em,
@ -350,6 +419,20 @@ public class CoreConfig {
return new FinalSeminarSettingsServiceImpl(em);
}
@Bean
public FinalSeminarUploadControllerImpl finalSeminarUploadController(
EventBus eventBus,
FileService fileService,
FinalSeminarService finalSeminarService,
ProjectFileService projectFileService,
ProjectService projectService,
FinalSeminarSettingsService finalSeminarSettingsService,
PlagiarismControl plagiarismControl)
{
return new FinalSeminarUploadControllerImpl(projectService, fileService, finalSeminarSettingsService,
finalSeminarService, eventBus, projectFileService, plagiarismControl);
}
@Bean
public FinalThesisServiceImpl finalThesisService(
Provider<EntityManager> em,
@ -382,6 +465,11 @@ public class CoreConfig {
return new GeneralSystemSettingsServiceImpl(em);
}
@Bean
public GradeCalculatorServiceImpl gradeCalculatorService() {
return new GradeCalculatorServiceImpl();
}
@Bean
public GradingReportServiceImpl gradingReportService(
Provider<EntityManager> em,
@ -392,6 +480,15 @@ public class CoreConfig {
return new GradingReportServiceImpl(em, eventBus, thesisSubmissionHistoryService, clock);
}
@Bean
public GroupForumServiceImpl groupForumService(
EventBus eventBus,
GroupThreadRepository groupThreadRepository,
BasicForumService basicForumService)
{
return new GroupForumServiceImpl(groupThreadRepository, basicForumService, eventBus);
}
@Bean
public GroupServiceImpl groupService(Provider<EntityManager> em) {
return new GroupServiceImpl(em);
@ -418,16 +515,33 @@ public class CoreConfig {
return new KeywordServiceImpl(em);
}
@Bean
public LocalUserSearch localUserSearch(UserRepo userRepository) {
return new LocalUserSearch(userRepository);
}
@Bean
public MailEventServiceImpl mailEventService(Provider<EntityManager> em) {
return new MailEventServiceImpl(em);
}
@Bean
public MatchFollowUpServiceImpl matchFollowUpService(Provider<EntityManager> em) {
return new MatchFollowUpServiceImpl(em);
}
@Bean
public MatchServiceImpl matchService(Provider<EntityManager> em) {
return new MatchServiceImpl(em);
}
@Bean
public MilestoneActivityTemplateServiceImpl milestoneActivityTemplateService(
MilestoneActivityTemplateRepository milestoneActivityTemplateRepository)
{
return new MilestoneActivityTemplateServiceImpl(milestoneActivityTemplateRepository);
}
@Bean
public MilestonePhaseTemplateServiceImpl milestonePhaseTemplateService(Provider<EntityManager> em) {
return new MilestonePhaseTemplateServiceImpl(em);
@ -441,6 +555,18 @@ public class CoreConfig {
return new MilestoneServiceImpl(notificationController, em);
}
@Bean
public MilestoneStatisticsServiceImpl milestoneStatisticsService(Provider<EntityManager> em) {
return new MilestoneStatisticsServiceImpl(em);
}
@Bean
public NationalSubjectCategoryServiceImpl nationalSubjectCategoryService(
NationalSubjectCategoryRepository nationalSubjectCategoryRepository)
{
return new NationalSubjectCategoryServiceImpl(nationalSubjectCategoryRepository);
}
@Bean
public NonWorkDayPeriodServiceImpl nonWorkDayPeriodService(Provider<EntityManager> em) {
return new NonWorkDayPeriodServiceImpl(em);
@ -467,6 +593,20 @@ public class CoreConfig {
fileService, finalSeminarOppositionRepository);
}
@Bean
public PeerPortalImpl peerPortal(
FileService fileService,
PeerReviewRepository peerReviewRepository,
PeerRequestRepository peerRequestRepository,
EventBus eventBus,
ProjectFileService projectFileService,
DaysService daisyService,
Clock clock)
{
return new PeerPortalImpl(fileService, peerReviewRepository, peerRequestRepository,
eventBus, projectFileService, daisyService, clock);
}
@Bean
public PeerRequestServiceImpl peerRequestService(
Provider<EntityManager> em,
@ -516,6 +656,18 @@ public class CoreConfig {
return new ProjectFinalSeminarStatisticsServiceImpl(em);
}
@Bean
public ProjectForumServiceImpl projectForumService(
EventBus eventBus,
BasicForumService basicForumService,
ProjectThreadRepository projectThreadRepository,
ForumPostRepository postRepository,
ProjectFileService projectFileService)
{
return new ProjectForumServiceImpl(projectThreadRepository,
postRepository, projectFileService, basicForumService, eventBus);
}
@Bean
public ProjectPartnerServiceImpl projectPartnerService(Provider<EntityManager> em) {
return new ProjectPartnerServiceImpl(em);
@ -541,6 +693,19 @@ public class CoreConfig {
return new ProjectTypeServiceImpl(em);
}
@Bean
public PublicationMetadataServiceImpl publicationMetadataService(
PublicationMetadataRepository publicationMetadataRepository)
{
return new PublicationMetadataServiceImpl(publicationMetadataRepository);
}
@Bean
@ConditionalOnMissingBean(PublishingConsentService.class)
public PublishingConsentUnavailable publishingConsentService() {
return new PublishingConsentUnavailable();
}
@Bean
public ReflectionServiceImpl reflectionService(
AuthorRepository authorRepository,
@ -554,6 +719,32 @@ public class CoreConfig {
return new ReceiverConfigurationServiceImpl(em);
}
@Bean
public ReviewerDeadlineFollowupServiceImpl reviewerDeadlineFollowupService(Provider<EntityManager> em) {
return new ReviewerDeadlineFollowupServiceImpl(em);
}
@Bean
public ZipReporter reporter(
FileService fileService,
ProjectService projectService,
FinalSeminarService finalSeminarService,
ProjectForumService projectForumService,
PeerReviewService peerReviewService,
PeerRequestService peerRequestService,
GroupService groupService,
GroupForumService groupForumService,
IdeaService ideaService,
GradingReportService gradingReportService,
ReviewerInteractionService reviewerInteractionService,
RoughDraftApprovalService roughDraftApprovalService,
FinalSeminarApprovalService finalSeminarApprovalService)
{
return new ZipReporter(fileService, projectService, finalSeminarService, projectForumService, peerReviewService,
peerRequestService, groupService, groupForumService, ideaService, gradingReportService,
reviewerInteractionService, roughDraftApprovalService, finalSeminarApprovalService);
}
@Bean
public ReportServiceImpl reportService(Provider<EntityManager> em, FileService fileService) {
return new ReportServiceImpl(em, fileService);
@ -564,6 +755,15 @@ public class CoreConfig {
return new ResearchAreaServiceImpl(em);
}
@Bean
public ReviewerInteractionServiceImpl reviewerInteractionService(
ReviewerThreadRepository reviewerThreadRepository,
BasicForumService forumService,
EventBus eventBus)
{
return new ReviewerInteractionServiceImpl(reviewerThreadRepository, forumService, eventBus);
}
@Bean
public ReviewingServiceImpl reviewingService(
Provider<EntityManager> em,

@ -19,14 +19,19 @@ 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.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.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;
@ -157,6 +162,11 @@ public class RepositoryConfiguration {
return new MilestoneActivityTemplateRepositoryImpl(em);
}
@Bean
public NationalSubjectCategoryRepositoryImpl nationalSubjectCategoryRepository(Provider<EntityManager> em) {
return new NationalSubjectCategoryRepositoryImpl(em);
}
@Bean
public OppositionReportRepoImpl oppositionReportRepo(Provider<EntityManager> em) {
return new OppositionReportRepoImpl(em);
@ -192,6 +202,11 @@ public class RepositoryConfiguration {
return new ProjectThreadRepositoryImpl(em);
}
@Bean
public PublicationMetadataRepositoryImpl publicationMetadataRepository(Provider<EntityManager> em) {
return new PublicationMetadataRepositoryImpl(em);
}
@Bean
public QuestionRepositoryImpl questionRepository(Provider<EntityManager> em) {
return new QuestionRepositoryImpl(em);