From 3a5b462d2fe0b3b2629bc527e0ab096bdd7d6559 Mon Sep 17 00:00:00 2001
From: Andreas Svanberg <andreass@dsv.su.se>
Date: Thu, 30 May 2024 12:51:45 +0200
Subject: [PATCH] Enforce injecting dependencies via parameters instead of
 direct method calling in @Bean definitions.

This is done to cause extra pain for classes with too many dependencies in the hopes that it will be re-architectured in a better way with fewer dependencies.
---
 war/src/main/java/se/su/dsv/scipro/war/ApiConfig.java           | 2 +-
 war/src/main/java/se/su/dsv/scipro/war/CoreConfig.java          | 2 +-
 war/src/main/java/se/su/dsv/scipro/war/MailConfig.java          | 2 +-
 war/src/main/java/se/su/dsv/scipro/war/Main.java                | 2 +-
 .../main/java/se/su/dsv/scipro/war/RepositoryConfiguration.java | 2 +-
 war/src/main/java/se/su/dsv/scipro/war/WorkerConfig.java        | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/war/src/main/java/se/su/dsv/scipro/war/ApiConfig.java b/war/src/main/java/se/su/dsv/scipro/war/ApiConfig.java
index efef48e1c5..74376a468f 100644
--- a/war/src/main/java/se/su/dsv/scipro/war/ApiConfig.java
+++ b/war/src/main/java/se/su/dsv/scipro/war/ApiConfig.java
@@ -10,7 +10,7 @@ import org.springframework.security.web.SecurityFilterChain;
 import org.springframework.security.web.servlet.util.matcher.MvcRequestMatcher;
 import org.springframework.web.servlet.handler.HandlerMappingIntrospector;
 
-@Configuration
+@Configuration(proxyBeanMethods = false)
 @ComponentScan("se.su.dsv.scipro.api")
 public class ApiConfig {
     @Bean
diff --git a/war/src/main/java/se/su/dsv/scipro/war/CoreConfig.java b/war/src/main/java/se/su/dsv/scipro/war/CoreConfig.java
index 741f13ba93..de0b76037f 100644
--- a/war/src/main/java/se/su/dsv/scipro/war/CoreConfig.java
+++ b/war/src/main/java/se/su/dsv/scipro/war/CoreConfig.java
@@ -179,7 +179,7 @@ import se.su.dsv.scipro.workerthreads.WorkerDataServiceImpl;
 
 import java.time.Clock;
 
-@Configuration
+@Configuration(proxyBeanMethods = false)
 public class CoreConfig {
     @Bean
     public EventBus eventBus() {
diff --git a/war/src/main/java/se/su/dsv/scipro/war/MailConfig.java b/war/src/main/java/se/su/dsv/scipro/war/MailConfig.java
index 35b7a0ff64..a96c89f56c 100644
--- a/war/src/main/java/se/su/dsv/scipro/war/MailConfig.java
+++ b/war/src/main/java/se/su/dsv/scipro/war/MailConfig.java
@@ -14,7 +14,7 @@ import se.su.dsv.scipro.profiles.CurrentProfile;
 
 import java.util.Properties;
 
-@Configuration
+@Configuration(proxyBeanMethods = false)
 public class MailConfig {
     @Bean
     public MailFacade mailFacade() {
diff --git a/war/src/main/java/se/su/dsv/scipro/war/Main.java b/war/src/main/java/se/su/dsv/scipro/war/Main.java
index 705dff06b5..083ac279c4 100644
--- a/war/src/main/java/se/su/dsv/scipro/war/Main.java
+++ b/war/src/main/java/se/su/dsv/scipro/war/Main.java
@@ -36,7 +36,7 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 
-@SpringBootApplication
+@SpringBootApplication(proxyBeanMethods = false)
 @EntityScan("se.su.dsv.scipro")
 @Import({CoreConfig.class, ApiConfig.class, WorkerConfig.class, MailConfig.class, RepositoryConfiguration.class})
 public class Main extends SpringBootServletInitializer implements ServletContainerInitializer {
diff --git a/war/src/main/java/se/su/dsv/scipro/war/RepositoryConfiguration.java b/war/src/main/java/se/su/dsv/scipro/war/RepositoryConfiguration.java
index abd314175e..f984765ff8 100644
--- a/war/src/main/java/se/su/dsv/scipro/war/RepositoryConfiguration.java
+++ b/war/src/main/java/se/su/dsv/scipro/war/RepositoryConfiguration.java
@@ -50,7 +50,7 @@ import se.su.dsv.scipro.system.FooterLinkRepoImpl;
 import se.su.dsv.scipro.system.PasswordRepoImpl;
 import se.su.dsv.scipro.system.UserRepoImpl;
 
-@Configuration
+@Configuration(proxyBeanMethods = false)
 public class RepositoryConfiguration {
     @Bean
     public GradingHistoryEventRepositoryImpl gradingHistoryEventRepository(Provider<EntityManager> em) {
diff --git a/war/src/main/java/se/su/dsv/scipro/war/WorkerConfig.java b/war/src/main/java/se/su/dsv/scipro/war/WorkerConfig.java
index 6aab83115e..690774f4ed 100644
--- a/war/src/main/java/se/su/dsv/scipro/war/WorkerConfig.java
+++ b/war/src/main/java/se/su/dsv/scipro/war/WorkerConfig.java
@@ -50,7 +50,7 @@ import java.time.Clock;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 
-@Configuration
+@Configuration(proxyBeanMethods = false)
 @Import(WorkerConfig.Workers.class)
 public class WorkerConfig {
     private static final int NUMBER_OF_WORKER_THREADS = 4;