移除 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'