From ee03d9a49ad0e4349ad92e03bd86b1eaec9390b9 Mon Sep 17 00:00:00 2001 From: "angel.herce" Date: Mon, 28 Apr 2025 09:16:25 +0200 Subject: [PATCH] feat: Add filter to auto remove temp files --- .../file/DefaultTemporalFileManager.java | 5 --- .../sdms/rest/filter/TemporalFilesFilter.java | 31 +++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 ontimize-jee-sdms-rest/src/main/java/com/ontimize/jee/sdms/rest/filter/TemporalFilesFilter.java diff --git a/ontimize-jee-sdms-common/src/main/java/com/ontimize/jee/sdms/common/file/DefaultTemporalFileManager.java b/ontimize-jee-sdms-common/src/main/java/com/ontimize/jee/sdms/common/file/DefaultTemporalFileManager.java index d82f8fb..1dbcc66 100644 --- a/ontimize-jee-sdms-common/src/main/java/com/ontimize/jee/sdms/common/file/DefaultTemporalFileManager.java +++ b/ontimize-jee-sdms-common/src/main/java/com/ontimize/jee/sdms/common/file/DefaultTemporalFileManager.java @@ -1,10 +1,7 @@ package com.ontimize.jee.sdms.common.file; -import jakarta.annotation.PreDestroy; import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.stereotype.Component; -import org.springframework.web.context.annotation.RequestScope; import java.io.File; import java.io.FileOutputStream; @@ -17,7 +14,6 @@ import java.util.UUID; @Component -@RequestScope( proxyMode = ScopedProxyMode.TARGET_CLASS ) public class DefaultTemporalFileManager implements TemporalFileManager{ @Value( "${ontimize.sdms.file.temporal.directory}" ) @@ -55,7 +51,6 @@ public void delete( final File file ) throws IOException { } } - @PreDestroy @Override public void cleanUp() throws IOException { for( final File file : this.files ){ diff --git a/ontimize-jee-sdms-rest/src/main/java/com/ontimize/jee/sdms/rest/filter/TemporalFilesFilter.java b/ontimize-jee-sdms-rest/src/main/java/com/ontimize/jee/sdms/rest/filter/TemporalFilesFilter.java new file mode 100644 index 0000000..8b9eb56 --- /dev/null +++ b/ontimize-jee-sdms-rest/src/main/java/com/ontimize/jee/sdms/rest/filter/TemporalFilesFilter.java @@ -0,0 +1,31 @@ +package com.ontimize.jee.sdms.rest.filter; + +import com.ontimize.jee.sdms.common.file.TemporalFileManager; +import jakarta.servlet.*; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +@Component +public class TemporalFilesFilter implements Filter{ + + private final TemporalFileManager temporalFileManager; + + public TemporalFilesFilter( final TemporalFileManager temporalFileManager ) { + this.temporalFileManager = temporalFileManager; + } + + @Override + public void doFilter( + final ServletRequest servletRequest, + final ServletResponse servletResponse, + final FilterChain filterChain + ) throws IOException, ServletException { + try{ + filterChain.doFilter( servletRequest, servletResponse ); + } + finally { + this.temporalFileManager.cleanUp(); + } + } +}