From f83adbf60137289dff49a2244b80f521f9c18c1a Mon Sep 17 00:00:00 2001 From: Francesco Date: Thu, 21 Sep 2023 15:08:46 +0200 Subject: [PATCH] WIP --- .../dbadmin/ApplicationContextUtils.java | 23 ------------------- src/main/java/tech/ailef/dbadmin/DbAdmin.java | 19 ++++----------- .../dbadmin/DbAdminAutoConfiguration.java | 1 - .../tech/ailef/dbadmin/DbAdminProperties.java | 10 ++++++++ .../annotations/DbAdminAppConfiguration.java | 10 -------- .../annotations/DbAdminConfiguration.java | 15 ------------ .../controller/DefaultDbAdminController.java | 1 - 7 files changed, 15 insertions(+), 64 deletions(-) delete mode 100644 src/main/java/tech/ailef/dbadmin/ApplicationContextUtils.java delete mode 100644 src/main/java/tech/ailef/dbadmin/annotations/DbAdminAppConfiguration.java delete mode 100644 src/main/java/tech/ailef/dbadmin/annotations/DbAdminConfiguration.java diff --git a/src/main/java/tech/ailef/dbadmin/ApplicationContextUtils.java b/src/main/java/tech/ailef/dbadmin/ApplicationContextUtils.java deleted file mode 100644 index 0529431..0000000 --- a/src/main/java/tech/ailef/dbadmin/ApplicationContextUtils.java +++ /dev/null @@ -1,23 +0,0 @@ -package tech.ailef.dbadmin; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.stereotype.Component; - -/** - * Utility class the get the ApplicationContext - */ -@Component -public class ApplicationContextUtils implements ApplicationContextAware { - - private static ApplicationContext ctx; - - @Override - public void setApplicationContext(ApplicationContext appContext) { - ctx = appContext; - } - - public static ApplicationContext getApplicationContext() { - return ctx; - } -} \ No newline at end of file diff --git a/src/main/java/tech/ailef/dbadmin/DbAdmin.java b/src/main/java/tech/ailef/dbadmin/DbAdmin.java index c96fff3..ff17f2b 100644 --- a/src/main/java/tech/ailef/dbadmin/DbAdmin.java +++ b/src/main/java/tech/ailef/dbadmin/DbAdmin.java @@ -6,7 +6,6 @@ import java.lang.reflect.ParameterizedType; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.Map; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; @@ -25,8 +24,6 @@ import jakarta.persistence.ManyToOne; import jakarta.persistence.OneToMany; import jakarta.persistence.OneToOne; import jakarta.persistence.PersistenceContext; -import tech.ailef.dbadmin.annotations.DbAdminAppConfiguration; -import tech.ailef.dbadmin.annotations.DbAdminConfiguration; import tech.ailef.dbadmin.annotations.DisplayFormat; import tech.ailef.dbadmin.dbmapping.AdvancedJpaRepository; import tech.ailef.dbadmin.dbmapping.DbField; @@ -46,6 +43,8 @@ import tech.ailef.dbadmin.misc.Utils; */ @Component public class DbAdmin { + private DbAdminProperties properties; + @PersistenceContext private EntityManager entityManager; @@ -53,17 +52,9 @@ public class DbAdmin { private String modelsPackage; - public DbAdmin(@Autowired EntityManager entityManager) { - Map beansWithAnnotation = - ApplicationContextUtils.getApplicationContext().getBeansWithAnnotation(DbAdminConfiguration.class); - - if (beansWithAnnotation.size() != 1) { - throw new DbAdminException("Found " + beansWithAnnotation.size() + " beans with annotation @DbAdminConfiguration, but must be unique"); - } - - DbAdminAppConfiguration applicationClass = (DbAdminAppConfiguration) beansWithAnnotation.values().iterator().next(); - - this.modelsPackage = applicationClass.getModelsPackage(); + public DbAdmin(@Autowired EntityManager entityManager, @Autowired DbAdminProperties properties) { + this.properties = properties; + this.modelsPackage = properties.getModelsPackage(); this.entityManager = entityManager; ClassPathScanningCandidateComponentProvider provider = new ClassPathScanningCandidateComponentProvider(false); diff --git a/src/main/java/tech/ailef/dbadmin/DbAdminAutoConfiguration.java b/src/main/java/tech/ailef/dbadmin/DbAdminAutoConfiguration.java index 69559ba..861741d 100644 --- a/src/main/java/tech/ailef/dbadmin/DbAdminAutoConfiguration.java +++ b/src/main/java/tech/ailef/dbadmin/DbAdminAutoConfiguration.java @@ -1,6 +1,5 @@ package tech.ailef.dbadmin; -import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; diff --git a/src/main/java/tech/ailef/dbadmin/DbAdminProperties.java b/src/main/java/tech/ailef/dbadmin/DbAdminProperties.java index 9c7b385..462425d 100644 --- a/src/main/java/tech/ailef/dbadmin/DbAdminProperties.java +++ b/src/main/java/tech/ailef/dbadmin/DbAdminProperties.java @@ -7,6 +7,8 @@ public class DbAdminProperties { public boolean enabled = true; private String baseUrl; + + private String modelsPackage; public boolean isEnabled() { return enabled; @@ -24,5 +26,13 @@ public class DbAdminProperties { this.baseUrl = baseUrl; } + public String getModelsPackage() { + return modelsPackage; + } + + public void setModelsPackage(String modelsPackage) { + this.modelsPackage = modelsPackage; + } + } diff --git a/src/main/java/tech/ailef/dbadmin/annotations/DbAdminAppConfiguration.java b/src/main/java/tech/ailef/dbadmin/annotations/DbAdminAppConfiguration.java deleted file mode 100644 index ee53fa7..0000000 --- a/src/main/java/tech/ailef/dbadmin/annotations/DbAdminAppConfiguration.java +++ /dev/null @@ -1,10 +0,0 @@ -package tech.ailef.dbadmin.annotations; - -/** - * An interface that includes all the configuration methods that - * the user has to implement in order to integrate DbAdmin. - * - */ -public interface DbAdminAppConfiguration { - public String getModelsPackage(); -} diff --git a/src/main/java/tech/ailef/dbadmin/annotations/DbAdminConfiguration.java b/src/main/java/tech/ailef/dbadmin/annotations/DbAdminConfiguration.java deleted file mode 100644 index 3050ffe..0000000 --- a/src/main/java/tech/ailef/dbadmin/annotations/DbAdminConfiguration.java +++ /dev/null @@ -1,15 +0,0 @@ -package tech.ailef.dbadmin.annotations; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Marks the class that holds the DbAdmin configuration. - * - */ -@Retention(RetentionPolicy.RUNTIME) -@Target(ElementType.TYPE) -public @interface DbAdminConfiguration { -} \ No newline at end of file diff --git a/src/main/java/tech/ailef/dbadmin/controller/DefaultDbAdminController.java b/src/main/java/tech/ailef/dbadmin/controller/DefaultDbAdminController.java index f58c318..0f1bd7b 100644 --- a/src/main/java/tech/ailef/dbadmin/controller/DefaultDbAdminController.java +++ b/src/main/java/tech/ailef/dbadmin/controller/DefaultDbAdminController.java @@ -20,7 +20,6 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.server.ResponseStatusException;