移除 multi-tenant library
diff --git a/multi-tenant-core/build.gradle b/multi-tenant-core/build.gradle
deleted file mode 100644
index b456c6e..0000000
--- a/multi-tenant-core/build.gradle
+++ /dev/null
@@ -1,9 +0,0 @@
-plugins {
- id 'java'
- id 'org.springframework.boot'
-}
-
-dependencies {
- implementation "org.springframework:spring-webmvc"
- implementation "javax.servlet:javax.servlet-api:${javaxServletVersion}"
-}
\ No newline at end of file
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/HttpHeaderAutoRegistrar.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/HttpHeaderAutoRegistrar.java
deleted file mode 100644
index c18c009..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/HttpHeaderAutoRegistrar.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.supwisdom.multitenant;
-
-import com.supwisdom.multitenant.config.HttpHeaderWebMvcConfig;
-import com.supwisdom.multitenant.impl.HttpHeaderTenantInterceptor;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.support.GenericBeanDefinition;
-import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
-import org.springframework.core.type.AnnotationMetadata;
-
-public class HttpHeaderAutoRegistrar implements ImportBeanDefinitionRegistrar {
- public static final String BEAN_NAME = "httpHeaderTenantInterceptor";
-
- private void registerInterceptor(BeanDefinitionRegistry registry) {
- GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
- beanDefinition.setBeanClass(HttpHeaderTenantInterceptor.class);
- beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
- registry.registerBeanDefinition(BEAN_NAME, beanDefinition);
- }
-
- private void registerMvcConfigure(BeanDefinitionRegistry registry) {
- GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
- beanDefinition.setBeanClass(HttpHeaderWebMvcConfig.class);
- beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
- registry.registerBeanDefinition(BEAN_NAME + "MvcConfig", beanDefinition);
- }
-
- @Override
- public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
- registerInterceptor(registry);
- registerMvcConfigure(registry);
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/HttpSessionAutoRegistrar.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/HttpSessionAutoRegistrar.java
deleted file mode 100644
index 4064aea..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/HttpSessionAutoRegistrar.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.supwisdom.multitenant;
-
-import com.supwisdom.multitenant.config.HttpSessionWebMvcConfig;
-import com.supwisdom.multitenant.impl.HttpSessionTenantInterceptor;
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.beans.factory.support.GenericBeanDefinition;
-import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
-import org.springframework.core.type.AnnotationMetadata;
-
-public class HttpSessionAutoRegistrar implements ImportBeanDefinitionRegistrar {
- public static final String BEAN_NAME = "httpSessionTenantInterceptor";
-
- private void registerInterceptor(BeanDefinitionRegistry registry) {
- GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
- beanDefinition.setBeanClass(HttpSessionTenantInterceptor.class);
- beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
- registry.registerBeanDefinition(BEAN_NAME, beanDefinition);
-}
-
- private void registerMvcConfigurater(BeanDefinitionRegistry registry) {
- GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
- beanDefinition.setBeanClass(HttpSessionWebMvcConfig.class);
- beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
- registry.registerBeanDefinition(BEAN_NAME + "MvcConfig", beanDefinition);
- }
-
- @Override
- public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
- registerInterceptor(registry);
- registerMvcConfigurater(registry);
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/MultiTenantAutoConfiguration.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/MultiTenantAutoConfiguration.java
deleted file mode 100644
index 6a13357..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/MultiTenantAutoConfiguration.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.supwisdom.multitenant;
-
-import org.springframework.beans.factory.config.BeanDefinition;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Role;
-
-@Configuration
-@ComponentScan(basePackages = {"com.supwisdom.multitenant"})
-@Role(BeanDefinition.ROLE_INFRASTRUCTURE)
-public class MultiTenantAutoConfiguration {
-
- @Bean
- @ConditionalOnMissingBean(TenantDetailsProvider.class)
- public TenantDetailsProvider createDetailsProvider() {
- return new TenantDetailsProvider() {
- };
- }
-
- public static class SessionTenantInterceptorAutoConfig {
- }
-
-// @ConditionalOnProperty(
-// name = "multi-tenant.interceptor.httpsession.enabled",
-// havingValue = "true")
-// @Bean
-// @Role(BeanDefinition.ROLE_INFRASTRUCTURE)
-// public SessionTenantInterceptorAutoConfig sessionTenantInterceptorAutoConfig() {
-// return new SessionTenantInterceptorAutoConfig();
-// }
-
-
- public static class HttpHeaderTenantInterceptorAutoConfig {
- }
-
-// @Bean
-// @ConditionalOnProperty(
-// name = "multi-tenant.interceptor.httpheader.enabled",
-// havingValue = "true")
-// @Role(BeanDefinition.ROLE_INFRASTRUCTURE)
-// public HttpHeaderTenantInterceptorAutoConfig httpHeaderTenantInterceptorAutoConfig() {
-// return new HttpHeaderTenantInterceptorAutoConfig();
-// }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContext.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContext.java
deleted file mode 100644
index 0c3bbf2..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContext.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.supwisdom.multitenant;
-
-import java.io.Serializable;
-
-public interface TenantContext extends Serializable {
- TenantDetails getTenant();
-
- void setTenant(TenantDetails details);
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContextHolder.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContextHolder.java
deleted file mode 100644
index bb0d51f..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContextHolder.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.supwisdom.multitenant;
-
-import com.supwisdom.multitenant.impl.ThreadLocalTenantContextHolderStrategy;
-
-public class TenantContextHolder {
- private static TenantContextHolderStrategy strategy;
-
- static {
- initialize();
- }
-
- private static void initialize() {
- strategy = new ThreadLocalTenantContextHolderStrategy();
- }
-
- public static TenantContext getContext() {
- return strategy.getContext();
- }
-
- public static void clearContext() {
- strategy.clearContext();
- }
-
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContextHolderStrategy.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContextHolderStrategy.java
deleted file mode 100644
index 300130a..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantContextHolderStrategy.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.supwisdom.multitenant;
-
-public interface TenantContextHolderStrategy {
- TenantContext getContext();
-
- void setContext(TenantContext tenant);
-
- TenantContext createEmptyContext();
-
- void clearContext();
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantDetails.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantDetails.java
deleted file mode 100644
index 07372bb..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantDetails.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package com.supwisdom.multitenant;
-
-import java.io.Serializable;
-
-public class TenantDetails implements Serializable {
- private String id;
-
- private String dbSchema;
-
- private Boolean enabled;
-
- public String getId() {
- return id;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public String getDbSchema() {
- return dbSchema;
- }
-
- public void setDbSchema(String dbSchema) {
- this.dbSchema = dbSchema;
- }
-
- public Boolean getEnabled() {
- return enabled;
- }
-
- public void setEnabled(Boolean enabled) {
- this.enabled = enabled;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof TenantDetails) {
- TenantDetails other = (TenantDetails) obj;
- if (getId().equals(other.getId())) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantDetailsProvider.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantDetailsProvider.java
deleted file mode 100644
index d8d9990..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantDetailsProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.supwisdom.multitenant;
-
-public interface TenantDetailsProvider {
- default TenantDetails createDetailsById(String id) {
- TenantDetails details = new TenantDetails();
- details.setId(id);
- return details;
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantInterceptor.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantInterceptor.java
deleted file mode 100644
index 3a50249..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/TenantInterceptor.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.supwisdom.multitenant;
-
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-public abstract class TenantInterceptor extends HandlerInterceptorAdapter {
-
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/annotations/EnableHttpHeaderTenantInterceptor.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/annotations/EnableHttpHeaderTenantInterceptor.java
deleted file mode 100644
index daf9d4c..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/annotations/EnableHttpHeaderTenantInterceptor.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.supwisdom.multitenant.annotations;
-
-import com.supwisdom.multitenant.HttpHeaderAutoRegistrar;
-import com.supwisdom.multitenant.MultiTenantAutoConfiguration;
-import org.springframework.context.annotation.Import;
-
-import java.lang.annotation.*;
-
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@Import({MultiTenantAutoConfiguration.class, HttpHeaderAutoRegistrar.class})
-@Documented
-public @interface EnableHttpHeaderTenantInterceptor {
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/annotations/EnableSessionTenantInterceptor.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/annotations/EnableSessionTenantInterceptor.java
deleted file mode 100644
index 347b58d..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/annotations/EnableSessionTenantInterceptor.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.supwisdom.multitenant.annotations;
-
-import com.supwisdom.multitenant.HttpSessionAutoRegistrar;
-import com.supwisdom.multitenant.MultiTenantAutoConfiguration;
-import org.springframework.context.annotation.Import;
-
-import java.lang.annotation.*;
-
-@Target(ElementType.TYPE)
-@Retention(RetentionPolicy.RUNTIME)
-@Import({MultiTenantAutoConfiguration.class, HttpSessionAutoRegistrar.class})
-@Documented
-public @interface EnableSessionTenantInterceptor {
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/condition/OnPgDatabase.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/condition/OnPgDatabase.java
deleted file mode 100644
index c09439d..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/condition/OnPgDatabase.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.supwisdom.multitenant.condition;
-
-import org.springframework.context.annotation.Condition;
-import org.springframework.context.annotation.ConditionContext;
-import org.springframework.core.type.AnnotatedTypeMetadata;
-
-public class OnPgDatabase implements Condition {
- private static final String DATABASE_PLATFORM = "spring.jpa.database-platform";
-
- @Override
- public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
- String platform = context.getEnvironment().getProperty(DATABASE_PLATFORM, String.class);
- return "postgresql".equals(platform);
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/HttpHeaderWebMvcConfig.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/HttpHeaderWebMvcConfig.java
deleted file mode 100644
index 0227a23..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/HttpHeaderWebMvcConfig.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.supwisdom.multitenant.config;
-
-
-import com.supwisdom.multitenant.impl.HttpHeaderTenantInterceptor;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
-public class HttpHeaderWebMvcConfig implements WebMvcConfigurer {
- private final HttpHeaderTenantInterceptor interceptor;
-
- public HttpHeaderWebMvcConfig(HttpHeaderTenantInterceptor interceptor) {
- this.interceptor = interceptor;
- }
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(interceptor);
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/HttpSessionWebMvcConfig.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/HttpSessionWebMvcConfig.java
deleted file mode 100644
index c4d8030..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/HttpSessionWebMvcConfig.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.supwisdom.multitenant.config;
-
-import com.supwisdom.multitenant.impl.HttpSessionTenantInterceptor;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
-public class HttpSessionWebMvcConfig implements WebMvcConfigurer {
- private final HttpSessionTenantInterceptor interceptor;
-
- public HttpSessionWebMvcConfig(HttpSessionTenantInterceptor interceptor) {
- this.interceptor = interceptor;
- }
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(interceptor);
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantCoreUtils.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantCoreUtils.java
deleted file mode 100644
index 97c7096..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantCoreUtils.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package com.supwisdom.multitenant.config;
-
-public final class TenantCoreUtils {
- public static final String INTERNAL_TENANT_INTERCEPTOR_BEAN_NAME = "coms.supwisdom.multitenant.interceptor";
-
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantHeaderProperties.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantHeaderProperties.java
deleted file mode 100644
index 4d31390..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantHeaderProperties.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.supwisdom.multitenant.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Component
-@ConfigurationProperties("multi-tenant.header")
-public class TenantHeaderProperties {
- @Value("${key:X-Tenant-Id}")
- private String key;
-
- public String getKey() {
- return key;
- }
-
- public void setKey(String key) {
- this.key = key;
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantJwtProperties.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantJwtProperties.java
deleted file mode 100644
index c4dcbb4..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantJwtProperties.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package com.supwisdom.multitenant.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Component
-@ConfigurationProperties("multi-tenant.jwt")
-public class TenantJwtProperties {
- @Value("${header:Authentication}")
- private String jwtHeader;
-
- @Value("${schema:Bears}")
- private String schema;
-
- public String getJwtHeader() {
- return jwtHeader;
- }
-
- public void setJwtHeader(String jwtHeader) {
- this.jwtHeader = jwtHeader;
- }
-
- public String getSchema() {
- return schema;
- }
-
- public void setSchema(String schema) {
- this.schema = schema;
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantSessionProperties.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantSessionProperties.java
deleted file mode 100644
index 3d57c62..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/config/TenantSessionProperties.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.supwisdom.multitenant.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-import org.springframework.stereotype.Component;
-
-@Component
-@ConfigurationProperties("multi-tenant.session")
-public class TenantSessionProperties {
- @Value("${name:multi-tenant-id}")
- private String name;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/HttpHeaderTenantInterceptor.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/HttpHeaderTenantInterceptor.java
deleted file mode 100644
index 375eda0..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/HttpHeaderTenantInterceptor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.supwisdom.multitenant.impl;
-
-import com.supwisdom.multitenant.TenantContextHolder;
-import com.supwisdom.multitenant.TenantDetails;
-import com.supwisdom.multitenant.TenantInterceptor;
-import com.supwisdom.multitenant.config.TenantHeaderProperties;
-import com.supwisdom.multitenant.config.TenantJwtProperties;
-import org.springframework.util.StringUtils;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public class HttpHeaderTenantInterceptor extends TenantInterceptor {
- private final TenantJwtProperties properties;
-
- private final TenantHeaderProperties headerProperties;
-
- public HttpHeaderTenantInterceptor(TenantJwtProperties properties,
- TenantHeaderProperties headerProperties) {
- this.properties = properties;
- this.headerProperties = headerProperties;
- }
-
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- String tenant = request.getHeader(headerProperties.getKey());
- if (tenant != null && !StringUtils.isEmpty(tenant)) {
- TenantDetails details = new TenantDetails();
- details.setId(tenant);
- TenantContextHolder.getContext().setTenant(details);
- }
- String header = request.getHeader(properties.getJwtHeader());
- if (header.startsWith(properties.getSchema())) {
- // parse jwt
- }
- return super.preHandle(request, response, handler);
- }
-
- @Override
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
- ModelAndView modelAndView) throws Exception {
- TenantContextHolder.clearContext();
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/HttpSessionTenantInterceptor.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/HttpSessionTenantInterceptor.java
deleted file mode 100644
index cb711e0..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/HttpSessionTenantInterceptor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.supwisdom.multitenant.impl;
-
-import com.supwisdom.multitenant.TenantContextHolder;
-import com.supwisdom.multitenant.TenantDetails;
-import com.supwisdom.multitenant.TenantDetailsProvider;
-import com.supwisdom.multitenant.TenantInterceptor;
-import com.supwisdom.multitenant.config.TenantSessionProperties;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-public class HttpSessionTenantInterceptor extends TenantInterceptor {
- private final TenantSessionProperties properties;
-
- private final TenantDetailsProvider provider;
-
- public HttpSessionTenantInterceptor(TenantSessionProperties properties,
- TenantDetailsProvider provider) {
- this.properties = properties;
- this.provider = provider;
- }
-
- @Override
- public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
- Object details = request.getSession().getAttribute(properties.getName());
- if (details != null) {
- if (details instanceof TenantDetails) {
- TenantContextHolder.getContext().setTenant((TenantDetails) details);
- } else if (details instanceof String) {
- TenantContextHolder.getContext().setTenant(provider.createDetailsById((String) details));
- } else {
- return false;
- }
- }
- return super.preHandle(request, response, handler);
- }
-
- @Override
- public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
- ModelAndView modelAndView) throws Exception {
- TenantContextHolder.clearContext();
- super.postHandle(request, response, handler, modelAndView);
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/TenantContextImpl.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/TenantContextImpl.java
deleted file mode 100644
index 39bdae8..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/TenantContextImpl.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.supwisdom.multitenant.impl;
-
-import com.supwisdom.multitenant.TenantContext;
-import com.supwisdom.multitenant.TenantDetails;
-
-public class TenantContextImpl implements TenantContext {
- private TenantDetails details;
-
- @Override
- public TenantDetails getTenant() {
- return details;
- }
-
- @Override
- public void setTenant(TenantDetails details) {
- this.details = details;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (obj instanceof TenantContextImpl) {
- TenantContextImpl other = (TenantContextImpl) obj;
- getTenant().equals(other.getTenant());
- }
- return false;
- }
-}
diff --git a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/ThreadLocalTenantContextHolderStrategy.java b/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/ThreadLocalTenantContextHolderStrategy.java
deleted file mode 100644
index fd325ec..0000000
--- a/multi-tenant-core/src/main/java/com/supwisdom/multitenant/impl/ThreadLocalTenantContextHolderStrategy.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.supwisdom.multitenant.impl;
-
-import com.supwisdom.multitenant.TenantContext;
-import com.supwisdom.multitenant.TenantContextHolderStrategy;
-
-public class ThreadLocalTenantContextHolderStrategy implements TenantContextHolderStrategy {
- private static final ThreadLocal<TenantContext> contextHolder = new ThreadLocal<>();
-
- @Override
- public TenantContext getContext() {
- TenantContext context = contextHolder.get();
- if (context == null) {
- context = createEmptyContext();
- contextHolder.set(context);
- }
- return context;
- }
-
- @Override
- public void setContext(TenantContext tenant) {
- contextHolder.set(tenant);
- }
-
- @Override
- public void clearContext() {
- contextHolder.remove();
- }
-
- @Override
- public TenantContext createEmptyContext() {
- return new TenantContextImpl();
- }
-}
diff --git a/multi-tenant-core/src/test/java/com/supwisdom/multitenant/HttpHeaderTest.java b/multi-tenant-core/src/test/java/com/supwisdom/multitenant/HttpHeaderTest.java
deleted file mode 100644
index ce1ce58..0000000
--- a/multi-tenant-core/src/test/java/com/supwisdom/multitenant/HttpHeaderTest.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.supwisdom.multitenant;
-
-import com.supwisdom.multitenant.annotations.EnableHttpHeaderTenantInterceptor;
-import com.supwisdom.multitenant.condition.OnPgDatabase;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Conditional;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.test.context.TestPropertySource;
-
-import java.util.Arrays;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-
-@SpringBootTest(classes = {HttpHeaderTest.class})
-@TestPropertySource("/test.properties")
-@EnableHttpHeaderTenantInterceptor
-public class HttpHeaderTest {
-
- @Autowired
- private ApplicationContext appContext;
-
- @Test
- public void testSessionOk() {
- assertThat(TenantContextHolder.getContext(), notNullValue());
- assertThat(findBeanByName(HttpHeaderAutoRegistrar.BEAN_NAME), is(true));
- }
-
- @Test
- public void testError() {
- assertThat(findBeanByName(HttpSessionAutoRegistrar.BEAN_NAME), is(false));
- }
-
- @Configuration
- static class PostgresTest {
- @Bean
- @Conditional(OnPgDatabase.class)
- public PostgresTest testPg() {
- return new PostgresTest();
- }
- }
-
-
- private boolean findBeanByName(String name) {
- String[] beans = appContext.getBeanDefinitionNames();
- Arrays.sort(beans);
- for (String bean : beans) {
- if (name.equals(bean)) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/multi-tenant-core/src/test/java/com/supwisdom/multitenant/HttpSessionTest.java b/multi-tenant-core/src/test/java/com/supwisdom/multitenant/HttpSessionTest.java
deleted file mode 100644
index ea612e1..0000000
--- a/multi-tenant-core/src/test/java/com/supwisdom/multitenant/HttpSessionTest.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package com.supwisdom.multitenant;
-
-import com.supwisdom.multitenant.annotations.EnableSessionTenantInterceptor;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.context.ApplicationContext;
-import org.springframework.test.context.TestPropertySource;
-
-import java.util.Arrays;
-
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-
-@SpringBootTest(classes = {HttpSessionTest.class})
-@TestPropertySource("/test.properties")
-@EnableSessionTenantInterceptor
-public class HttpSessionTest {
- @Autowired
- private ApplicationContext appContext;
-
- @Test
- public void testSessionOk() {
- assertThat(TenantContextHolder.getContext(), notNullValue());
- assertThat(findBeanByName(HttpSessionAutoRegistrar.BEAN_NAME), is(true));
- }
-
- @Test
- public void testError() {
- assertThat(findBeanByName(HttpHeaderAutoRegistrar.BEAN_NAME), is(false));
- }
-
-
- private boolean findBeanByName(String name) {
- String[] beans = appContext.getBeanDefinitionNames();
- Arrays.sort(beans);
- for (String bean : beans) {
- if (name.equals(bean)) {
- return true;
- }
- }
- return false;
- }
-}
diff --git a/multi-tenant-core/src/test/resources/test.properties b/multi-tenant-core/src/test/resources/test.properties
deleted file mode 100644
index d6cc728..0000000
--- a/multi-tenant-core/src/test/resources/test.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-debug=true
-spring.jpa.database-platform=postgresql
diff --git a/multi-tenant-datasource/build.gradle b/multi-tenant-datasource/build.gradle
deleted file mode 100644
index bc2a812..0000000
--- a/multi-tenant-datasource/build.gradle
+++ /dev/null
@@ -1,29 +0,0 @@
-plugins {
- id "java-library"
- id "org.springframework.boot"
-}
-
-jar {
- enabled = true
- archiveFileName = "${project.name}-${buildVersion}.${archiveExtension.getOrElse('.jar')}"
- manifest {
- attributes('Implementation-Title': project.name,
- 'Implementation-Version': buildVersion)
- }
-}
-println("Build Version: $buildVersion")
-bootJar {
- enabled = false
-}
-
-dependencies {
- implementation project(":multi-tenant-core")
- implementation "org.springframework.boot:spring-boot-autoconfigure"
- implementation "commons-beanutils:commons-beanutils:${beanutilsVersion}"
- implementation "commons-codec:commons-codec:${codecVersion}"
- implementation "org.apache.commons:commons-lang3:${lang3Version}"
-
- compileOnly "org.projectlombok:lombok:${lombokVersion}"
- annotationProcessor "org.projectlombok:lombok:${lombokVersion}"
-}
-
diff --git a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantConnectionProviderImpl.java b/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantConnectionProviderImpl.java
deleted file mode 100644
index 737cba0..0000000
--- a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantConnectionProviderImpl.java
+++ /dev/null
@@ -1,79 +0,0 @@
-package com.supwisdom.multitenant.datasource;
-
-import com.supwisdom.multitenant.TenantContextHolder;
-import com.supwisdom.multitenant.TenantDetails;
-import lombok.extern.slf4j.Slf4j;
-import org.hibernate.HibernateException;
-import org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider;
-import org.springframework.stereotype.Component;
-
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.SQLException;
-
-/**
- * Created by shuwei on 2018/12/4.
- */
-@Slf4j
-@Component
-public class MultiTenantConnectionProviderImpl implements MultiTenantConnectionProvider {
- private final DataSource dataSource;
-
- private final MultiTenantDataSourceProvider dsProvider;
-
- public MultiTenantConnectionProviderImpl(DataSource dataSource,
- MultiTenantDataSourceProvider provider) {
- this.dataSource = dataSource;
- this.dsProvider = provider;
- }
-
- @Override
- public Connection getAnyConnection() throws SQLException {
- return dataSource.getConnection();
- }
-
- @Override
- public void releaseAnyConnection(Connection connection) throws SQLException {
- connection.close();
- }
-
- @Override
- public Connection getConnection(String ti) throws SQLException {
- TenantDetails tenant = TenantContextHolder.getContext().getTenant();
- final Connection connection = getAnyConnection();
- try {
- if (tenant != null) {
- log.debug("postgresql set search path to <" + tenant.getDbSchema() + ">");
- connection.createStatement().execute(dsProvider.getTenantSQL(tenant));
- } else {
- log.debug("postgresql set search path to public");
- connection.createStatement().execute(dsProvider.getDefaultSQL());
- }
- } catch (SQLException e) {
- assert tenant != null;
- throw new HibernateException("Problem setting schema to " + tenant.toString(), e);
- }
- return connection;
- }
-
- @Override
- public void releaseConnection(String tenantIdentifier, Connection connection) throws SQLException {
- connection.close();
- }
-
- @Override
- public boolean supportsAggressiveRelease() {
- return false;
- }
-
- @SuppressWarnings("rawtypes")
- @Override
- public boolean isUnwrappableAs(Class unwrapType) {
- return false;
- }
-
- @Override
- public <T> T unwrap(Class<T> unwrapType) {
- return null;
- }
-}
diff --git a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantDataSourceProvider.java b/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantDataSourceProvider.java
deleted file mode 100644
index 394b743..0000000
--- a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantDataSourceProvider.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.supwisdom.multitenant.datasource;
-
-import com.supwisdom.multitenant.TenantDetails;
-
-public interface MultiTenantDataSourceProvider {
- String getDefaultSQL();
-
- String getTenantSQL(TenantDetails details);
-}
diff --git a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantFactory.java b/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantFactory.java
deleted file mode 100644
index 6706bd1..0000000
--- a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/MultiTenantFactory.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.supwisdom.multitenant.datasource;
-
-import com.supwisdom.multitenant.datasource.beans.TenantProps;
-
-public interface MultiTenantFactory {
- TenantProps createMultiTenant();
-}
diff --git a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/beans/TenantProps.java b/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/beans/TenantProps.java
deleted file mode 100644
index 5e0b6da..0000000
--- a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/beans/TenantProps.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.supwisdom.multitenant.datasource.beans;
-
-public class TenantProps {
- private String schema;
-}
diff --git a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/config/MultiTenantDataSourceAutoConfiguration.java b/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/config/MultiTenantDataSourceAutoConfiguration.java
deleted file mode 100644
index db0c5f7..0000000
--- a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/config/MultiTenantDataSourceAutoConfiguration.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package com.supwisdom.multitenant.datasource.config;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.beans.factory.support.BeanDefinitionRegistry;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
-import org.springframework.core.type.AnnotationMetadata;
-
-@Configuration
-public class MultiTenantDataSourceAutoConfiguration implements ImportBeanDefinitionRegistrar {
-
- @Value("${spring.jpa.database-platform:all}")
- private String datasourcePlatform;
-
- @Override
- public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
-// GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
-// beanDefinition.setBeanClass();
-// registry.registerBeanDefinition();
- }
-
-}
diff --git a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/config/MutliTenantHibernateConfig.java b/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/config/MutliTenantHibernateConfig.java
deleted file mode 100644
index 87be5f6..0000000
--- a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/config/MutliTenantHibernateConfig.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package com.supwisdom.multitenant.datasource.config;
-
-
-import com.supwisdom.multitenant.MultiTenantAutoConfiguration;
-import lombok.extern.slf4j.Slf4j;
-import org.hibernate.MultiTenancyStrategy;
-import org.hibernate.cfg.Environment;
-import org.hibernate.context.spi.CurrentTenantIdentifierResolver;
-import org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.boot.autoconfigure.orm.jpa.HibernateProperties;
-import org.springframework.boot.autoconfigure.orm.jpa.HibernateSettings;
-import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.orm.jpa.JpaVendorAdapter;
-import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
-import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
-
-import javax.sql.DataSource;
-import java.util.HashMap;
-import java.util.Map;
-
-@Configuration
-@ConditionalOnBean({MultiTenantAutoConfiguration.class})
-@Slf4j
-public class MutliTenantHibernateConfig {
-
- private final JpaProperties jpaProperties;
-
- private final HibernateProperties hibernateProperties;
-
- public MutliTenantHibernateConfig(@Autowired JpaProperties jpaProperties,
- HibernateProperties hibernateProperties) {
- this.jpaProperties = jpaProperties;
- this.hibernateProperties = hibernateProperties;
- }
-
- @Bean
- public JpaVendorAdapter getJpaVendorAdapter() {
- HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
- adapter.setGenerateDdl(true);
- return adapter;
- }
-
- @Bean("entityManagerFactory")
- public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(DataSource dataSource,
- MultiTenantConnectionProvider multiTenantConnectionProvider,
- CurrentTenantIdentifierResolver currentTenantIdentifierResolver) {
- Map<String, Object> properties = new HashMap<>();
- properties.putAll(hibernateProperties
- .determineHibernateProperties(jpaProperties.getProperties(),
- new HibernateSettings()));
- properties.put(Environment.MULTI_TENANT, MultiTenancyStrategy.SCHEMA);
- properties.put(Environment.MULTI_TENANT_CONNECTION_PROVIDER, multiTenantConnectionProvider);
- properties.put(Environment.MULTI_TENANT_IDENTIFIER_RESOLVER, currentTenantIdentifierResolver);
-
- LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
- em.setDataSource(dataSource);
- em.setPackagesToScan("com.supwisdom");
- em.setJpaPropertyMap(properties);
- em.setJpaVendorAdapter(getJpaVendorAdapter());
- log.info("setup multi-tenant entityManagerFactor");
- return em;
- }
-
-}
diff --git a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/impl/PostgresDataSourceProvider.java b/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/impl/PostgresDataSourceProvider.java
deleted file mode 100644
index 19305ef..0000000
--- a/multi-tenant-datasource/src/main/java/com/supwisdom/multitenant/datasource/impl/PostgresDataSourceProvider.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.supwisdom.multitenant.datasource.impl;
-
-import com.supwisdom.multitenant.TenantDetails;
-import com.supwisdom.multitenant.datasource.MultiTenantDataSourceProvider;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.util.StringUtils;
-
-@Configuration
-@ConditionalOnExpression("${spring.jpa.database-platform:postgresql}")
-public class PostgresDataSourceProvider implements MultiTenantDataSourceProvider {
- @Override
- public String getTenantSQL(TenantDetails details) {
- if (details == null || details.getDbSchema() == null
- || StringUtils.isEmpty(details.getDbSchema())) {
- return getDefaultSQL();
- }
- return String.format("set search_path \"%s\", public; ", details.getDbSchema());
- }
-
- @Override
- public String getDefaultSQL() {
- return "set search_path public;";
- }
-}
diff --git a/multi-tenant-datasource/src/test/java/com/supwisdom/multitenant/datasource/PgDatasourceTest.java b/multi-tenant-datasource/src/test/java/com/supwisdom/multitenant/datasource/PgDatasourceTest.java
deleted file mode 100644
index 7aae07a..0000000
--- a/multi-tenant-datasource/src/test/java/com/supwisdom/multitenant/datasource/PgDatasourceTest.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.supwisdom.multitenant.datasource;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.TestPropertySource;
-
-@SpringBootTest(classes = {PgDatasourceTest.class},
- properties = {"multi-tenant.interceptor.httpsession.enabled=true",
- "multi-tenant.interceptor.httpheader.enabled=true"})
-@TestPropertySource("/test-pg.properties")
-public class PgDatasourceTest {
-
- @Test
- public void connectDatasource() {
-
- }
-}
diff --git a/multi-tenant-datasource/src/test/resources/test-pg.properties b/multi-tenant-datasource/src/test/resources/test-pg.properties
deleted file mode 100644
index 3613c3b..0000000
--- a/multi-tenant-datasource/src/test/resources/test-pg.properties
+++ /dev/null
@@ -1,13 +0,0 @@
-spring.main.banner-mode=off
-# create and drop tables and sequences, loads import.sql
-spring.jpa.hibernate.ddl-auto=update
-spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
-spring.jpa.properties.hibernate.temp.use_jdbc_metadata_defaults=false
-# Postgresql settings
-spring.datasource.platform=postgresql
-#spring.datasource.url=jdbc:postgresql://ykt.supwisdom.com:15432/payapidev
-spring.datasource.url=jdbc:postgresql://172.28.201.70:15432/payapidev
-spring.datasource.username=payapi
-spring.datasource.password=123456
-spring.datasource.continue-on-error=true
-spring.datasource.initialization-mode=always
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 9ec25d1..c670d5a 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -4,6 +4,4 @@
include 'payapi-common'
include 'ynrcc-agent'
include 'oauth'
-include 'multi-tenant-core'
-include 'multi-tenant-datasource'