From 3ce516e6fa2382ff686f4d46d9f7b005de137fa2 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Wed, 31 Jul 2024 09:42:40 +0200
Subject: [PATCH] OZG-6280 cleanup async configuration - centre it for
 test/prod

---
 .../ozgcloud/alfa/AlfaServerApplication.java  | 31 ----------
 .../ozgcloud/alfa/AlfaServerApplication.java  | 52 ----------------
 .../de/ozgcloud/alfa/AsyncConfiguration.java  | 60 +++++++++++++++++++
 3 files changed, 60 insertions(+), 83 deletions(-)
 create mode 100644 alfa-service/src/test/java/de/ozgcloud/alfa/AsyncConfiguration.java

diff --git a/alfa-server/src/main/java/de/ozgcloud/alfa/AlfaServerApplication.java b/alfa-server/src/main/java/de/ozgcloud/alfa/AlfaServerApplication.java
index a068f09f0d..331440dbf8 100644
--- a/alfa-server/src/main/java/de/ozgcloud/alfa/AlfaServerApplication.java
+++ b/alfa-server/src/main/java/de/ozgcloud/alfa/AlfaServerApplication.java
@@ -25,17 +25,11 @@ package de.ozgcloud.alfa;
 
 import java.util.TimeZone;
 
-import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import org.springframework.security.concurrent.DelegatingSecurityContextRunnable;
-import org.springframework.web.filter.ForwardedHeaderFilter;
 
 @SpringBootApplication
 @EnableAsync
@@ -48,29 +42,4 @@ public class AlfaServerApplication {
 		SpringApplication.run(AlfaServerApplication.class, args);
 	}
 
-	@Bean
-	FilterRegistrationBean<ForwardedHeaderFilter> forwardedHeaderFilter() {
-		FilterRegistrationBean<ForwardedHeaderFilter> bean = new FilterRegistrationBean<>();
-		bean.setFilter(new ForwardedHeaderFilter());
-		return bean;
-	}
-
-	@Bean
-	ThreadPoolTaskExecutor threadPoolTaskExecutor() {
-		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
-
-		executor.setThreadNamePrefix("async-");
-		executor.setTaskDecorator(DelegatingSecurityContextRunnable::new);
-		return executor;
-	}
-
-	@Bean
-	CallScope callScope() {
-		return new CallScope();
-	}
-
-	@Bean
-	BeanFactoryPostProcessor beanFactoryPostProcessor(CallScope callScope) {
-		return new CallBeanFactoryPostProcessor(callScope);
-	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/AlfaServerApplication.java b/alfa-service/src/test/java/de/ozgcloud/alfa/AlfaServerApplication.java
index a27afe909e..331440dbf8 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/AlfaServerApplication.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/AlfaServerApplication.java
@@ -25,21 +25,11 @@ package de.ozgcloud.alfa;
 
 import java.util.TimeZone;
 
-import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.task.ThreadPoolTaskExecutorBuilder;
-import org.springframework.boot.task.ThreadPoolTaskExecutorCustomizer;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
-import org.springframework.context.annotation.Primary;
-import org.springframework.core.task.TaskExecutor;
 import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
-import org.springframework.security.concurrent.DelegatingSecurityContextRunnable;
-import org.springframework.web.filter.ForwardedHeaderFilter;
 
 @SpringBootApplication
 @EnableAsync
@@ -52,46 +42,4 @@ public class AlfaServerApplication {
 		SpringApplication.run(AlfaServerApplication.class, args);
 	}
 
-	@Bean
-	ThreadPoolTaskExecutorCustomizer addSecurityContextCustomizer() {
-		return customizer -> customizer.setTaskDecorator(DelegatingSecurityContextRunnable::new);
-
-	}
-
-	@Bean
-	ThreadPoolTaskExecutorCustomizer setThreadName() {
-		return customizer -> customizer.setThreadNamePrefix("ozgtask-");
-	}
-
-	@Bean("taskExecutor")
-	@Primary
-	TaskExecutor taskExecutor(ThreadPoolTaskExecutorBuilder builder) {
-		return builder.build();
-	}
-
-//	@Bean
-	FilterRegistrationBean<ForwardedHeaderFilter> forwardedHeaderFilter() {
-		FilterRegistrationBean<ForwardedHeaderFilter> bean = new FilterRegistrationBean<>();
-		bean.setFilter(new ForwardedHeaderFilter());
-		return bean;
-	}
-
-//	@Bean
-	ThreadPoolTaskExecutor threadPoolTaskExecutor() {
-		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
-
-		executor.setThreadNamePrefix("async-");
-		executor.setTaskDecorator(DelegatingSecurityContextRunnable::new);
-		return executor;
-	}
-
-	@Bean
-	CallScope callScope() {
-		return new CallScope();
-	}
-
-	@Bean
-	BeanFactoryPostProcessor beanFactoryPostProcessor(CallScope callScope) {
-		return new CallBeanFactoryPostProcessor(callScope);
-	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/AsyncConfiguration.java b/alfa-service/src/test/java/de/ozgcloud/alfa/AsyncConfiguration.java
new file mode 100644
index 0000000000..36df96d9b9
--- /dev/null
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/AsyncConfiguration.java
@@ -0,0 +1,60 @@
+package de.ozgcloud.alfa;
+
+import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
+import org.springframework.boot.task.ThreadPoolTaskExecutorBuilder;
+import org.springframework.boot.task.ThreadPoolTaskExecutorCustomizer;
+import org.springframework.boot.web.servlet.FilterRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.task.AsyncTaskExecutor;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import org.springframework.security.concurrent.DelegatingSecurityContextRunnable;
+import org.springframework.web.filter.ForwardedHeaderFilter;
+
+@Configuration
+class AsyncConfiguration {
+
+	@Bean
+	ThreadPoolTaskExecutorCustomizer addSecurityContextCustomizer() {
+		return customizer -> customizer.setTaskDecorator(DelegatingSecurityContextRunnable::new);
+
+	}
+
+	@Bean
+	ThreadPoolTaskExecutorCustomizer setThreadName() {
+		return customizer -> customizer.setThreadNamePrefix("ozgtask-");
+	}
+
+	@Bean("taskExecutor")
+	@Primary
+	AsyncTaskExecutor taskExecutor(ThreadPoolTaskExecutorBuilder builder) {
+		return builder.build();
+	}
+
+//	@Bean
+	FilterRegistrationBean<ForwardedHeaderFilter> forwardedHeaderFilter() {
+		FilterRegistrationBean<ForwardedHeaderFilter> bean = new FilterRegistrationBean<>();
+		bean.setFilter(new ForwardedHeaderFilter());
+		return bean;
+	}
+
+//	@Bean
+	ThreadPoolTaskExecutor threadPoolTaskExecutor() {
+		ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+
+		executor.setThreadNamePrefix("async-");
+		executor.setTaskDecorator(DelegatingSecurityContextRunnable::new);
+		return executor;
+	}
+
+	@Bean
+	CallScope callScope() {
+		return new CallScope();
+	}
+
+	@Bean
+	BeanFactoryPostProcessor beanFactoryPostProcessor(CallScope callScope) {
+		return new CallBeanFactoryPostProcessor(callScope);
+	}
+}
-- 
GitLab