diff --git a/.gitignore b/.gitignore
index f283882fdb9f46c428d2e49a7e177f4eaae15ea5..fafad524546e211f6f012e4809952006158662ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,4 +5,5 @@
target/
.project
.settings/
-.classpath
\ No newline at end of file
+.classpath
+ace-modules/ace-tool/src/main/resources/application-dev.yml
diff --git a/README.md b/README.md
index 351e0de6a75ac69659ce7994b8d3c2b100e7d4ea..21d3cb73b81933155831ad3df70d1aac63e8a5e0 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
# AG-Admin(`开源学习`)
-AG-Admin是国内首个基于`Spring Cloud`微`服务`化`开发平台`,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、`JWT Token`、Mybatis等主要框架和中间件,前端采用`vue-element-admin`组件。
+AG-Admin是国内首个基于`Spring Cloud`微`服务`化`开发平台`,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用`Spring Boot2`以及`Spring Cloud (Finchley.M8)`相关核心组件,前端采用`vue-element-admin`组件。
+
### QQ群号:169824183
### 更新日志,查看[点击打开](https://gitee.com/geek_qi/ace-security/blob/master/README.md#%E5%BC%80%E6%BA%90%E7%89%88%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97)
@@ -23,20 +24,22 @@ AG-Admin是国内首个基于`Spring Cloud`微`服务`化`开发平台`,具有
菜单管理|√|√
权限管理|√|√
操作日志|√|√
-数据字典|×|`√`
服务运维监控| √|`√`
-完整用户认证 | × | `√`
服务管理模块|√|`√`
分布式事务|×|`√`
-2.0UI|×|`√`
+数据字典|×|`√`
+新版UI|×|`√`
完整开发文档|×|`√`
快速工程Cli|×|`√`
跨服务数据聚合|×|`√`
+服务动态路由|×|`√`
部门岗位|×|`√`
多租户模块|×|`√`
数据权限|×|`√`
分级授权|x|`√`
定时任务|×|`√`
+附件服务|`Doing`|`Doing`
+消息服务|`Doing`|`Doing`
## 超级管理员

@@ -47,10 +50,17 @@ AG-Admin是国内首个基于`Spring Cloud`微`服务`化`开发平台`,具有
## 服务管理

-### 联系老A,`QQ:463540703`,`微信:whb2lyx`,进行企业版购买
-
----
# 开源版更新日志
+
+### 2018.03.08 重大更新
+- 全面升级`Spring Boot 2.0.0.Release`&`Spring Cloud Finchley.M8`
+- 调整目录结构,移除ace-demo模块
+- zipkin链路模块升级
+- monitor监控模块优化
+- 增加Lucense全文搜索模块
+- 增加OSS附件服务模块
+
### 2018.02.25
- 增加服务管理模块
@@ -107,21 +117,17 @@ AG-Admin是国内首个基于`Spring Cloud`微`服务`化`开发平台`,具有
```
├─ace-security
│ │
-│ ├─ace-admin----------------管理端服务层
+│ ├─ace-modules--------------公共服务模块(基础系统、搜索、OSS)
│ │
│ ├─ace-auth-----------------鉴权中心
│ │
│ ├─ace-gate-----------------网关负载中心
│ │
+│ ├─ace-common---------------通用脚手架
+│ │
│ ├─ace-center---------------服务注册中心
│ │
-│ ├─ace-monitor--------------统一监控中心
-│ │
-│ ├─ace-config---------------统一配置中心
-│ │
-│ ├─ace-api------------------公共服务接口包
-│ │
-│ ├─ace-demo-----------------示例服务代码
+│ ├─ace-control--------------运维中心(监控、链路)
│ │
│ └─ace-sidebar--------------调用第三方语言
│
@@ -219,16 +225,6 @@ Apache License Version 2.0
## 虽然本产品是开源产品,但未经本人允许擅自申请专利,将公开追究法律责任。
-
-
# 我们的用户


-
-# 相信有了你们的支持,AG开源会越来越好,项目也会越来越完善。
-
-通过微信或支付宝,扫描下面的二维码,即可捐赠,如下图所示:
-
-微信 | 支付宝
----|---
- | 
\ No newline at end of file
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/MapperConfiguration.java b/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/MapperConfiguration.java
deleted file mode 100644
index 02be625b4fb6672516a42c3f2fa66e78609ee941..0000000000000000000000000000000000000000
--- a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/MapperConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.github.wxiaoqi.security.admin.config;
-
-
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import tk.mybatis.spring.mapper.MapperScannerConfigurer;
-
-/**
- * mybatis mapper 扫描配置类
- *
- * @author wanghaobin
- * @date 2016年12月15日
- * @since 1.7
- */
-@Configuration
-@AutoConfigureAfter(MybatisConfiguration.class)
-public class MapperConfiguration implements EnvironmentAware {
-
- private RelaxedPropertyResolver propertyResolver;
-
- private String basePackage;
-
- @Bean
- public MapperScannerConfigurer mapperScannerConfigurer(Environment environment){
-
- MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
- mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
- mapperScannerConfigurer.setBasePackage(basePackage);
- return mapperScannerConfigurer;
- }
-
-
- @Override
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.basePackage = propertyResolver.getProperty("mybatis.basepackage");
- }
-}
\ No newline at end of file
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/MybatisConfiguration.java b/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/MybatisConfiguration.java
deleted file mode 100644
index 3eb0394087efa2cc9913042ff32fa02d21217a62..0000000000000000000000000000000000000000
--- a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/MybatisConfiguration.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package com.github.wxiaoqi.security.admin.config;
-
-
-import com.alibaba.druid.pool.DruidDataSource;
-import com.github.pagehelper.PageHelper;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.plugin.Interceptor;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.Properties;
-
-/**
- * mybatis 配置数据源类
- *
- * @author wanghaobin
- * @date 2016年12月15日
- * @since 1.7
- */
-@Configuration
-@EnableTransactionManagement
-public class MybatisConfiguration implements EnvironmentAware {
-
-
- private RelaxedPropertyResolver propertyResolver;
-
- private String driveClassName;
- private String url;
- private String userName;
- private String password;
- private String xmlLocation;
- private String typeAliasesPackage;
- /////////////////////druid参数///////////////////////////////////////////////////
- private String filters;
- private String maxActive;
- private String initialSize;
- private String maxWait;
- private String minIdle;
- private String timeBetweenEvictionRunsMillis;
- private String minEvictableIdleTimeMillis;
- private String validationQuery;
- private String testWhileIdle;
- private String testOnBorrow;
- private String testOnReturn;
- private String poolPreparedStatements;
- private String maxOpenPreparedStatements;
- //////////////////////////////////////////////////////////////////////////
-
- @Bean
- public DataSource druidDataSource() {
- DruidDataSource druidDataSource = new DruidDataSource();
- druidDataSource.setUrl(url);
- druidDataSource.setUsername(userName);
- druidDataSource.setPassword(password);
- druidDataSource.setDriverClassName(StringUtils.isNotBlank(driveClassName)?driveClassName:"com.mysql.jdbc.Driver");
- druidDataSource.setMaxActive(StringUtils.isNotBlank(maxActive)? Integer.parseInt(maxActive):10);
- druidDataSource.setInitialSize(StringUtils.isNotBlank(initialSize)? Integer.parseInt(initialSize):1);
- druidDataSource.setMaxWait(StringUtils.isNotBlank(maxWait)? Integer.parseInt(maxWait):60000);
- druidDataSource.setMinIdle(StringUtils.isNotBlank(minIdle)? Integer.parseInt(minIdle):3);
- druidDataSource.setTimeBetweenEvictionRunsMillis(StringUtils.isNotBlank(timeBetweenEvictionRunsMillis)?
- Integer.parseInt(timeBetweenEvictionRunsMillis):60000);
- druidDataSource.setMinEvictableIdleTimeMillis(StringUtils.isNotBlank(minEvictableIdleTimeMillis)?
- Integer.parseInt(minEvictableIdleTimeMillis):300000);
- druidDataSource.setValidationQuery(StringUtils.isNotBlank(validationQuery)?validationQuery:"select 'x'");
- druidDataSource.setTestWhileIdle(StringUtils.isNotBlank(testWhileIdle)? Boolean.parseBoolean(testWhileIdle):true);
- druidDataSource.setTestOnBorrow(StringUtils.isNotBlank(testOnBorrow)? Boolean.parseBoolean(testOnBorrow):false);
- druidDataSource.setTestOnReturn(StringUtils.isNotBlank(testOnReturn)? Boolean.parseBoolean(testOnReturn):false);
- druidDataSource.setPoolPreparedStatements(StringUtils.isNotBlank(poolPreparedStatements)? Boolean.parseBoolean(poolPreparedStatements):true);
- druidDataSource.setMaxOpenPreparedStatements(StringUtils.isNotBlank(maxOpenPreparedStatements)? Integer.parseInt(maxOpenPreparedStatements):20);
-
- try {
- druidDataSource.setFilters(StringUtils.isNotBlank(filters)?filters:"stat, wall");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return druidDataSource;
- }
-
- @Bean(name = "sqlSessionFactory")
- public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) {
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(dataSource);
- if(StringUtils.isNotBlank(typeAliasesPackage)){
- bean.setTypeAliasesPackage(typeAliasesPackage);
- }
- //分页插件
- PageHelper pageHelper = new PageHelper();
- Properties properties = new Properties();
- properties.setProperty("reasonable", "true");
- properties.setProperty("supportMethodsArguments", "true");
- properties.setProperty("returnPageInfo", "check");
- properties.setProperty("params", "count=countSql");
- pageHelper.setProperties(properties);
- //添加XML目录
- ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
- Interceptor[] plugins = new Interceptor[]{pageHelper};
- bean.setPlugins(plugins);
- try {
- bean.setMapperLocations(resolver.getResources(xmlLocation));
- return bean.getObject();
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
-
- @Bean
- public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
- return new SqlSessionTemplate(sqlSessionFactory);
- }
-
- @Override
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.url = propertyResolver.getProperty("spring.datasource.url");
- this.userName= propertyResolver.getProperty("spring.datasource.username");
- this.password = propertyResolver.getProperty("spring.datasource.password");
- this.driveClassName = propertyResolver.getProperty("spring.datasource.driver-class-name");
- this.filters = propertyResolver.getProperty("spring.datasource.filters");
- this.maxActive = propertyResolver.getProperty("spring.datasource.maxActive");
- this.initialSize = propertyResolver.getProperty("spring.datasource.initialSize");
- this.maxWait = propertyResolver.getProperty("spring.datasource.maxWait");
- this.minIdle = propertyResolver.getProperty("spring.datasource.minIdle");
- this.timeBetweenEvictionRunsMillis = propertyResolver.getProperty("spring.datasource.timeBetweenEvictionRunsMillis");
- this.minEvictableIdleTimeMillis = propertyResolver.getProperty("spring.datasource.minEvictableIdleTimeMillis");
- this.validationQuery = propertyResolver.getProperty("spring.datasource.validationQuery");
- this.testWhileIdle = propertyResolver.getProperty("spring.datasource.testWhileIdle");
- this.testOnBorrow = propertyResolver.getProperty("spring.datasource.testOnBorrow");
- this.testOnReturn = propertyResolver.getProperty("spring.datasource.testOnReturn");
- this.poolPreparedStatements = propertyResolver.getProperty("spring.datasource.poolPreparedStatements");
- this.maxOpenPreparedStatements = propertyResolver.getProperty("spring.datasource.maxOpenPreparedStatements");
- this.typeAliasesPackage = propertyResolver.getProperty("mybatis.typeAliasesPackage");
- this.xmlLocation = propertyResolver.getProperty("mybatis.xmlLocation");
- }
-
- @Bean
- public DataSourceTransactionManager transactionManager(DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
-
-}
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/SwaggerConfiguration.java b/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/SwaggerConfiguration.java
deleted file mode 100644
index fe4f78c89123df63ae829e20c42e8707d06f7674..0000000000000000000000000000000000000000
--- a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/SwaggerConfiguration.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package com.github.wxiaoqi.security.admin.config;
-
-import static com.google.common.base.Predicates.or;
-import static springfox.documentation.builders.PathSelectors.regex;
-
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.web.context.request.async.DeferredResult;
-
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-/**
- * swagger配置项
- *
- * @description
- * @author wanghaobin
- * @date 2017年6月20日
- * @since 1.7
- */
-@Configuration
-@EnableSwagger2
-public class SwaggerConfiguration extends WebMvcConfigurerAdapter implements EnvironmentAware {
- private String basePackage;
- private String creatName;
- private String serviceName;
- private RelaxedPropertyResolver propertyResolver;
- private String description;
- /**
- * 这个地方要重新注入一下资源文件,不然不会注入资源的,也没有注入requestHandlerMappping,相当于xml配置的
- *
- *
- *
- * 不知道为什么,这也是spring boot的一个缺点(菜鸟觉得的)
- * @param registry
- */
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("swagger-ui.html")
- .addResourceLocations("classpath:/META-INF/resources/");
- registry.addResourceHandler("/webjars*")
- .addResourceLocations("classpath:/META-INF/resources/webjars/");
- }
-
-
-
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.basePackage(this.basePackage))
- .paths(PathSelectors.any()).build();
- }
-
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title(this.serviceName+" Restful APIs")
- .description(this.description)
- .contact(this.creatName).version("1.0").build();
- }
-
- @Override
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.basePackage = propertyResolver.getProperty("swagger.basepackage");
- this.creatName = propertyResolver.getProperty("swagger.service.developer");
- this.serviceName = propertyResolver.getProperty("swagger.service.name");
- this.description = propertyResolver.getProperty("swagger.service.description");
- }
-}
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/WebConfiguration.java b/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/WebConfiguration.java
deleted file mode 100644
index 0cdcc6964a25c0ac67ec796406bc974147683923..0000000000000000000000000000000000000000
--- a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/WebConfiguration.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.github.wxiaoqi.security.admin.config;
-
-import com.github.wxiaoqi.security.auth.client.interceptor.ServiceAuthRestInterceptor;
-import com.github.wxiaoqi.security.auth.client.interceptor.UserAuthRestInterceptor;
-import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-/**
- * Created by ace on 2017/9/8.
- */
-@Configuration("admimWebConfig")
-@Primary
-public class WebConfiguration extends WebMvcConfigurerAdapter {
- @Bean
- GlobalExceptionHandler getGlobalExceptionHandler() {
- return new GlobalExceptionHandler();
- }
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- ArrayList commonPathPatterns = getExcludeCommonPathPatterns();
- registry.addInterceptor(getServiceAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- commonPathPatterns.add("/api/user/validate");
- registry.addInterceptor(getUserAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- super.addInterceptors(registry);
- }
-
- @Bean
- ServiceAuthRestInterceptor getServiceAuthRestInterceptor() {
- return new ServiceAuthRestInterceptor();
- }
-
- @Bean
- UserAuthRestInterceptor getUserAuthRestInterceptor() {
- return new UserAuthRestInterceptor();
- }
-
- private ArrayList getExcludeCommonPathPatterns() {
- ArrayList list = new ArrayList<>();
- String[] urls = {
- "/v2/api-docs",
- "/swagger-resources/**",
- "/cache/**",
- "/api/log/save"
- };
- Collections.addAll(list, urls);
- return list;
- }
-
-// @Override
-// public void addResourceHandlers(ResourceHandlerRegistry registry) {
-// registry.addResourceHandler("/static/cache/**").addResourceLocations(
-// "classpath:/META-INF/static/");
-// super.addResourceHandlers(registry);
-// }
-}
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/druid/DruidStatFilter.java b/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/druid/DruidStatFilter.java
deleted file mode 100644
index d303a4f5bd91d022957ae1f53bff9a4bd5f8c22e..0000000000000000000000000000000000000000
--- a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/druid/DruidStatFilter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.github.wxiaoqi.security.admin.config.druid;
-
-import com.alibaba.druid.support.http.WebStatFilter;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.annotation.WebFilter;
-import javax.servlet.annotation.WebInitParam;
-import java.io.IOException;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-20 21:34
- */
-@WebFilter(filterName="druidWebStatFilter",urlPatterns="/druid/*",
- initParams={
- @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
- })
-public class DruidStatFilter extends WebStatFilter {
-
- @Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- response.setContentType("text/html");
- super.doFilter(request, response, chain);
- }
-}
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/druid/DruidStatViewServlet.java b/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/druid/DruidStatViewServlet.java
deleted file mode 100644
index 577e790fdbe68984acc61ec4dad6f50d419072a2..0000000000000000000000000000000000000000
--- a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/druid/DruidStatViewServlet.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.github.wxiaoqi.security.admin.config.druid;
-
-import com.alibaba.druid.support.http.StatViewServlet;
-
-import javax.servlet.annotation.WebInitParam;
-import javax.servlet.annotation.WebServlet;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-20 21:34
- */
-@SuppressWarnings("serial")
-@WebServlet(urlPatterns = "/druid/*",
- initParams={
-// @WebInitParam(name="allow",value="127.0.0.1,192.168.1.188"),// IP白名单 (没有配置或者为空,则允许所有访问)
-// @WebInitParam(name="deny",value="192.168.1.111"),// IP黑名单 (存在共同时,deny优先于allow)
-// @WebInitParam(name="loginUsername",value="admin"),// 用户名
-// @WebInitParam(name="loginPassword",value="123456"),// 密码
-// @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
- })
-public class DruidStatViewServlet extends StatViewServlet {
-
-
-}
diff --git a/ace-auth/ace-auth-client/pom.xml b/ace-auth/ace-auth-client/pom.xml
index 0522d8feea1fcb280d7b4a4b3ccae5f021bce111..9e9e0fe86e0c8c950e0e6212722acc1301a87411 100644
--- a/ace-auth/ace-auth-client/pom.xml
+++ b/ace-auth/ace-auth-client/pom.xml
@@ -5,7 +5,7 @@
ace-auth
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -14,35 +14,29 @@
com.github.wxiaoqi
ace-common
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
provided
- org.springframework
- spring-webmvc
- 4.3.9.RELEASE
- provided
-
-
- org.springframework.cloud
- spring-cloud-netflix-core
- 1.3.1.RELEASE
- provided
+ com.github.wxiaoqi
+ ace-auth-common
+ 2.0-SNAPSHOT
io.github.openfeign
- feign-core
- 9.5.0
- provided
+ feign-okhttp
- com.github.wxiaoqi
- ace-auth-common
- 1.0-SNAPSHOT
+ org.springframework.cloud
+ spring-cloud-openfeign-core
+ 2.0.0.M1
+ provided
- io.github.openfeign
- feign-okhttp
+ org.springframework
+ spring-webmvc
+ 5.0.4.RELEASE
+ provided
diff --git a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/config/FeignOkHttpConfig.java b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/config/FeignOkHttpConfig.java
index 2249e8202cb60e212b24762afefa0bbb64c0341e..af08a25a476c9d0fc273884ba14ba9e9b734cb02 100644
--- a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/config/FeignOkHttpConfig.java
+++ b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/config/FeignOkHttpConfig.java
@@ -6,7 +6,7 @@ import okhttp3.ConnectionPool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
-import org.springframework.cloud.netflix.feign.FeignAutoConfiguration;
+import org.springframework.cloud.openfeign.FeignAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/feign/ServiceAuthFeign.java b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/feign/ServiceAuthFeign.java
index 1e8a4a2bb4e4c79952c581b54b500f29c75d837b..75cb894b97b68ee77011be2d4b4022c000c17959 100644
--- a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/feign/ServiceAuthFeign.java
+++ b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/feign/ServiceAuthFeign.java
@@ -1,7 +1,7 @@
package com.github.wxiaoqi.security.auth.client.feign;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
-import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
diff --git a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/interceptor/OkHttpTokenInterceptor.java b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/interceptor/OkHttpTokenInterceptor.java
index 5bdedd4c8eb6925a4b91369e23bccff99e366e8f..f66ad77e4b69ee08078aee248e9d2e791c25f3be 100644
--- a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/interceptor/OkHttpTokenInterceptor.java
+++ b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/interceptor/OkHttpTokenInterceptor.java
@@ -1,8 +1,10 @@
package com.github.wxiaoqi.security.auth.client.interceptor;
import com.github.wxiaoqi.security.auth.client.config.ServiceAuthConfig;
+import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
import com.github.wxiaoqi.security.auth.client.jwt.ServiceAuthUtil;
import com.github.wxiaoqi.security.common.constant.CommonConstants;
+import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import lombok.extern.java.Log;
import okhttp3.Interceptor;
import okhttp3.Request;
@@ -21,30 +23,45 @@ import java.io.IOException;
@Component
@Log
public class OkHttpTokenInterceptor implements Interceptor {
- @Autowired
- @Lazy
- private ServiceAuthUtil serviceAuthUtil;
- @Autowired
- @Lazy
- private ServiceAuthConfig serviceAuthConfig;
+ @Autowired
+ @Lazy
+ private ServiceAuthUtil serviceAuthUtil;
+ @Autowired
+ @Lazy
+ private ServiceAuthConfig serviceAuthConfig;
+ @Autowired
+ @Lazy
+ private UserAuthConfig userAuthConfig;
- @Override
- public Response intercept(Chain chain) throws IOException {
- Request request = chain.request();
- Response response = chain.proceed(request);
- if(HttpStatus.FORBIDDEN.value()==response.code()){
- if(response.body().string().contains(String.valueOf(CommonConstants.EX_CLIENT_INVALID_CODE))){
- log.info("Client Token Expire,Retry to request...");
- serviceAuthUtil.refreshClientToken();
- Request newRequest = chain.request()
- .newBuilder()
- .header(serviceAuthConfig.getTokenHeader(),serviceAuthUtil.getClientToken())
- .build();
- response = chain.proceed(newRequest);
- }
- }
- return response;
- }
-
+ @Override
+ public Response intercept(Chain chain) throws IOException {
+ Request newRequest = null;
+ if (chain.request().url().toString().contains("client/token")) {
+ newRequest = chain.request()
+ .newBuilder()
+ .header(userAuthConfig.getTokenHeader(), BaseContextHandler.getToken())
+ .build();
+ } else {
+ newRequest = chain.request()
+ .newBuilder()
+ .header(userAuthConfig.getTokenHeader(), BaseContextHandler.getToken())
+ .header(serviceAuthConfig.getTokenHeader(), serviceAuthUtil.getClientToken())
+ .build();
+ }
+ Response response = chain.proceed(newRequest);
+ if (HttpStatus.FORBIDDEN.value() == response.code()) {
+ if (response.body().string().contains(String.valueOf(CommonConstants.EX_CLIENT_INVALID_CODE))) {
+ log.info("Client Token Expire,Retry to request...");
+ serviceAuthUtil.refreshClientToken();
+ newRequest = chain.request()
+ .newBuilder()
+ .header(userAuthConfig.getTokenHeader(), BaseContextHandler.getToken())
+ .header(serviceAuthConfig.getTokenHeader(), serviceAuthUtil.getClientToken())
+ .build();
+ response = chain.proceed(newRequest);
+ }
+ }
+ return response;
+ }
}
diff --git a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/interceptor/ServiceFeignInterceptor.java b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/interceptor/ServiceFeignInterceptor.java
deleted file mode 100644
index 12b0a2dd0916832e232085ed7710d79109c75f6e..0000000000000000000000000000000000000000
--- a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/interceptor/ServiceFeignInterceptor.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package com.github.wxiaoqi.security.auth.client.interceptor;
-
-import com.github.wxiaoqi.security.auth.client.config.ServiceAuthConfig;
-import com.github.wxiaoqi.security.auth.client.config.UserAuthConfig;
-import com.github.wxiaoqi.security.auth.client.jwt.ServiceAuthUtil;
-import com.github.wxiaoqi.security.common.context.BaseContextHandler;
-import feign.RequestInterceptor;
-import feign.RequestTemplate;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-
-/**
- *
- * @author ace
- * @date 2017/9/15
- */
-public class ServiceFeignInterceptor implements RequestInterceptor {
- private Logger logger = LoggerFactory.getLogger(ServiceFeignInterceptor.class);
- @Autowired
- private ServiceAuthConfig serviceAuthConfig;
- @Autowired
- private UserAuthConfig userAuthConfig;
- @Autowired
- private ServiceAuthUtil serviceAuthUtil;
-
- public ServiceFeignInterceptor() {
- }
-
-
- @Override
- public void apply(RequestTemplate requestTemplate) {
- requestTemplate.header(serviceAuthConfig.getTokenHeader(), serviceAuthUtil.getClientToken());
- requestTemplate.header(userAuthConfig.getTokenHeader(), BaseContextHandler.getToken());
- }
-
- public void setServiceAuthConfig(ServiceAuthConfig serviceAuthConfig) {
- this.serviceAuthConfig = serviceAuthConfig;
- }
-
- public void setUserAuthConfig(UserAuthConfig userAuthConfig) {
- this.userAuthConfig = userAuthConfig;
- }
-
- public void setServiceAuthUtil(ServiceAuthUtil serviceAuthUtil) {
- this.serviceAuthUtil = serviceAuthUtil;
- }
-}
\ No newline at end of file
diff --git a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/jwt/ServiceAuthUtil.java b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/jwt/ServiceAuthUtil.java
index 772babea8f8e79bc14541b571ed881214e701edb..22683a64a4d7a99dd07d75c21f4a5b22d7699478 100644
--- a/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/jwt/ServiceAuthUtil.java
+++ b/ace-auth/ace-auth-client/src/main/java/com/github/wxiaoqi/security/auth/client/jwt/ServiceAuthUtil.java
@@ -3,7 +3,6 @@ package com.github.wxiaoqi.security.auth.client.jwt;
import com.github.wxiaoqi.security.auth.client.config.ServiceAuthConfig;
import com.github.wxiaoqi.security.auth.client.feign.ServiceAuthFeign;
-import com.github.wxiaoqi.security.auth.common.event.AuthRemoteEvent;
import com.github.wxiaoqi.security.auth.common.util.jwt.IJWTInfo;
import com.github.wxiaoqi.security.auth.common.util.jwt.JWTHelper;
import com.github.wxiaoqi.security.common.exception.auth.ClientTokenException;
@@ -26,11 +25,13 @@ import java.util.List;
@Configuration
@Slf4j
@EnableScheduling
-public class ServiceAuthUtil implements ApplicationListener {
+public class ServiceAuthUtil{
@Autowired
private ServiceAuthConfig serviceAuthConfig;
+
@Autowired
private ServiceAuthFeign serviceAuthFeign;
+
private List allowedClient;
private String clientToken;
@@ -81,9 +82,4 @@ public class ServiceAuthUtil implements ApplicationListener {
}
return allowedClient;
}
-
- @Override
- public void onApplicationEvent(AuthRemoteEvent authRemoteEvent) {
- this.allowedClient = authRemoteEvent.getAllowedClient();
- }
}
\ No newline at end of file
diff --git a/ace-auth/ace-auth-common/pom.xml b/ace-auth/ace-auth-common/pom.xml
index b694a2e17fbcceb92a78ce9b6244c95857012c8d..be760010c4d05c98532589f05545b6b9d27e8887 100644
--- a/ace-auth/ace-auth-common/pom.xml
+++ b/ace-auth/ace-auth-common/pom.xml
@@ -5,7 +5,7 @@
ace-auth
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
diff --git a/ace-auth/ace-auth-common/src/main/java/com/github/wxiaoqi/security/auth/common/event/AuthRemoteEvent.java b/ace-auth/ace-auth-common/src/main/java/com/github/wxiaoqi/security/auth/common/event/AuthRemoteEvent.java
deleted file mode 100644
index 7160e19b9422244788f48559ae0e83ecbcb9bf80..0000000000000000000000000000000000000000
--- a/ace-auth/ace-auth-common/src/main/java/com/github/wxiaoqi/security/auth/common/event/AuthRemoteEvent.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package com.github.wxiaoqi.security.auth.common.event;
-
-import lombok.Data;
-import org.springframework.cloud.bus.event.RemoteApplicationEvent;
-
-import java.util.List;
-
-/**
- * @author ace
- * @create 2017/11/4.
- */
-@Data
-public class AuthRemoteEvent extends RemoteApplicationEvent {
- private List allowedClient;
-
- //jackson序列化反序列化必须有无参构造函数
- public AuthRemoteEvent() {
- }
-
- public AuthRemoteEvent(Object source, String originService, String destinationService, List allowedClient) {
- // source is the object that is publishing the event
- // originService is the unique context ID of the publisher
- super(source, originService, destinationService);
- this.allowedClient = allowedClient;
- }
-
-
-}
diff --git a/ace-auth/ace-auth-server/pom.xml b/ace-auth/ace-auth-server/pom.xml
index a5a15a40b0a11f0329d7ad1a64fc5be70d813a95..4ef75f5f120e958682bffe04cef3021358152e22 100644
--- a/ace-auth/ace-auth-server/pom.xml
+++ b/ace-auth/ace-auth-server/pom.xml
@@ -5,7 +5,7 @@
ace-auth
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -17,6 +17,11 @@
spring-boot-starter-undertow
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
org.springframework.boot
spring-boot-starter-actuator
@@ -24,23 +29,28 @@
org.springframework.cloud
- spring-cloud-sleuth-zipkin-stream
+ spring-cloud-starter-openfeign
+
org.springframework.cloud
- spring-cloud-starter-stream-rabbit
+ spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
- spring-cloud-starter-sleuth
+ spring-cloud-starter-zipkin
- org.springframework.cloud
- spring-cloud-stream-binder-rabbit
+ org.springframework.amqp
+ spring-rabbit
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
@@ -53,6 +63,13 @@
mysql-connector-java
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.1.0
+
+
tk.mybatis
@@ -63,17 +80,7 @@
com.github.pagehelper
pagehelper-spring-boot-starter
- 1.1.2
-
-
-
- org.springframework.cloud
- spring-cloud-starter-feign
-
-
-
- org.springframework.cloud
- spring-cloud-starter-eureka
+ 1.2.3
@@ -82,10 +89,6 @@
druid
-
- org.springframework.boot
- spring-boot-starter-data-redis
-
com.alibaba
@@ -100,30 +103,28 @@
com.github.wxiaoqi
- ace-admin-interface
- 1.0-SNAPSHOT
+ ace-interface
+ 2.0-SNAPSHOT
com.github.wxiaoqi
ace-common
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
+
com.github.wxiaoqi
ace-auth-common
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
+
com.github.wxiaoqi
ace-auth-common
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
-
- org.springframework.cloud
- spring-cloud-starter-bus-amqp
-
diff --git a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
index f4144e2821858d7de6294b66524f2e75b3eba793..069878d251ed10ec453866e6519ffcfc60fa9525 100644
--- a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
+++ b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/AuthBootstrap.java
@@ -7,7 +7,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.bus.jackson.RemoteApplicationEventScan;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
+import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* Created by Ace on 2017/6/2.
diff --git a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/WebConfiguration.java b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/WebConfiguration.java
index a431c507f029068cb86610440331c66e539b117e..3a18b1d6f9a5eb63d8deea3ff735e25047979806 100644
--- a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/WebConfiguration.java
+++ b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/configuration/WebConfiguration.java
@@ -7,17 +7,16 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-import java.util.ArrayList;
-import java.util.Collections;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
- * Created by ace on 2017/9/8.
+ *
+ * @author ace
+ * @date 2017/9/8
*/
@Configuration("admimWebConfig")
@Primary
-public class WebConfiguration extends WebMvcConfigurerAdapter {
+public class WebConfiguration implements WebMvcConfigurer {
@Bean
GlobalExceptionHandler getGlobalExceptionHandler() {
return new GlobalExceptionHandler();
@@ -25,10 +24,8 @@ public class WebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
- ArrayList commonPathPatterns = getExcludeCommonPathPatterns();
- registry.addInterceptor(getServiceAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- registry.addInterceptor(getUserAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- super.addInterceptors(registry);
+ registry.addInterceptor(getServiceAuthRestInterceptor()).addPathPatterns("/service/**");
+ registry.addInterceptor(getUserAuthRestInterceptor()).addPathPatterns("/service/**");
}
@Bean
@@ -41,16 +38,4 @@ public class WebConfiguration extends WebMvcConfigurerAdapter {
return new UserAuthRestInterceptor();
}
-
- private ArrayList getExcludeCommonPathPatterns() {
- ArrayList list = new ArrayList<>();
- String[] urls = {
- "/v2/api-docs",
- "/swagger-resources/**",
- "/client/**",
- "/jwt/**"
- };
- Collections.addAll(list, urls);
- return list;
- }
}
diff --git a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/feign/IUserService.java b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/feign/IUserService.java
index cb6f62ed8a8a2be886dc6d030588e5bbcc8c424a..cd916af14eab236979f255d55bbb6ce0f8b85ecd 100644
--- a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/feign/IUserService.java
+++ b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/feign/IUserService.java
@@ -2,7 +2,7 @@ package com.github.wxiaoqi.security.auth.feign;
import com.github.wxiaoqi.security.api.vo.user.UserInfo;
import com.github.wxiaoqi.security.auth.configuration.FeignConfiguration;
-import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
diff --git a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/service/impl/DBAuthClientService.java b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/service/impl/DBAuthClientService.java
index d7f5280295c1c4ce8e100c59a3611b709b65b89f..8858f47b63b66c2b7b70e666787252622af59b4f 100644
--- a/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/service/impl/DBAuthClientService.java
+++ b/ace-auth/ace-auth-server/src/main/java/com/github/wxiaoqi/security/auth/service/impl/DBAuthClientService.java
@@ -1,7 +1,6 @@
package com.github.wxiaoqi.security.auth.service.impl;
import com.github.wxiaoqi.security.auth.bean.ClientInfo;
-import com.github.wxiaoqi.security.auth.common.event.AuthRemoteEvent;
import com.github.wxiaoqi.security.auth.entity.Client;
import com.github.wxiaoqi.security.auth.mapper.ClientMapper;
import com.github.wxiaoqi.security.auth.service.AuthClientService;
@@ -51,6 +50,7 @@ public class DBAuthClientService implements AuthClientService {
return client;
}
+ @Override
public void validate(String clientId, String secret) throws Exception {
Client client = new Client();
client.setCode(clientId);
@@ -99,13 +99,6 @@ public class DBAuthClientService implements AuthClientService {
if(dbClient==null) {
client.setSecret(UUIDUtils.generateShortUuid());
clientMapper.insert(client);
- }else{
- // 主动推送
- final List clients = clientMapper.selectAllowedClient(dbClient.getId() + "");
- final String myUniqueId = context.getId();
- final AuthRemoteEvent event =
- new AuthRemoteEvent(this, myUniqueId, name, clients);
- context.publishEvent(event);
}
});
}
diff --git a/ace-auth/ace-auth-server/src/main/resources/application.yml b/ace-auth/ace-auth-server/src/main/resources/application.yml
index edf1c5a47ddca2817496cac9c61d0a075bc12aa4..5758e6d6491a2f010ab55fab0fe8ea6d67a1e6b6 100644
--- a/ace-auth/ace-auth-server/src/main/resources/application.yml
+++ b/ace-auth/ace-auth-server/src/main/resources/application.yml
@@ -37,11 +37,11 @@ spring:
port: ${RABBIT_MQ_PORT:5672}
username: guest
password: guest
- zipkin:
- enabled: true
sleuth:
sampler:
percentage: 1
+
+
mybatis:
basepackage: com.github.wxiaoqi.security.auth.mapper
xmlLocation: classpath:mapper/**/*.xml
@@ -80,8 +80,8 @@ hystrix:
eureka:
instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
+ statusPageUrlPath: /actuator/info
+ healthCheckUrlPath: /actuator/health
# docker 部署开启
prefer-ip-address: true
ip-address: 127.0.0.1
@@ -95,12 +95,12 @@ eureka:
jwt:
token-header: Authorization
- expire: 3600
+ expire: 14400
rsa-secret: xx1WET12^%3^(WE45
client:
id: ace-auth
secret: 123456
token-header: client-token
- expire: 3600
+ expire: 14400
rsa-secret: x2318^^(*WRYQWR(QW&T
diff --git a/ace-auth/pom.xml b/ace-auth/pom.xml
index 59e7fe5c211e8bde7239fbff8c240161799d3e8f..df6a095b9f8f541d6a2ad92b49781c9badc53979 100644
--- a/ace-auth/pom.xml
+++ b/ace-auth/pom.xml
@@ -5,7 +5,7 @@
ace-security
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
diff --git a/ace-center/pom.xml b/ace-center/pom.xml
index 819fa8d129471c00a311f43d87285b7077735cc9..c79019da51405e19370cd40f9fce3b991b220c10 100644
--- a/ace-center/pom.xml
+++ b/ace-center/pom.xml
@@ -5,7 +5,7 @@
ace-security
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -14,24 +14,14 @@
1.5.12
-
org.springframework.cloud
- spring-cloud-starter-eureka-server
+ spring-cloud-netflix-eureka-server
- org.springframework.boot
- spring-boot-starter-actuator
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
+ org.springframework.cloud
+ spring-cloud-starter
diff --git a/ace-common/pom.xml b/ace-common/pom.xml
index 235acb3216ac5b2569207d283d9667f23bca9660..921bbee0d5f4df0fd2feee5c0e8bb8f55cb1a327 100644
--- a/ace-common/pom.xml
+++ b/ace-common/pom.xml
@@ -5,7 +5,7 @@
ace-security
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
diff --git a/ace-common/src/main/java/com/github/wxiaoqi/security/common/rest/BaseController.java b/ace-common/src/main/java/com/github/wxiaoqi/security/common/rest/BaseController.java
index b60455ffc6cdaca06f9068bf14b11ee0a49b8128..94cbba439e41aae3af9b2b623cbf45c638e0984d 100644
--- a/ace-common/src/main/java/com/github/wxiaoqi/security/common/rest/BaseController.java
+++ b/ace-common/src/main/java/com/github/wxiaoqi/security/common/rest/BaseController.java
@@ -5,6 +5,7 @@ import com.github.wxiaoqi.security.common.context.BaseContextHandler;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.msg.TableResultResponse;
import com.github.wxiaoqi.security.common.util.Query;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -18,6 +19,7 @@ import java.util.Map;
* @author wanghaobin
* @create 2017-06-15 8:48
*/
+@Slf4j
public class BaseController {
@Autowired
protected HttpServletRequest request;
diff --git a/ace-config/pom.xml b/ace-config/pom.xml
deleted file mode 100644
index 39a0dba2a61c109badd185fd5072a426b62f2852..0000000000000000000000000000000000000000
--- a/ace-config/pom.xml
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
- ace-security
- com.github.wxiaoqi
- 1.0-SNAPSHOT
-
- 4.0.0
-
- ace-config
-
-
-
- org.springframework.boot
- spring-boot-actuator
-
-
- org.springframework.cloud
- spring-cloud-starter-eureka
-
-
- org.springframework.cloud
- spring-cloud-config-server
-
-
-
- ace-config
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
- com.spotify
- docker-maven-plugin
- ${docker.plugin.version}
-
-
- package
-
- build
-
-
-
-
- ${docker.image.prefix}/${project.build.finalName}
- ${project.basedir}/src/main/docker
-
-
- /
- ${project.build.directory}
- ${project.build.finalName}.jar
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- 1.8
- 1.8
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ace-config/readme.md b/ace-config/readme.md
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git a/ace-config/src/main/docker/Dockerfile b/ace-config/src/main/docker/Dockerfile
deleted file mode 100644
index 5eec517cd842c5a7e53829d057f65ecd3a466578..0000000000000000000000000000000000000000
--- a/ace-config/src/main/docker/Dockerfile
+++ /dev/null
@@ -1,5 +0,0 @@
-FROM livingobjects/jre8
-VOLUME /tmp
-ADD ace-config.jar app.jar
-RUN bash -c 'touch /app.jar'
-ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
diff --git a/ace-config/src/main/java/com/github/wxiaoqi/security/config/ConfigServerBootstrap.java b/ace-config/src/main/java/com/github/wxiaoqi/security/config/ConfigServerBootstrap.java
deleted file mode 100644
index 2bec88b85d19dfd68412e716a82b2e3df615f91f..0000000000000000000000000000000000000000
--- a/ace-config/src/main/java/com/github/wxiaoqi/security/config/ConfigServerBootstrap.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.github.wxiaoqi.security.config;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.cloud.config.server.EnableConfigServer;
-import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
-/**
- * Created by ace on 2017/7/29.
- */
-@EnableAutoConfiguration
-@EnableEurekaClient
-@EnableConfigServer
-public class ConfigServerBootstrap {
- public static void main(String[] args) {
- SpringApplication.run(ConfigServerBootstrap.class, args);
- }
-}
diff --git a/ace-control/ace-monitor/pom.xml b/ace-control/ace-monitor/pom.xml
index d2856d7128a307bf0de39a93dbb14340a14b8bc1..58434ef383fa761b13c33e6b3fbde8b2a7f9e563 100644
--- a/ace-control/ace-monitor/pom.xml
+++ b/ace-control/ace-monitor/pom.xml
@@ -3,17 +3,20 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- ace-control
- com.github.wxiaoqi
- 1.0-SNAPSHOT
+ org.springframework.boot
+ spring-boot-starter-parent
+ 1.5.4.RELEASE
+
4.0.0
ace-monitor
+
1.5.12
1.5.3
+
org.springframework.boot
@@ -23,6 +26,7 @@
org.springframework.boot
spring-boot-starter-actuator
+
org.springframework.cloud
spring-cloud-starter-eureka
@@ -32,15 +36,15 @@
org.springframework.boot
spring-boot-starter-thymeleaf
-
- org.springframework.cloud
- spring-cloud-netflix-turbine
-
-
- de.codecentric
- spring-boot-admin-server-ui-turbine
- ${boot.admin.version}
-
+
+
+
+
+
+
+
+
+
de.codecentric
spring-boot-admin-server
@@ -67,29 +71,40 @@
spring-boot-maven-plugin
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ Dalston.SR1
+ pom
+ import
+
+
+
\ No newline at end of file
diff --git a/ace-control/ace-monitor/src/main/java/com/github/wxiaoqi/security/monitor/rest/SecurityController.java b/ace-control/ace-monitor/src/main/java/com/github/wxiaoqi/security/monitor/rest/SecurityController.java
deleted file mode 100644
index 2efc3864362cdebe1c4a76671802cae220a72a2f..0000000000000000000000000000000000000000
--- a/ace-control/ace-monitor/src/main/java/com/github/wxiaoqi/security/monitor/rest/SecurityController.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.github.wxiaoqi.security.monitor.rest;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-02 13:43
- */
-@Controller
-public class SecurityController {
- @RequestMapping(value = "/login",method = RequestMethod.GET)
- public String login() {
- return "login";
- }
-}
diff --git a/ace-control/ace-monitor/src/main/resources/application.yml b/ace-control/ace-monitor/src/main/resources/application.yml
index 44b8feacaf2a688de158361995a892c62013941f..0ec4f738b02f9e7c5db6159d6f5b57be3c74a96f 100644
--- a/ace-control/ace-monitor/src/main/resources/application.yml
+++ b/ace-control/ace-monitor/src/main/resources/application.yml
@@ -1,17 +1,10 @@
spring:
application:
name: ace-monitor
- boot:
- admin:
- routes:
- endpoints: env,metrics,dump,jolokia,info,configprops,trace,logfile,refresh,flyway,liquibase,heapdump,loggers,auditevents,hystrix.stream
- turbine:
- clusters: jscloud
- location: turbine
+
server:
port: 8764 #启动端口
-
eureka:
instance:
preferIpAddress: true
@@ -20,6 +13,7 @@ eureka:
fetchRegistry: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
+
management:
security:
- enabled: false
\ No newline at end of file
+ enabled: false
diff --git a/ace-control/ace-monitor/src/main/resources/templates/login.html b/ace-control/ace-monitor/src/main/resources/templates/login.html
deleted file mode 100644
index bc5518013ac8ef4e32e2fa44dda30c365cec4af8..0000000000000000000000000000000000000000
--- a/ace-control/ace-monitor/src/main/resources/templates/login.html
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
- Ace-Monitor登录
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ace-control/ace-trace/db/init.sql b/ace-control/ace-trace/db/init.sql
index 424fb720c5c41c65c083ba2ce0bdddfdf3aa6eb0..42814aa01f8cfed5ca318d3912ba429f8e52aee1 100644
--- a/ace-control/ace-trace/db/init.sql
+++ b/ace-control/ace-trace/db/init.sql
@@ -1,7 +1,3 @@
-
-CREATE DATABASE ag_zipkin DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-Use ag_zipkin;
-
CREATE TABLE IF NOT EXISTS zipkin_spans (
`trace_id_high` BIGINT NOT NULL DEFAULT 0 COMMENT 'If non zero, this means the trace uses 128 bit traceIds instead of 64 bit',
`trace_id` BIGINT NOT NULL,
@@ -45,7 +41,8 @@ CREATE TABLE IF NOT EXISTS zipkin_dependencies (
`day` DATE NOT NULL,
`parent` VARCHAR(255) NOT NULL,
`child` VARCHAR(255) NOT NULL,
- `call_count` BIGINT
+ `call_count` BIGINT,
+ `error_count` BIGINT
) ENGINE=InnoDB ROW_FORMAT=COMPRESSED CHARACTER SET=utf8 COLLATE utf8_general_ci;
-ALTER TABLE zipkin_dependencies ADD UNIQUE KEY(`day`, `parent`, `child`);
\ No newline at end of file
+ALTER TABLE zipkin_dependencies ADD UNIQUE KEY(`day`, `parent`, `child`);
diff --git a/ace-control/ace-trace/pom.xml b/ace-control/ace-trace/pom.xml
deleted file mode 100644
index a81525f6ad7c81fb4648db8f69c9863401015f36..0000000000000000000000000000000000000000
--- a/ace-control/ace-trace/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
- ace-control
- com.github.wxiaoqi
- 1.0-SNAPSHOT
-
- 4.0.0
-
- ace-trace
-
-
-
-
- org.springframework.boot
- spring-boot-starter
-
-
-
- org.springframework.cloud
- spring-cloud-sleuth-zipkin-stream
-
-
- org.springframework.cloud
- spring-cloud-starter-stream-rabbit
-
-
- io.zipkin.java
- zipkin-autoconfigure-ui
- runtime
-
-
- org.springframework.cloud
- spring-cloud-starter-eureka
-
-
-
- io.zipkin.java
- zipkin-autoconfigure-storage-mysql
-
-
- mysql
- mysql-connector-java
-
-
- org.springframework.boot
- spring-boot-starter-jdbc
-
-
-
\ No newline at end of file
diff --git a/ace-control/ace-trace/readme.md b/ace-control/ace-trace/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..1f76774921f5c0633d5f29dfec6ae6963a2ae3bf
--- /dev/null
+++ b/ace-control/ace-trace/readme.md
@@ -0,0 +1,9 @@
+# 运行下载命令
+```
+$ curl -sSL https://zipkin.io/quickstart.sh | bash -s
+$ java -jar zipkin.jar
+```
+# 启动命令
+```
+RABBIT_URI=amqp://guest:guest@localhost:5672 STORAGE_TYPE=mysql MYSQL_DB=ag_zipkin MYSQL_USER=root MYSQL_PASS=123456 MYSQL_HOST=localhost MYSQL_USE_SSL=false java -jar zipkin.jar
+```
\ No newline at end of file
diff --git a/ace-control/ace-trace/src/main/java/com/github/wxiaoqi/security/trace/TraceBootstrap.java b/ace-control/ace-trace/src/main/java/com/github/wxiaoqi/security/trace/TraceBootstrap.java
deleted file mode 100644
index 1bfc11eac0173893d13f5598cc99d1326b2295a6..0000000000000000000000000000000000000000
--- a/ace-control/ace-trace/src/main/java/com/github/wxiaoqi/security/trace/TraceBootstrap.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.github.wxiaoqi.security.trace;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
-import org.springframework.cloud.sleuth.zipkin.stream.EnableZipkinStreamServer;
-
-/**
- * Created by ace on 2017/7/10.
- */
-@SpringBootApplication
-@EnableEurekaClient
-@EnableZipkinStreamServer
-public class TraceBootstrap {
- public static void main(String[] args) {
- SpringApplication.run(TraceBootstrap.class,args);
- }
-}
diff --git a/ace-control/ace-trace/src/main/resources/application.yml b/ace-control/ace-trace/src/main/resources/application.yml
deleted file mode 100644
index 5f3aa19bc89dd5402d61f929895c6ed759423085..0000000000000000000000000000000000000000
--- a/ace-control/ace-trace/src/main/resources/application.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-spring:
- rabbitmq:
- host: ${RABBIT_MQ_HOST:127.0.0.1}
- port: ${RABBIT_MQ_PORT:5672}
- username: guest
- password: guest
- datasource:
- url: jdbc:mysql://${MYSQL_HOST:localhost}:${MYSQL_PORT:3306}/ag_zipkin?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false
- username: root
- password: 123456
- driver-class-name: com.mysql.jdbc.Driver
- initialize: true
- continue-on-error: true
- application:
- name: ace-trace
- #zipkin数据保存到数据库中需要进行如下配置
- #表示当前程序不使用sleuth
- sleuth:
- enabled: false
- #表示zipkin数据存储方式是mysql
-zipkin:
- storage: typemysql
-
-server:
- port: 9411
-
-eureka:
- instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
- # docker 部署开启
-# prefer-ip-address: true
-# ip-address: 127.0.0.1
- client:
- serviceUrl:
-# defaultZone: http://localhost:8761/eureka/
- # docker 部署开启
- defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
diff --git a/ace-control/ace-trace/zipkin.jar b/ace-control/ace-trace/zipkin.jar
new file mode 100644
index 0000000000000000000000000000000000000000..26e51583f604aa34915ee9758dceee545ef1b30e
Binary files /dev/null and b/ace-control/ace-trace/zipkin.jar differ
diff --git a/ace-control/pom.xml b/ace-control/pom.xml
index bfb70faaa6799c3e01d29e6cdc1b98c88125cdba..675bd051c2f3597bec15df06301973b28e995b5c 100644
--- a/ace-control/pom.xml
+++ b/ace-control/pom.xml
@@ -5,14 +5,13 @@
ace-security
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
pom
ace-control
ace-monitor
- ace-trace
diff --git a/ace-demo/ace-demo-data-jpa/pom.xml b/ace-demo/ace-demo-data-jpa/pom.xml
deleted file mode 100644
index 3187b67a775797ede4aec91f53fe5c9bb4494b3f..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-data-jpa/pom.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
- ace-demo
- com.github.wxiaoqi
- 1.0-SNAPSHOT
-
- 4.0.0
-
- ace-demo-data-jpa
-
-
-
\ No newline at end of file
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/DemoMybatisBootstrap.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/DemoMybatisBootstrap.java
deleted file mode 100644
index 55e90e4b569f02d3840698671c850dab53eb5b51..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/DemoMybatisBootstrap.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis;
-
-import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.ServletComponentScan;
-import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
-import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-/**
- * @author ace
- * @create 2017/12/26.
- */
-@EnableEurekaClient
-@SpringBootApplication
-// 开启druid监控
-@ServletComponentScan("com.github.wxiaoqi.security.demo.mybatis.config.druid")
-// 开启事务
-@EnableTransactionManagement
-// 开启熔断监控
-@EnableCircuitBreaker
-// 开启服务鉴权
-@EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign"})
-@EnableAceAuthClient
-public class DemoMybatisBootstrap {
- public static void main(String[] args) {
- new SpringApplicationBuilder(DemoMybatisBootstrap.class).web(true).run(args); }
-}
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/biz/UserBiz.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/biz/UserBiz.java
deleted file mode 100644
index 62b9472ff8ce62ce4c67849bdadd3c2e672257f5..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/biz/UserBiz.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.biz;
-
-import com.github.wxiaoqi.security.common.biz.BaseBiz;
-import com.github.wxiaoqi.security.demo.mybatis.entity.User;
-import com.github.wxiaoqi.security.demo.mybatis.mapper.UserMapper;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-08 16:23
- */
-@Service
-@Transactional(rollbackFor = Exception.class)
-public class UserBiz extends BaseBiz {
-
-}
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/MapperConfiguration.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/MapperConfiguration.java
deleted file mode 100644
index f9b5a51d3feb1f593d87590de3a55c2b72ffbabf..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/MapperConfiguration.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.config;
-
-
-import org.springframework.boot.autoconfigure.AutoConfigureAfter;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import tk.mybatis.spring.mapper.MapperScannerConfigurer;
-
-/**
- * mybatis mapper 扫描配置类
- *
- * @author wanghaobin
- * @date 2016年12月15日
- * @since 1.7
- */
-@Configuration
-@AutoConfigureAfter(MybatisConfiguration.class)
-public class MapperConfiguration implements EnvironmentAware {
-
- private RelaxedPropertyResolver propertyResolver;
-
- private String basePackage;
-
- @Bean
- public MapperScannerConfigurer mapperScannerConfigurer(Environment environment){
-
- MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
- mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactory");
- mapperScannerConfigurer.setBasePackage(basePackage);
- return mapperScannerConfigurer;
- }
-
-
- @Override
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.basePackage = propertyResolver.getProperty("mybatis.basepackage");
- }
-}
\ No newline at end of file
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/MybatisConfiguration.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/MybatisConfiguration.java
deleted file mode 100644
index 528c100401f117e211537f9ef63bdd1e6e5c28cf..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/MybatisConfiguration.java
+++ /dev/null
@@ -1,153 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.config;
-
-
-import com.alibaba.druid.pool.DruidDataSource;
-import com.github.pagehelper.PageHelper;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.plugin.Interceptor;
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.io.support.ResourcePatternResolver;
-import org.springframework.jdbc.datasource.DataSourceTransactionManager;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-import javax.sql.DataSource;
-import java.sql.SQLException;
-import java.util.Properties;
-
-/**
- * mybatis 配置数据源类
- *
- * @author wanghaobin
- * @date 2016年12月15日
- * @since 1.7
- */
-@Configuration
-@EnableTransactionManagement
-public class MybatisConfiguration implements EnvironmentAware {
-
-
- private RelaxedPropertyResolver propertyResolver;
-
- private String driveClassName;
- private String url;
- private String userName;
- private String password;
- private String xmlLocation;
- private String typeAliasesPackage;
- /////////////////////druid参数///////////////////////////////////////////////////
- private String filters;
- private String maxActive;
- private String initialSize;
- private String maxWait;
- private String minIdle;
- private String timeBetweenEvictionRunsMillis;
- private String minEvictableIdleTimeMillis;
- private String validationQuery;
- private String testWhileIdle;
- private String testOnBorrow;
- private String testOnReturn;
- private String poolPreparedStatements;
- private String maxOpenPreparedStatements;
- //////////////////////////////////////////////////////////////////////////
-
- @Bean
- public DataSource druidDataSource() {
- DruidDataSource druidDataSource = new DruidDataSource();
- druidDataSource.setUrl(url);
- druidDataSource.setUsername(userName);
- druidDataSource.setPassword(password);
- druidDataSource.setDriverClassName(StringUtils.isNotBlank(driveClassName)?driveClassName:"com.mysql.jdbc.Driver");
- druidDataSource.setMaxActive(StringUtils.isNotBlank(maxActive)? Integer.parseInt(maxActive):10);
- druidDataSource.setInitialSize(StringUtils.isNotBlank(initialSize)? Integer.parseInt(initialSize):1);
- druidDataSource.setMaxWait(StringUtils.isNotBlank(maxWait)? Integer.parseInt(maxWait):60000);
- druidDataSource.setMinIdle(StringUtils.isNotBlank(minIdle)? Integer.parseInt(minIdle):3);
- druidDataSource.setTimeBetweenEvictionRunsMillis(StringUtils.isNotBlank(timeBetweenEvictionRunsMillis)?
- Integer.parseInt(timeBetweenEvictionRunsMillis):60000);
- druidDataSource.setMinEvictableIdleTimeMillis(StringUtils.isNotBlank(minEvictableIdleTimeMillis)?
- Integer.parseInt(minEvictableIdleTimeMillis):300000);
- druidDataSource.setValidationQuery(StringUtils.isNotBlank(validationQuery)?validationQuery:"select 'x'");
- druidDataSource.setTestWhileIdle(StringUtils.isNotBlank(testWhileIdle)? Boolean.parseBoolean(testWhileIdle):true);
- druidDataSource.setTestOnBorrow(StringUtils.isNotBlank(testOnBorrow)? Boolean.parseBoolean(testOnBorrow):false);
- druidDataSource.setTestOnReturn(StringUtils.isNotBlank(testOnReturn)? Boolean.parseBoolean(testOnReturn):false);
- druidDataSource.setPoolPreparedStatements(StringUtils.isNotBlank(poolPreparedStatements)? Boolean.parseBoolean(poolPreparedStatements):true);
- druidDataSource.setMaxOpenPreparedStatements(StringUtils.isNotBlank(maxOpenPreparedStatements)? Integer.parseInt(maxOpenPreparedStatements):20);
-
- try {
- druidDataSource.setFilters(StringUtils.isNotBlank(filters)?filters:"stat, wall");
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return druidDataSource;
- }
-
- @Bean(name = "sqlSessionFactory")
- public SqlSessionFactory sqlSessionFactoryBean(DataSource dataSource) {
- SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
- bean.setDataSource(dataSource);
- if(StringUtils.isNotBlank(typeAliasesPackage)){
- bean.setTypeAliasesPackage(typeAliasesPackage);
- }
- //分页插件
- PageHelper pageHelper = new PageHelper();
- Properties properties = new Properties();
- properties.setProperty("reasonable", "true");
- properties.setProperty("supportMethodsArguments", "true");
- properties.setProperty("returnPageInfo", "check");
- properties.setProperty("params", "count=countSql");
- pageHelper.setProperties(properties);
- //添加XML目录
- ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
- Interceptor[] plugins = new Interceptor[]{pageHelper};
- bean.setPlugins(plugins);
- try {
- bean.setMapperLocations(resolver.getResources(xmlLocation));
- return bean.getObject();
- } catch (Exception e) {
- e.printStackTrace();
- throw new RuntimeException(e);
- }
- }
-
- @Bean
- public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory) {
- return new SqlSessionTemplate(sqlSessionFactory);
- }
-
- @Override
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.url = propertyResolver.getProperty("spring.datasource.url");
- this.userName= propertyResolver.getProperty("spring.datasource.username");
- this.password = propertyResolver.getProperty("spring.datasource.password");
- this.driveClassName = propertyResolver.getProperty("spring.datasource.driver-class-name");
- this.filters = propertyResolver.getProperty("spring.datasource.filters");
- this.maxActive = propertyResolver.getProperty("spring.datasource.maxActive");
- this.initialSize = propertyResolver.getProperty("spring.datasource.initialSize");
- this.maxWait = propertyResolver.getProperty("spring.datasource.maxWait");
- this.minIdle = propertyResolver.getProperty("spring.datasource.minIdle");
- this.timeBetweenEvictionRunsMillis = propertyResolver.getProperty("spring.datasource.timeBetweenEvictionRunsMillis");
- this.minEvictableIdleTimeMillis = propertyResolver.getProperty("spring.datasource.minEvictableIdleTimeMillis");
- this.validationQuery = propertyResolver.getProperty("spring.datasource.validationQuery");
- this.testWhileIdle = propertyResolver.getProperty("spring.datasource.testWhileIdle");
- this.testOnBorrow = propertyResolver.getProperty("spring.datasource.testOnBorrow");
- this.testOnReturn = propertyResolver.getProperty("spring.datasource.testOnReturn");
- this.poolPreparedStatements = propertyResolver.getProperty("spring.datasource.poolPreparedStatements");
- this.maxOpenPreparedStatements = propertyResolver.getProperty("spring.datasource.maxOpenPreparedStatements");
- this.typeAliasesPackage = propertyResolver.getProperty("mybatis.typeAliasesPackage");
- this.xmlLocation = propertyResolver.getProperty("mybatis.xmlLocation");
- }
-
- @Bean
- public DataSourceTransactionManager transactionManager(DataSource dataSource) {
- return new DataSourceTransactionManager(dataSource);
- }
-
-}
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/SwaggerConfiguration.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/SwaggerConfiguration.java
deleted file mode 100644
index 8fa668d2b0417c8b747cba7f0dc9a9c0ff82d029..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/SwaggerConfiguration.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.config;
-
-import org.springframework.boot.bind.RelaxedPropertyResolver;
-import org.springframework.context.EnvironmentAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-/**
- * swagger配置项
- *
- * @description
- * @author wanghaobin
- * @date 2017年6月20日
- * @since 1.7
- */
-@Configuration
-@EnableSwagger2
-public class SwaggerConfiguration extends WebMvcConfigurerAdapter implements EnvironmentAware {
- private String basePackage;
- private String creatName;
- private String serviceName;
- private RelaxedPropertyResolver propertyResolver;
- private String description;
- /**
- * 这个地方要重新注入一下资源文件,不然不会注入资源的,也没有注入requestHandlerMappping,相当于xml配置的
- *
- *
- *
- * 不知道为什么,这也是spring boot的一个缺点(菜鸟觉得的)
- * @param registry
- */
- @Override
- public void addResourceHandlers(ResourceHandlerRegistry registry) {
- registry.addResourceHandler("swagger-ui.html")
- .addResourceLocations("classpath:/META-INF/resources/");
- registry.addResourceHandler("/webjars*")
- .addResourceLocations("classpath:/META-INF/resources/webjars/");
- }
-
-
-
- @Bean
- public Docket createRestApi() {
- return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
- .select()
- .apis(RequestHandlerSelectors.basePackage(this.basePackage))
- .paths(PathSelectors.any()).build();
- }
-
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title(this.serviceName+" Restful APIs")
- .description(this.description)
- .contact(this.creatName).version("1.0").build();
- }
-
- @Override
- public void setEnvironment(Environment environment) {
- this.propertyResolver = new RelaxedPropertyResolver(environment, null);
- this.basePackage = propertyResolver.getProperty("swagger.basepackage");
- this.creatName = propertyResolver.getProperty("swagger.service.developer");
- this.serviceName = propertyResolver.getProperty("swagger.service.name");
- this.description = propertyResolver.getProperty("swagger.service.description");
- }
-}
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/druid/DruidStatFilter.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/druid/DruidStatFilter.java
deleted file mode 100644
index 3b6001982665b34541f9e24b66dfdc034c83cc7b..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/druid/DruidStatFilter.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.config.druid;
-
-import com.alibaba.druid.support.http.WebStatFilter;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.annotation.WebFilter;
-import javax.servlet.annotation.WebInitParam;
-import java.io.IOException;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-20 21:34
- */
-@WebFilter(filterName="druidWebStatFilter",urlPatterns="/druid/*",
- initParams={
- @WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略资源
- })
-public class DruidStatFilter extends WebStatFilter {
-
- @Override
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- response.setContentType("text/html");
- super.doFilter(request, response, chain);
- }
-}
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/druid/DruidStatViewServlet.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/druid/DruidStatViewServlet.java
deleted file mode 100644
index 59d050384fa381559f7f8e5657e30535fb1599d2..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/druid/DruidStatViewServlet.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.config.druid;
-
-import com.alibaba.druid.support.http.StatViewServlet;
-
-import javax.servlet.annotation.WebServlet;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-20 21:34
- */
-@SuppressWarnings("serial")
-@WebServlet(urlPatterns = "/druid/*",
- initParams={
-// @WebInitParam(name="allow",value="127.0.0.1,192.168.1.188"),// IP白名单 (没有配置或者为空,则允许所有访问)
-// @WebInitParam(name="deny",value="192.168.1.111"),// IP黑名单 (存在共同时,deny优先于allow)
-// @WebInitParam(name="loginUsername",value="admin"),// 用户名
-// @WebInitParam(name="loginPassword",value="123456"),// 密码
-// @WebInitParam(name="resetEnable",value="false")// 禁用HTML页面上的“Reset All”功能
- })
-public class DruidStatViewServlet extends StatViewServlet {
-
-
-}
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/entity/User.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/entity/User.java
deleted file mode 100644
index bc0a27c030c070a66d7fbb36f6d72a2024842ada..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/entity/User.java
+++ /dev/null
@@ -1,468 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.entity;
-
-import javax.persistence.Column;
-import javax.persistence.Id;
-import javax.persistence.Table;
-import java.util.Date;
-
-@Table(name = "base_user")
-public class User {
- @Id
- private Integer id;
-
- private String username;
-
- private String password;
-
- private String name;
-
- private String birthday;
-
- private String address;
-
- @Column(name = "mobile_phone")
- private String mobilePhone;
-
- @Column(name = "tel_phone")
- private String telPhone;
-
- private String email;
-
- private String sex;
-
- private String type;
-
- private String description;
-
- @Column(name = "crt_time")
- private Date crtTime;
-
- @Column(name = "crt_user")
- private String crtUser;
-
- @Column(name = "crt_name")
- private String crtName;
-
- @Column(name = "crt_host")
- private String crtHost;
-
- @Column(name = "upd_time")
- private Date updTime;
-
- @Column(name = "upd_user")
- private String updUser;
-
- @Column(name = "upd_name")
- private String updName;
-
- @Column(name = "upd_host")
- private String updHost;
-
- private String attr1;
-
- private String attr2;
-
- private String attr3;
-
- private String attr4;
-
- private String attr5;
-
- private String attr6;
-
- private String attr7;
-
- private String attr8;
-
- /**
- * @return id
- */
- public Integer getId() {
- return id;
- }
-
- /**
- * @param id
- */
- public void setId(Integer id) {
- this.id = id;
- }
-
- /**
- * @return username
- */
- public String getUsername() {
- return username;
- }
-
- /**
- * @param username
- */
- public void setUsername(String username) {
- this.username = username;
- }
-
- /**
- * @return password
- */
- public String getPassword() {
- return password;
- }
-
- /**
- * @param password
- */
- public void setPassword(String password) {
- this.password = password;
- }
-
- /**
- * @return name
- */
- public String getName() {
- return name;
- }
-
- /**
- * @param name
- */
- public void setName(String name) {
- this.name = name;
- }
-
- /**
- * @return birthday
- */
- public String getBirthday() {
- return birthday;
- }
-
- /**
- * @param birthday
- */
- public void setBirthday(String birthday) {
- this.birthday = birthday;
- }
-
- /**
- * @return address
- */
- public String getAddress() {
- return address;
- }
-
- /**
- * @param address
- */
- public void setAddress(String address) {
- this.address = address;
- }
-
- /**
- * @return mobile_phone
- */
- public String getMobilePhone() {
- return mobilePhone;
- }
-
- /**
- * @param mobilePhone
- */
- public void setMobilePhone(String mobilePhone) {
- this.mobilePhone = mobilePhone;
- }
-
- /**
- * @return tel_phone
- */
- public String getTelPhone() {
- return telPhone;
- }
-
- /**
- * @param telPhone
- */
- public void setTelPhone(String telPhone) {
- this.telPhone = telPhone;
- }
-
- /**
- * @return email
- */
- public String getEmail() {
- return email;
- }
-
- /**
- * @param email
- */
- public void setEmail(String email) {
- this.email = email;
- }
-
- /**
- * @return sex
- */
- public String getSex() {
- return sex;
- }
-
- /**
- * @param sex
- */
- public void setSex(String sex) {
- this.sex = sex;
- }
-
- /**
- * @return type
- */
- public String getType() {
- return type;
- }
-
- /**
- * @param type
- */
- public void setType(String type) {
- this.type = type;
- }
-
- /**
- * @return description
- */
- public String getDescription() {
- return description;
- }
-
- /**
- * @param description
- */
- public void setDescription(String description) {
- this.description = description;
- }
-
- /**
- * @return crt_time
- */
- public Date getCrtTime() {
- return crtTime;
- }
-
- /**
- * @param crtTime
- */
- public void setCrtTime(Date crtTime) {
- this.crtTime = crtTime;
- }
-
- /**
- * @return crt_user
- */
- public String getCrtUser() {
- return crtUser;
- }
-
- /**
- * @param crtUser
- */
- public void setCrtUser(String crtUser) {
- this.crtUser = crtUser;
- }
-
- /**
- * @return crt_name
- */
- public String getCrtName() {
- return crtName;
- }
-
- /**
- * @param crtName
- */
- public void setCrtName(String crtName) {
- this.crtName = crtName;
- }
-
- /**
- * @return crt_host
- */
- public String getCrtHost() {
- return crtHost;
- }
-
- /**
- * @param crtHost
- */
- public void setCrtHost(String crtHost) {
- this.crtHost = crtHost;
- }
-
- /**
- * @return upd_time
- */
- public Date getUpdTime() {
- return updTime;
- }
-
- /**
- * @param updTime
- */
- public void setUpdTime(Date updTime) {
- this.updTime = updTime;
- }
-
- /**
- * @return upd_user
- */
- public String getUpdUser() {
- return updUser;
- }
-
- /**
- * @param updUser
- */
- public void setUpdUser(String updUser) {
- this.updUser = updUser;
- }
-
- /**
- * @return upd_name
- */
- public String getUpdName() {
- return updName;
- }
-
- /**
- * @param updName
- */
- public void setUpdName(String updName) {
- this.updName = updName;
- }
-
- /**
- * @return upd_host
- */
- public String getUpdHost() {
- return updHost;
- }
-
- /**
- * @param updHost
- */
- public void setUpdHost(String updHost) {
- this.updHost = updHost;
- }
-
- /**
- * @return attr1
- */
- public String getAttr1() {
- return attr1;
- }
-
- /**
- * @param attr1
- */
- public void setAttr1(String attr1) {
- this.attr1 = attr1;
- }
-
- /**
- * @return attr2
- */
- public String getAttr2() {
- return attr2;
- }
-
- /**
- * @param attr2
- */
- public void setAttr2(String attr2) {
- this.attr2 = attr2;
- }
-
- /**
- * @return attr3
- */
- public String getAttr3() {
- return attr3;
- }
-
- /**
- * @param attr3
- */
- public void setAttr3(String attr3) {
- this.attr3 = attr3;
- }
-
- /**
- * @return attr4
- */
- public String getAttr4() {
- return attr4;
- }
-
- /**
- * @param attr4
- */
- public void setAttr4(String attr4) {
- this.attr4 = attr4;
- }
-
- /**
- * @return attr5
- */
- public String getAttr5() {
- return attr5;
- }
-
- /**
- * @param attr5
- */
- public void setAttr5(String attr5) {
- this.attr5 = attr5;
- }
-
- /**
- * @return attr6
- */
- public String getAttr6() {
- return attr6;
- }
-
- /**
- * @param attr6
- */
- public void setAttr6(String attr6) {
- this.attr6 = attr6;
- }
-
- /**
- * @return attr7
- */
- public String getAttr7() {
- return attr7;
- }
-
- /**
- * @param attr7
- */
- public void setAttr7(String attr7) {
- this.attr7 = attr7;
- }
-
- /**
- * @return attr8
- */
- public String getAttr8() {
- return attr8;
- }
-
- /**
- * @param attr8
- */
- public void setAttr8(String attr8) {
- this.attr8 = attr8;
- }
-}
\ No newline at end of file
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/mapper/UserMapper.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/mapper/UserMapper.java
deleted file mode 100644
index a2c3e1eba359c62cc3b55a654e45721007ffea0f..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/mapper/UserMapper.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.mapper;
-
-import com.github.wxiaoqi.security.demo.mybatis.entity.User;
-import tk.mybatis.mapper.common.Mapper;
-
-public interface UserMapper extends Mapper {
-}
\ No newline at end of file
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/rest/UserController.java b/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/rest/UserController.java
deleted file mode 100644
index aabbfd4362d0107c7a51b6145bf5610edf9445a9..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/rest/UserController.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.github.wxiaoqi.security.demo.mybatis.rest;
-
-import com.github.wxiaoqi.security.common.rest.BaseController;
-import com.github.wxiaoqi.security.demo.mybatis.biz.UserBiz;
-import com.github.wxiaoqi.security.demo.mybatis.entity.User;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * ${DESCRIPTION}
- *
- * @author wanghaobin
- * @create 2017-06-08 11:51
- */
-@RestController
-@RequestMapping("/demo/user")
-public class UserController extends BaseController {
-
-}
diff --git a/ace-demo/ace-demo-mybatis/src/main/resources/application.yml b/ace-demo/ace-demo-mybatis/src/main/resources/application.yml
deleted file mode 100644
index 10151abf2c22b70ff1a7d39d6ac4f33ca0c561a5..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/resources/application.yml
+++ /dev/null
@@ -1,77 +0,0 @@
-logging:
- level:
-# tk.mybatis: DEBUG
- com.github.wxiaoqi.security.demo.mybatis: DEBUG
-spring:
- application:
- name: ace-demo-mybatis
- jackson:
- date-format: yyyy-MM-dd HH:mm:ss
- time-zone: GMT+8
- default-property-inclusion: non_null
- datasource:
- name: test
- url: jdbc:mysql://localhost:3306/ag_admin?useUnicode=true&characterEncoding=UTF8
- username: root
- password: 123456
- # 使用druid数据源
- type: com.alibaba.druid.pool.DruidDataSource
- driver-class-name: com.mysql.jdbc.Driver
- filters: stat
- maxActive: 20
- initialSize: 1
- maxWait: 60000
- minIdle: 1
- timeBetweenEvictionRunsMillis: 60000
- minEvictableIdleTimeMillis: 300000
- validationQuery: select 'x'
- testWhileIdle: true
- testOnBorrow: false
- testOnReturn: false
- poolPreparedStatements: true
- maxOpenPreparedStatements: 20
- rabbitmq:
- host: localhost
- port: 5672
- username: guest
- password: guest
-
-# 配置数据库
-mybatis:
- basepackage: com.github.wxiaoqi.security.demo.mybatis.mapper
- xmlLocation: classpath:mapper/**/*.xml
-
-server:
- port: 9990
-
-# 配置spring cloud 服务发现
-eureka:
- instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
- # docker 部署开启
-# prefer-ip-address: true
-# ip-address: 127.0.0.1
- client:
- serviceUrl:
-# defaultZone: http://localhost:8761/eureka/
- # docker 部署开启
- defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
-
-# 配置swagger
-swagger:
- basepackage: com.github.wxiaoqi.security.demo.mybatis
- service:
- name: Admin Back
- description: Admin Back后端服务
- developer: 老A
-
-# 配置用户认证和服务认证信息
-auth:
- serviceId: ace-auth
- user:
- token-header: Authorization
- client:
- id: ace-demo-mybatis
- secret: bZf8yvj9
- token-header: client-token
diff --git a/ace-demo/ace-demo-mybatis/src/main/resources/mapper/UserMapper.xml b/ace-demo/ace-demo-mybatis/src/main/resources/mapper/UserMapper.xml
deleted file mode 100644
index 7f7453ba15e0701820763fedfaefb4fddb3ba4ac..0000000000000000000000000000000000000000
--- a/ace-demo/ace-demo-mybatis/src/main/resources/mapper/UserMapper.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/ace-demo/ace-service-template/pom.xml b/ace-demo/ace-service-template/pom.xml
deleted file mode 100644
index 75b2507d29a4c241faaef618711cb795c61b60d1..0000000000000000000000000000000000000000
--- a/ace-demo/ace-service-template/pom.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-
-
-
- ace-demo
- com.github.wxiaoqi
- 1.0-SNAPSHOT
-
- 4.0.0
-
- ace-service-template
-
-
-
- org.springframework.boot
- spring-boot-starter-jdbc
-
-
- org.springframework.boot
- spring-boot-starter-undertow
-
-
- org.springframework.cloud
- spring-cloud-starter-feign
-
-
-
- org.springframework.cloud
- spring-cloud-starter-eureka
-
-
-
- com.github.wxiaoqi
- ace-auth-client
- 1.0-SNAPSHOT
-
-
- com.github.wxiaoqi
- ace-common
- 1.0-SNAPSHOT
-
-
-
\ No newline at end of file
diff --git a/ace-demo/ace-service-template/src/main/java/com/github/wxiaoqi/security/template/TemplateBootstrap.java b/ace-demo/ace-service-template/src/main/java/com/github/wxiaoqi/security/template/TemplateBootstrap.java
deleted file mode 100644
index e207119569e559af082d883a39c9800fe790b8dc..0000000000000000000000000000000000000000
--- a/ace-demo/ace-service-template/src/main/java/com/github/wxiaoqi/security/template/TemplateBootstrap.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.github.wxiaoqi.security.template;
-
-import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
-
-/**
- * @author ace
- * @create 2017/12/26.
- */
-@EnableEurekaClient
-@SpringBootApplication
-// 开启服务鉴权
-@EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign"})
-@EnableAceAuthClient
-public class TemplateBootstrap {
- public static void main(String[] args) {
- new SpringApplicationBuilder(TemplateBootstrap.class).web(true).run(args); }
-}
diff --git a/ace-demo/ace-service-template/src/main/java/com/github/wxiaoqi/security/template/config/WebConfiguration.java b/ace-demo/ace-service-template/src/main/java/com/github/wxiaoqi/security/template/config/WebConfiguration.java
deleted file mode 100644
index de4fae90e5ea0e658f3019409f8bae3da4fefc2f..0000000000000000000000000000000000000000
--- a/ace-demo/ace-service-template/src/main/java/com/github/wxiaoqi/security/template/config/WebConfiguration.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package com.github.wxiaoqi.security.template.config;
-
-import com.github.wxiaoqi.security.auth.client.interceptor.ServiceAuthRestInterceptor;
-import com.github.wxiaoqi.security.auth.client.interceptor.UserAuthRestInterceptor;
-import com.github.wxiaoqi.security.common.handler.GlobalExceptionHandler;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
-
-import java.util.ArrayList;
-import java.util.Collections;
-
-/**
- * 拦截器和全局配置
- * @author ace
- * @date 2017/9/8
- */
-@Configuration("templateWebConfig")
-@Primary
-public class WebConfiguration extends WebMvcConfigurerAdapter {
- @Bean
- GlobalExceptionHandler getGlobalExceptionHandler() {
- return new GlobalExceptionHandler();
- }
-
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- ArrayList commonPathPatterns = getExcludeCommonPathPatterns();
- /*
- 增加服务权限烂机器
- */
- registry.addInterceptor(getServiceAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- /*
- 增加用户权限拦截器
- */
- registry.addInterceptor(getUserAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- super.addInterceptors(registry);
- }
-
- /**
- * 配置服务权限拦截
- * @return
- */
- @Bean
- ServiceAuthRestInterceptor getServiceAuthRestInterceptor() {
- return new ServiceAuthRestInterceptor();
- }
-
- /**
- * 配置用户用户token拦截
- * @return
- */
- @Bean
- UserAuthRestInterceptor getUserAuthRestInterceptor() {
- return new UserAuthRestInterceptor();
- }
-
- /**
- * 配置一些不进行拦截的路劲
- * @return
- */
- private ArrayList getExcludeCommonPathPatterns() {
- ArrayList list = new ArrayList();
- String[] urls = {
- "/v2/api-docs",
- "/swagger-resources/**"
- };
- Collections.addAll(list, urls);
- return list;
- }
-}
diff --git a/ace-demo/ace-service-template/src/main/resources/application.yml b/ace-demo/ace-service-template/src/main/resources/application.yml
deleted file mode 100644
index 2f4c88d6ac5401582656f6d433e4e56f695ba5cd..0000000000000000000000000000000000000000
--- a/ace-demo/ace-service-template/src/main/resources/application.yml
+++ /dev/null
@@ -1,45 +0,0 @@
-logging:
- level:
-# tk.mybatis: DEBUG
- com.github.wxiaoqi.security.demo.mybatis: DEBUG
-spring:
- application:
- name: ace-demo-mybatis
- jackson:
- date-format: yyyy-MM-dd HH:mm:ss
- time-zone: GMT+8
- default-property-inclusion: non_null
- rabbitmq:
- host: localhost
- port: 5672
- username: guest
- password: guest
-
-server:
- port: 9990
-
-# 配置spring cloud 服务发现
-eureka:
- instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
- # docker 部署开启
-# prefer-ip-address: true
-# ip-address: 127.0.0.1
- client:
- serviceUrl:
-# defaultZone: http://localhost:8761/eureka/
- # docker 部署开启
- defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
-
-
-# 配置用户认证和服务认证信息
-auth:
- serviceId: ace-auth
- user:
- token-header: Authorization
- # 配置服务客户端和服务私有密钥
- client:
- id: ace-template
- secret: bZf8yvj8
- token-header: client-token
diff --git a/ace-gate/ace-gate-ratelimit/pom.xml b/ace-gate/ace-gate-ratelimit/pom.xml
index ee229cca3e7b9f08d91827cabf4dae36a2a13c9e..700498193657401ee97592515521973a39e5010e 100644
--- a/ace-gate/ace-gate-ratelimit/pom.xml
+++ b/ace-gate/ace-gate-ratelimit/pom.xml
@@ -5,7 +5,7 @@
ace-gate
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -25,7 +25,7 @@
org.springframework.cloud
- spring-cloud-starter-zuul
+ spring-cloud-starter-netflix-zuul
provided
true
diff --git a/ace-gate/ace-gate-ratelimit/src/main/java/com/github/wxiaoqi/gate/ratelimit/config/repository/springdata/SpringDataRateLimiter.java b/ace-gate/ace-gate-ratelimit/src/main/java/com/github/wxiaoqi/gate/ratelimit/config/repository/springdata/SpringDataRateLimiter.java
index d34cb6e75a4e3d2b68c7e9ad56f9b020ae35cacd..e55481bdbb151185fb5968384d199f9086a526af 100644
--- a/ace-gate/ace-gate-ratelimit/src/main/java/com/github/wxiaoqi/gate/ratelimit/config/repository/springdata/SpringDataRateLimiter.java
+++ b/ace-gate/ace-gate-ratelimit/src/main/java/com/github/wxiaoqi/gate/ratelimit/config/repository/springdata/SpringDataRateLimiter.java
@@ -33,7 +33,7 @@ public class SpringDataRateLimiter extends AbstractRateLimiter {
@Override
protected Rate getRate(String key) {
- return this.repository.findOne(key);
+ return this.repository.findById(key).get();
}
@Override
diff --git a/ace-gate/ace-gate-server/pom.xml b/ace-gate/ace-gate-server/pom.xml
index a77f9e89868216b917baf9b76591775b900c6e5d..638f8862a35bd475c3393cc15c0140e4da7a4de3 100644
--- a/ace-gate/ace-gate-server/pom.xml
+++ b/ace-gate/ace-gate-server/pom.xml
@@ -5,7 +5,7 @@
ace-gate
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -18,7 +18,7 @@
org.springframework.cloud
- spring-cloud-starter-zuul
+ spring-cloud-starter-netflix-zuul
org.springframework.boot
@@ -30,39 +30,30 @@
com.github.wxiaoqi
- ace-admin-interface
- 1.0-SNAPSHOT
+ ace-interface
+ 2.0-SNAPSHOT
com.github.wxiaoqi
ace-common
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
org.springframework.cloud
- spring-cloud-starter-feign
+ spring-cloud-starter-openfeign
org.springframework.cloud
- spring-cloud-starter-eureka
-
-
- org.springframework.cloud
- spring-cloud-sleuth-zipkin-stream
-
-
- org.springframework.cloud
- spring-cloud-starter-stream-rabbit
+ spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
- spring-cloud-starter-sleuth
+ spring-cloud-starter-zipkin
-
- org.springframework.cloud
- spring-cloud-stream-binder-rabbit
+ org.springframework.amqp
+ spring-rabbit
@@ -73,12 +64,12 @@
com.github.wxiaoqi
ace-auth-client
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
com.github.wxiaoqi
ace-gate-ratelimit
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
com.netflix.feign
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/GateBootstrap.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/GateBootstrap.java
index ea96a65e1a0bac7c09d35448e10454414408626f..35a4342b31b84a07ac7eeebdd73568c3011de203 100644
--- a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/GateBootstrap.java
+++ b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/GateBootstrap.java
@@ -9,8 +9,8 @@ import com.github.wxiaoqi.security.gate.utils.DBLog;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
+import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Primary;
import org.springframework.scheduling.annotation.EnableScheduling;
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/config/FeignConfiguration.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/config/FeignConfiguration.java
deleted file mode 100644
index dca925076bbf6f88971404a2aac7af7b7ecd7b9b..0000000000000000000000000000000000000000
--- a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/config/FeignConfiguration.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.github.wxiaoqi.security.gate.config;
-
-import com.github.wxiaoqi.security.auth.client.interceptor.ServiceFeignInterceptor;
-import org.springframework.context.annotation.Bean;
-
-/**
- * Created by ace on 2017/9/12.
- */
-public class FeignConfiguration {
- @Bean
- ServiceFeignInterceptor getClientTokenInterceptor(){
- return new ServiceFeignInterceptor();
- }
-}
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/fallback/RouteFallbackProvider.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/fallback/RouteFallbackProvider.java
new file mode 100644
index 0000000000000000000000000000000000000000..da05f13526e2446d6017f6d1b25fa10c45ab3523
--- /dev/null
+++ b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/fallback/RouteFallbackProvider.java
@@ -0,0 +1,72 @@
+package com.github.wxiaoqi.security.gate.fallback;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.netflix.zuul.filters.route.FallbackProvider;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.MediaType;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.stereotype.Component;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+
+/**
+ * @author ace
+ */
+@Slf4j
+@Component
+public class RouteFallbackProvider implements FallbackProvider {
+
+ public ClientHttpResponse fallbackResponse(Throwable cause) {
+ return new ClientHttpResponse() {
+ @Override
+ public HttpStatus getStatusCode() {
+ return HttpStatus.SERVICE_UNAVAILABLE;
+ }
+
+ @Override
+ public int getRawStatusCode() {
+ return HttpStatus.SERVICE_UNAVAILABLE.value();
+ }
+
+ @Override
+ public String getStatusText() {
+ return HttpStatus.SERVICE_UNAVAILABLE.getReasonPhrase();
+ }
+
+ @Override
+ public void close() {
+ }
+
+ @Override
+ public InputStream getBody() {
+ if (cause != null && cause.getMessage() != null) {
+ log.error("调用:{} 异常:{}", getRoute(), cause.getMessage());
+ return new ByteArrayInputStream(cause.getMessage().getBytes());
+ } else {
+ log.error("调用:{} 异常:{}", getRoute(), "服务不可用");
+ return new ByteArrayInputStream("服务不可用".getBytes());
+ }
+ }
+
+ @Override
+ public HttpHeaders getHeaders() {
+ HttpHeaders headers = new HttpHeaders();
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ return headers;
+ }
+ };
+ }
+
+ @Override
+ public String getRoute() {
+ return "*";
+ }
+
+ @Override
+ public ClientHttpResponse fallbackResponse(String s, Throwable throwable) {
+ return fallbackResponse(null);
+ }
+}
\ No newline at end of file
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/fallback/UserServiceFallback.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/fallback/UserServiceFallback.java
new file mode 100644
index 0000000000000000000000000000000000000000..792afd41b3dca8fb1b3b843d54b5f8770965e662
--- /dev/null
+++ b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/fallback/UserServiceFallback.java
@@ -0,0 +1,29 @@
+package com.github.wxiaoqi.security.gate.fallback;
+
+import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
+import com.github.wxiaoqi.security.gate.feign.IUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.PathVariable;
+
+import java.util.List;
+
+/**
+ * @author ace
+ * @create 2018/3/7.
+ */
+@Service
+@Slf4j
+public class UserServiceFallback implements IUserService{
+ @Override
+ public List getPermissionByUsername(@PathVariable("username") String username) {
+ log.error("调用{}异常{}","getPermissionByUsername",username);
+ return null;
+ }
+
+ @Override
+ public List getAllPermissionInfo() {
+ log.error("调用{}异常","getPermissionByUsername");
+ return null;
+ }
+}
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/ILogService.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/ILogService.java
index 305a22099729310f97b3185f1b30d8c1ce0d5d49..237c9fa0b11bc7cadf42e9b2fa8327e5483d25cb 100644
--- a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/ILogService.java
+++ b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/ILogService.java
@@ -1,7 +1,7 @@
package com.github.wxiaoqi.security.gate.feign;
import com.github.wxiaoqi.security.api.vo.log.LogInfo;
-import org.springframework.cloud.netflix.feign.FeignClient;
+import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/IUserService.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/IUserService.java
index 303d442548146783fc25e2bc3a3b38ffd9bec0da..5595d9819952b9c805766da273c16e2bfce324e5 100644
--- a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/IUserService.java
+++ b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/feign/IUserService.java
@@ -1,8 +1,8 @@
package com.github.wxiaoqi.security.gate.feign;
import com.github.wxiaoqi.security.api.vo.authority.PermissionInfo;
-import com.github.wxiaoqi.security.gate.config.FeignConfiguration;
-import org.springframework.cloud.netflix.feign.FeignClient;
+import com.github.wxiaoqi.security.gate.fallback.UserServiceFallback;
+import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -16,12 +16,10 @@ import java.util.List;
* @author wanghaobin
* @create 2017-06-21 8:11
*/
-@FeignClient(value = "ace-admin",configuration = FeignConfiguration.class)
+@FeignClient(value = "ace-admin",fallback = UserServiceFallback.class)
public interface IUserService {
@RequestMapping(value="/api/user/un/{username}/permissions",method = RequestMethod.GET)
-// @RequestLine(value = "GET /api/user/un/{username}/permissions")
public List getPermissionByUsername(@PathVariable("username") String username);
-// @RequestLine(value = "GET /api/permissions")
@RequestMapping(value="/api/permissions",method = RequestMethod.GET)
List getAllPermissionInfo();
}
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/filter/AdminAccessFilter.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/filter/AdminAccessFilter.java
index 4c271f195d3612550f36aed24ec8ca2ed7b4c791..f875083c46297f557fe394eb1fa9a40e71eefa9d 100644
--- a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/filter/AdminAccessFilter.java
+++ b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/filter/AdminAccessFilter.java
@@ -110,7 +110,6 @@ public class AdminAccessFilter extends ZuulFilter {
}
// 申请客户端密钥头
ctx.addZuulRequestHeader(serviceAuthConfig.getTokenHeader(), serviceAuthUtil.getClientToken());
- BaseContextHandler.remove();
return null;
}
diff --git a/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/filter/ClearFilter.java b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/filter/ClearFilter.java
new file mode 100644
index 0000000000000000000000000000000000000000..6454040ddac50b579cf58b34dbc0d4d750070df0
--- /dev/null
+++ b/ace-gate/ace-gate-server/src/main/java/com/github/wxiaoqi/security/gate/filter/ClearFilter.java
@@ -0,0 +1,39 @@
+package com.github.wxiaoqi.security.gate.filter;
+
+import com.github.wxiaoqi.security.common.context.BaseContextHandler;
+import com.netflix.zuul.ZuulFilter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * ${DESCRIPTION}
+ *
+ * @author wanghaobin
+ * @create 2017-06-23 8:25
+ */
+@Component
+@Slf4j
+public class ClearFilter extends ZuulFilter {
+
+ @Override
+ public String filterType() {
+ return "post";
+ }
+
+ @Override
+ public int filterOrder() {
+ return 1;
+ }
+
+ @Override
+ public boolean shouldFilter() {
+ return true;
+ }
+
+ @Override
+ public Object run() {
+ BaseContextHandler.remove();
+ return null;
+ }
+
+}
diff --git a/ace-gate/ace-gate-server/src/main/resources/application.yml b/ace-gate/ace-gate-server/src/main/resources/application.yml
index f34eb8da1583743eb6e1653fb0a7a289309dd0fb..c0f815f47a950c621141b0e07ccb6c9a0e24e227 100644
--- a/ace-gate/ace-gate-server/src/main/resources/application.yml
+++ b/ace-gate/ace-gate-server/src/main/resources/application.yml
@@ -11,20 +11,23 @@ spring:
redis:
database: 1
host: 127.0.0.1
- pool:
- max-active: 20
+ jedis:
+ pool:
+ max-active: 20
rabbitmq:
host: ${RABBIT_MQ_HOST:localhost}
port: ${RABBIT_MQ_PORT:5672}
username: guest
password: guest
- zipkin:
- enabled: true
sleuth:
sampler:
percentage: 1
+ zuul:
+ enabled: true
server:
port: 8765 #启动端口
+
+
#
zuul:
ignored-services: "*"
@@ -54,11 +57,15 @@ zuul:
ribbon:
eureka:
enabled: true
- ReadTimeout: 120000
- ConnectTimeout: 120000
+ ReadTimeout: 30000
+ ConnectTimeout: 30000
MaxAutoRetries: 0
MaxAutoRetriesNextServer: 1
OkToRetryOnAllOperations: false
+ httpclient:
+ enabled: false
+ okhttp:
+ enabled: true
hystrix:
@@ -88,4 +95,4 @@ auth:
client:
token-header: client-token
id: ace-gate #不填则默认读取spring.application.name
- secret: 123456
\ No newline at end of file
+ secret: 123456
diff --git a/ace-gate/ace-gate-server/src/main/resources/bootstrap.yml b/ace-gate/ace-gate-server/src/main/resources/bootstrap.yml
index c2aaed2ff000baf73c97faffe74279bdb24da25c..637ebced772bffad8f649c45c142c02101ebe1e3 100644
--- a/ace-gate/ace-gate-server/src/main/resources/bootstrap.yml
+++ b/ace-gate/ace-gate-server/src/main/resources/bootstrap.yml
@@ -1,17 +1,8 @@
-spring:
- cloud:
- config:
- discovery:
- service-id: ace-config
- enabled: true
- label: master # git 分支
- name: gate
- profile: dev
-
eureka:
instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
+ statusPageUrlPath: /actuator/info
+ healthCheckUrlPath: /actuator/health
+ home-page-url-path: /
# docker 部署开启
# prefer-ip-address: true
# ip-address: 127.0.0.1
diff --git a/ace-gate/pom.xml b/ace-gate/pom.xml
index fec4020b2e6f22acb1dea5336b665be2ae8472ce..452a74c9a5ee4ee2d6a4a2cae5a1f8f6c4d50562 100644
--- a/ace-gate/pom.xml
+++ b/ace-gate/pom.xml
@@ -5,7 +5,7 @@
ace-security
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
diff --git a/ace-admin/db/init.sql b/ace-modules/ace-admin/db/init.sql
similarity index 100%
rename from ace-admin/db/init.sql
rename to ace-modules/ace-admin/db/init.sql
diff --git a/ace-admin/pom.xml b/ace-modules/ace-admin/pom.xml
similarity index 62%
rename from ace-admin/pom.xml
rename to ace-modules/ace-admin/pom.xml
index cc87b4dee42d49e5cf16418970dfdcaec1d0dba0..9b8df83c453c3219cbe643ad31db13a07e4d548b 100644
--- a/ace-admin/pom.xml
+++ b/ace-modules/ace-admin/pom.xml
@@ -3,9 +3,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- ace-security
+ ace-modules
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -30,7 +30,7 @@
com.github.wxiaoqi
ace-common
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
org.springframework.boot
@@ -42,40 +42,27 @@
org.springframework.cloud
- spring-cloud-starter-feign
+ spring-cloud-starter-openfeign
-
org.springframework.cloud
- spring-cloud-starter-eureka
-
-
- org.springframework.cloud
- spring-cloud-starter-hystrix
-
-
- de.codecentric
- spring-boot-admin-starter-client
- 1.3.2
+ spring-cloud-starter-netflix-hystrix
+
org.springframework.cloud
- spring-cloud-sleuth-zipkin-stream
-
-
- org.springframework.cloud
- spring-cloud-starter-stream-rabbit
+ spring-cloud-starter-netflix-eureka-client
+
org.springframework.cloud
- spring-cloud-starter-sleuth
+ spring-cloud-starter-zipkin
-
- org.springframework.cloud
- spring-cloud-stream-binder-rabbit
+ org.springframework.amqp
+ spring-rabbit
@@ -90,56 +77,48 @@
com.github.wxiaoqi
- ace-admin-interface
- 1.0-SNAPSHOT
+ ace-interface
+ 2.0-SNAPSHOT
+
com.alibaba
- druid
- 1.0.11
-
-
- mysql
- mysql-connector-java
- 5.1.30
+ druid-spring-boot-starter
+ 1.1.0
-
-
+
- org.mybatis
- mybatis
- ${mybatis.version}
+ org.springframework.boot
+ spring-boot-starter-jdbc
+
- org.mybatis
- mybatis-spring
- ${mybatis.spring.version}
+ mysql
+ mysql-connector-java
-
+
- org.mybatis.generator
- mybatis-generator-core
- 1.3.2
- compile
- true
+ tk.mybatis
+ mapper-spring-boot-starter
+ 1.1.2
-
com.github.pagehelper
- pagehelper
- ${pagehelper.version}
+ pagehelper-spring-boot-starter
+ 1.2.3
-
+
- tk.mybatis
- mapper
- ${mapper.version}
+ com.spring4all
+ swagger-spring-boot-starter
+ 1.6.0.RELEASE
+
org.apache.commons
commons-lang3
@@ -151,17 +130,6 @@
fastjson
1.2.33
-
- io.springfox
- springfox-swagger2
- 2.6.1
-
-
-
- io.springfox
- springfox-swagger-ui
- 2.6.1
-
javax.servlet
javax.servlet-api
@@ -175,13 +143,19 @@
com.github.wxiaoqi
ace-auth-client
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
com.github.wxiaoqi
ace-cache
0.0.2
+
+ log4j
+ log4j
+ 1.2.17
+
+
ace-admin
@@ -223,28 +197,28 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ace-admin/src/main/docker/Dockerfile b/ace-modules/ace-admin/src/main/docker/Dockerfile
similarity index 100%
rename from ace-admin/src/main/docker/Dockerfile
rename to ace-modules/ace-admin/src/main/docker/Dockerfile
diff --git a/ace-admin/src/main/docker/wait-for-it.sh b/ace-modules/ace-admin/src/main/docker/wait-for-it.sh
similarity index 100%
rename from ace-admin/src/main/docker/wait-for-it.sh
rename to ace-modules/ace-admin/src/main/docker/wait-for-it.sh
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
similarity index 81%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
index 063157281854703d6b1030a0c4434841c4a77399..ca8b085137761f3df5cfb5bea1d06104d7b56a1a 100644
--- a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
+++ b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/AdminBootstrap.java
@@ -2,12 +2,13 @@ package com.github.wxiaoqi.security.admin;
import com.ace.cache.EnableAceCache;
import com.github.wxiaoqi.security.auth.client.EnableAceAuthClient;
+import com.spring4all.swagger.EnableSwagger2Doc;
+import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
+import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -23,9 +24,10 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
@EnableFeignClients({"com.github.wxiaoqi.security.auth.client.feign"})
@EnableScheduling
@EnableAceAuthClient
-@ServletComponentScan("com.github.wxiaoqi.security.admin.config.druid")
@EnableAceCache
@EnableTransactionManagement
+@MapperScan("com.github.wxiaoqi.security.admin.mapper")
+@EnableSwagger2Doc
public class AdminBootstrap {
public static void main(String[] args) {
new SpringApplicationBuilder(AdminBootstrap.class).web(true).run(args); }
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ElementBiz.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ElementBiz.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ElementBiz.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ElementBiz.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GateLogBiz.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GateLogBiz.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GateLogBiz.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GateLogBiz.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupBiz.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupBiz.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupBiz.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupBiz.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupTypeBiz.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupTypeBiz.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupTypeBiz.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/GroupTypeBiz.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MenuBiz.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MenuBiz.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MenuBiz.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/MenuBiz.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ResourceAuthorityBiz.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ResourceAuthorityBiz.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ResourceAuthorityBiz.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/ResourceAuthorityBiz.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/UserBiz.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/UserBiz.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/UserBiz.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/biz/UserBiz.java
diff --git a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/WebConfiguration.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/WebConfiguration.java
similarity index 59%
rename from ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/WebConfiguration.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/WebConfiguration.java
index 80cec6393bd72d07f359c2389afa5164f0279bb9..18d0215cf8483661d111df7cf0777d5c28ec6bcb 100644
--- a/ace-demo/ace-demo-mybatis/src/main/java/com/github/wxiaoqi/security/demo/mybatis/config/WebConfiguration.java
+++ b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/config/WebConfiguration.java
@@ -1,4 +1,4 @@
-package com.github.wxiaoqi.security.demo.mybatis.config;
+package com.github.wxiaoqi.security.admin.config;
import com.github.wxiaoqi.security.auth.client.interceptor.ServiceAuthRestInterceptor;
import com.github.wxiaoqi.security.auth.client.interceptor.UserAuthRestInterceptor;
@@ -7,19 +7,19 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.Collections;
/**
- * 拦截器和全局配置
+ *
* @author ace
* @date 2017/9/8
*/
-@Configuration("demoWebConfig")
+@Configuration("admimWebConfig")
@Primary
-public class WebConfiguration extends WebMvcConfigurerAdapter {
+public class WebConfiguration implements WebMvcConfigurer {
@Bean
GlobalExceptionHandler getGlobalExceptionHandler() {
return new GlobalExceptionHandler();
@@ -27,43 +27,40 @@ public class WebConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
- ArrayList commonPathPatterns = getExcludeCommonPathPatterns();
- /*
- 增加服务权限烂机器
- */
- registry.addInterceptor(getServiceAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- /*
- 增加用户权限拦截器
- */
- registry.addInterceptor(getUserAuthRestInterceptor()).addPathPatterns("/**").excludePathPatterns(commonPathPatterns.toArray(new String[]{}));
- super.addInterceptors(registry);
+ registry.addInterceptor(getServiceAuthRestInterceptor()).
+ addPathPatterns(getIncludePathPatterns()).addPathPatterns("/api/user/validate");
+ registry.addInterceptor(getUserAuthRestInterceptor()).
+ addPathPatterns(getIncludePathPatterns());
}
- /**
- * 配置服务权限拦截
- * @return
- */
@Bean
ServiceAuthRestInterceptor getServiceAuthRestInterceptor() {
return new ServiceAuthRestInterceptor();
}
- /**
- * 配置用户用户token拦截
- * @return
- */
@Bean
UserAuthRestInterceptor getUserAuthRestInterceptor() {
return new UserAuthRestInterceptor();
}
- private ArrayList getExcludeCommonPathPatterns() {
+ /**
+ * 需要用户和服务认证判断的路径
+ * @return
+ */
+ private ArrayList getIncludePathPatterns() {
ArrayList list = new ArrayList<>();
String[] urls = {
- "/v2/api-docs",
- "/swagger-resources/**"
+ "/element/**",
+ "/gateLog/**",
+ "/group/**",
+ "/groupType/**",
+ "/menu/**",
+ "/user/**",
+ "/api/permissions",
+ "/api/user/un/**"
};
Collections.addAll(list, urls);
return list;
}
+
}
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/constant/AdminCommonConstant.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/constant/AdminCommonConstant.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/constant/AdminCommonConstant.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/constant/AdminCommonConstant.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Element.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Element.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Element.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Element.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GateLog.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GateLog.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GateLog.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GateLog.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Group.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Group.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Group.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Group.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GroupType.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GroupType.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GroupType.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/GroupType.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Menu.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Menu.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Menu.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/Menu.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/ResourceAuthority.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/ResourceAuthority.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/ResourceAuthority.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/ResourceAuthority.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/User.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/User.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/User.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/entity/User.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ElementMapper.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ElementMapper.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ElementMapper.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ElementMapper.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GateLogMapper.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GateLogMapper.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GateLogMapper.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GateLogMapper.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupMapper.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupMapper.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupMapper.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupMapper.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupTypeMapper.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupTypeMapper.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupTypeMapper.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/GroupTypeMapper.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/MenuMapper.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/MenuMapper.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/MenuMapper.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/MenuMapper.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ResourceAuthorityMapper.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ResourceAuthorityMapper.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ResourceAuthorityMapper.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/ResourceAuthorityMapper.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/UserMapper.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/UserMapper.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/UserMapper.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/mapper/UserMapper.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/ElementController.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/ElementController.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/ElementController.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/ElementController.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GateLogController.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GateLogController.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GateLogController.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GateLogController.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupController.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupController.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupController.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupController.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupTypeController.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupTypeController.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupTypeController.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/GroupTypeController.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/MenuController.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/MenuController.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/MenuController.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/MenuController.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserController.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserController.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserController.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rest/UserController.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/LogRest.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/LogRest.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/LogRest.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/LogRest.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/UserRest.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/UserRest.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/UserRest.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/UserRest.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/PermissionService.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/PermissionService.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/PermissionService.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/rpc/service/PermissionService.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/AuthorityMenuTree.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/AuthorityMenuTree.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/AuthorityMenuTree.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/AuthorityMenuTree.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/FrontUser.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/FrontUser.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/FrontUser.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/FrontUser.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupTree.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupTree.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupTree.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupTree.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupUsers.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupUsers.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupUsers.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/GroupUsers.java
diff --git a/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/MenuTree.java b/ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/MenuTree.java
similarity index 100%
rename from ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/MenuTree.java
rename to ace-modules/ace-admin/src/main/java/com/github/wxiaoqi/security/admin/vo/MenuTree.java
diff --git a/ace-admin/src/main/resources/application.yml b/ace-modules/ace-admin/src/main/resources/application.yml
similarity index 82%
rename from ace-admin/src/main/resources/application.yml
rename to ace-modules/ace-admin/src/main/resources/application.yml
index 9c3a433abfd8a6c9e2c1bebae6ff09ca27a9b8f1..7689d68028bc2023d210afde284632806f63e376 100644
--- a/ace-admin/src/main/resources/application.yml
+++ b/ace-modules/ace-admin/src/main/resources/application.yml
@@ -35,22 +35,28 @@ spring:
port: ${RABBIT_MQ_PORT:5672}
username: guest
password: guest
- zipkin:
- enabled: true
sleuth:
sampler:
percentage: 1
+
+sample:
+ zipkin:
+ # When enabled=false, traces log to the console. Comment to send to zipkin
+ enabled: false
+
mybatis:
basepackage: com.github.wxiaoqi.security.admin.mapper
xmlLocation: classpath:mapper/**/*.xml
+ mapper-locations: "classpath*:mapper/*.xml"
server:
port: 8762
+
eureka:
instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
+ statusPageUrlPath: /actuator/info
+ healthCheckUrlPath: /actuator/health
# docker 部署开启
prefer-ip-address: true
ip-address: 127.0.0.1
@@ -88,13 +94,16 @@ hystrix:
thread:
timeoutInMilliseconds: 110000
-swagger:
- basepackage: com.github.wxiaoqi.security.admin
- service:
- name: Admin Back
- description: Admin Back后端服务
- developer: 老A
+# 配置swagger
+swagger:
+ enabled: true
+ base-package: com.github.wxiaoqi.security.admin
+ title: ace-admin
+ version: 1.0.0.SNAPSHOT
+ description: 管理后端服务
+ contact:
+ name: admin
auth:
serviceId: ace-auth
diff --git a/ace-admin/src/main/resources/builder/generatorConfig.xml b/ace-modules/ace-admin/src/main/resources/builder/generatorConfig.xml
similarity index 100%
rename from ace-admin/src/main/resources/builder/generatorConfig.xml
rename to ace-modules/ace-admin/src/main/resources/builder/generatorConfig.xml
diff --git a/ace-admin/src/main/resources/logback.xml b/ace-modules/ace-admin/src/main/resources/logback.xml
similarity index 100%
rename from ace-admin/src/main/resources/logback.xml
rename to ace-modules/ace-admin/src/main/resources/logback.xml
diff --git a/ace-admin/src/main/resources/mapper/ElementMapper.xml b/ace-modules/ace-admin/src/main/resources/mapper/ElementMapper.xml
similarity index 100%
rename from ace-admin/src/main/resources/mapper/ElementMapper.xml
rename to ace-modules/ace-admin/src/main/resources/mapper/ElementMapper.xml
diff --git a/ace-admin/src/main/resources/mapper/GateLogMapper.xml b/ace-modules/ace-admin/src/main/resources/mapper/GateLogMapper.xml
similarity index 100%
rename from ace-admin/src/main/resources/mapper/GateLogMapper.xml
rename to ace-modules/ace-admin/src/main/resources/mapper/GateLogMapper.xml
diff --git a/ace-admin/src/main/resources/mapper/GroupMapper.xml b/ace-modules/ace-admin/src/main/resources/mapper/GroupMapper.xml
similarity index 100%
rename from ace-admin/src/main/resources/mapper/GroupMapper.xml
rename to ace-modules/ace-admin/src/main/resources/mapper/GroupMapper.xml
diff --git a/ace-admin/src/main/resources/mapper/GroupTypeMapper.xml b/ace-modules/ace-admin/src/main/resources/mapper/GroupTypeMapper.xml
similarity index 100%
rename from ace-admin/src/main/resources/mapper/GroupTypeMapper.xml
rename to ace-modules/ace-admin/src/main/resources/mapper/GroupTypeMapper.xml
diff --git a/ace-admin/src/main/resources/mapper/MenuMapper.xml b/ace-modules/ace-admin/src/main/resources/mapper/MenuMapper.xml
similarity index 100%
rename from ace-admin/src/main/resources/mapper/MenuMapper.xml
rename to ace-modules/ace-admin/src/main/resources/mapper/MenuMapper.xml
diff --git a/ace-admin/src/main/resources/mapper/ResourceAuthorityMapper.xml b/ace-modules/ace-admin/src/main/resources/mapper/ResourceAuthorityMapper.xml
similarity index 100%
rename from ace-admin/src/main/resources/mapper/ResourceAuthorityMapper.xml
rename to ace-modules/ace-admin/src/main/resources/mapper/ResourceAuthorityMapper.xml
diff --git a/ace-admin/src/main/resources/mapper/UserMapper.xml b/ace-modules/ace-admin/src/main/resources/mapper/UserMapper.xml
similarity index 100%
rename from ace-admin/src/main/resources/mapper/UserMapper.xml
rename to ace-modules/ace-admin/src/main/resources/mapper/UserMapper.xml
diff --git a/ace-generator/pom.xml b/ace-modules/ace-generator/pom.xml
similarity index 96%
rename from ace-generator/pom.xml
rename to ace-modules/ace-generator/pom.xml
index fb9066c74d89be65fe1b16c6bf8c91d524b8eecb..6af44cfe720a9dfc8025eb96019640ae37e979db 100644
--- a/ace-generator/pom.xml
+++ b/ace-modules/ace-generator/pom.xml
@@ -3,9 +3,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- ace-security
+ ace-modules
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -89,7 +89,7 @@
com.github.wxiaoqi
ace-common
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
org.springframework.boot
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/GeneratorBootstrap.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/GeneratorBootstrap.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/GeneratorBootstrap.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/GeneratorBootstrap.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/config/WebConfig.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/config/WebConfig.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/config/WebConfig.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/config/WebConfig.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/controller/HomeController.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/controller/HomeController.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/controller/HomeController.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/controller/HomeController.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/ColumnEntity.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/ColumnEntity.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/ColumnEntity.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/ColumnEntity.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/TableEntity.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/TableEntity.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/TableEntity.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/entity/TableEntity.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/mapper/GeneratorMapper.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/mapper/GeneratorMapper.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/mapper/GeneratorMapper.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/mapper/GeneratorMapper.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/rest/GeneratorRest.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/rest/GeneratorRest.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/rest/GeneratorRest.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/rest/GeneratorRest.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/service/GeneratorService.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/service/GeneratorService.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/service/GeneratorService.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/service/GeneratorService.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/DateUtils.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/DateUtils.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/DateUtils.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/DateUtils.java
diff --git a/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/GeneratorUtils.java b/ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/GeneratorUtils.java
similarity index 100%
rename from ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/GeneratorUtils.java
rename to ace-modules/ace-generator/src/main/java/com/github/wxiaoqi/security/generator/utils/GeneratorUtils.java
diff --git a/ace-generator/src/main/resources/application.yml b/ace-modules/ace-generator/src/main/resources/application.yml
similarity index 100%
rename from ace-generator/src/main/resources/application.yml
rename to ace-modules/ace-generator/src/main/resources/application.yml
diff --git a/ace-generator/src/main/resources/generator.properties b/ace-modules/ace-generator/src/main/resources/generator.properties
similarity index 100%
rename from ace-generator/src/main/resources/generator.properties
rename to ace-modules/ace-generator/src/main/resources/generator.properties
diff --git a/ace-generator/src/main/resources/mapper/GeneratorMapper.xml b/ace-modules/ace-generator/src/main/resources/mapper/GeneratorMapper.xml
similarity index 100%
rename from ace-generator/src/main/resources/mapper/GeneratorMapper.xml
rename to ace-modules/ace-generator/src/main/resources/mapper/GeneratorMapper.xml
diff --git a/ace-generator/src/main/resources/static/README.md b/ace-modules/ace-generator/src/main/resources/static/README.md
similarity index 100%
rename from ace-generator/src/main/resources/static/README.md
rename to ace-modules/ace-generator/src/main/resources/static/README.md
diff --git a/ace-generator/src/main/resources/static/ag/generator/generator.js b/ace-modules/ace-generator/src/main/resources/static/ag/generator/generator.js
similarity index 100%
rename from ace-generator/src/main/resources/static/ag/generator/generator.js
rename to ace-modules/ace-generator/src/main/resources/static/ag/generator/generator.js
diff --git a/ace-generator/src/main/resources/static/bootstrap.min.js b/ace-modules/ace-generator/src/main/resources/static/bootstrap.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/bootstrap.min.js
rename to ace-modules/ace-generator/src/main/resources/static/bootstrap.min.js
diff --git a/ace-generator/src/main/resources/static/css/ag.css b/ace-modules/ace-generator/src/main/resources/static/css/ag.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/ag.css
rename to ace-modules/ace-generator/src/main/resources/static/css/ag.css
diff --git a/ace-generator/src/main/resources/static/css/begtable.css b/ace-modules/ace-generator/src/main/resources/static/css/begtable.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/begtable.css
rename to ace-modules/ace-generator/src/main/resources/static/css/begtable.css
diff --git a/ace-generator/src/main/resources/static/css/bootstrap.min.css b/ace-modules/ace-generator/src/main/resources/static/css/bootstrap.min.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/bootstrap.min.css
rename to ace-modules/ace-generator/src/main/resources/static/css/bootstrap.min.css
diff --git a/ace-generator/src/main/resources/static/css/btable.css b/ace-modules/ace-generator/src/main/resources/static/css/btable.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/btable.css
rename to ace-modules/ace-generator/src/main/resources/static/css/btable.css
diff --git a/ace-generator/src/main/resources/static/css/global.css b/ace-modules/ace-generator/src/main/resources/static/css/global.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/global.css
rename to ace-modules/ace-generator/src/main/resources/static/css/global.css
diff --git a/ace-generator/src/main/resources/static/css/layout.css b/ace-modules/ace-generator/src/main/resources/static/css/layout.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/layout.css
rename to ace-modules/ace-generator/src/main/resources/static/css/layout.css
diff --git a/ace-generator/src/main/resources/static/css/layui.css b/ace-modules/ace-generator/src/main/resources/static/css/layui.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/layui.css
rename to ace-modules/ace-generator/src/main/resources/static/css/layui.css
diff --git a/ace-generator/src/main/resources/static/css/layui.mobile.css b/ace-modules/ace-generator/src/main/resources/static/css/layui.mobile.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/layui.mobile.css
rename to ace-modules/ace-generator/src/main/resources/static/css/layui.mobile.css
diff --git a/ace-generator/src/main/resources/static/css/login.css b/ace-modules/ace-generator/src/main/resources/static/css/login.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/login.css
rename to ace-modules/ace-generator/src/main/resources/static/css/login.css
diff --git a/ace-generator/src/main/resources/static/css/main.css b/ace-modules/ace-generator/src/main/resources/static/css/main.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/main.css
rename to ace-modules/ace-generator/src/main/resources/static/css/main.css
diff --git a/ace-generator/src/main/resources/static/css/modules/code.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/code.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/code.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/code.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/_all.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/_all.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/_all.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/_all.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/aero@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/aero@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/blue@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/blue@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/flat@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/flat@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/green.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/green.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/green@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/green@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/green@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/grey@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/grey@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/orange@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/orange@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/pink@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/pink@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/purple@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/purple@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/red.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/red.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/red@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/red@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/red@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/flat/yellow@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/futurico/futurico@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/icheck.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/icheck.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/icheck.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/icheck.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/_all.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/_all.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/_all.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/_all.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/aero.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/aero.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/aero.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/aero.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/blue.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/blue.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/blue.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/blue.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/green.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/green.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/green.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/green.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/grey.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/grey.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/grey.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/grey.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/line.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/line.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/line.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/line.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/line@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/line@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/line@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/orange.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/orange.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/orange.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/orange.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/pink.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/pink.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/pink.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/pink.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/purple.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/purple.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/purple.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/purple.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/red.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/red.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/red.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/red.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/line/yellow.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/yellow.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/line/yellow.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/line/yellow.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/_all.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/_all.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/_all.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/_all.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/aero@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/blue@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/green@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/green@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/grey@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/minimal@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/orange@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/pink@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/purple@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/red@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/red@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/minimal/yellow@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/polaris/polaris@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/_all.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/_all.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/_all.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/_all.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/aero.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/aero.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/aero@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/aero@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/aero@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/blue.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/blue.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/blue@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/blue@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/blue@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/green.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/green.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/green.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/green.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/green@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/green@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/green@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/grey.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/grey.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/grey@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/grey@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/grey@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/orange.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/orange.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/orange@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/orange@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/orange@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/pink.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/pink.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/pink@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/pink@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/pink@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/purple.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/purple.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/purple@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/purple@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/purple@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/red.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/red.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/red.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/red.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/red@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/red@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/red@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/square.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/square.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/square.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/square.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/square@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/square@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/square@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.css
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow.png
diff --git a/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow@2x.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow@2x.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/icheck/square/yellow@2x.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/icheck/square/yellow@2x.png
diff --git a/ace-generator/src/main/resources/static/css/modules/laydate/icon.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/laydate/icon.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/laydate/icon.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/laydate/icon.png
diff --git a/ace-generator/src/main/resources/static/css/modules/laydate/laydate.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/laydate/laydate.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/laydate/laydate.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/laydate/laydate.css
diff --git a/ace-generator/src/main/resources/static/css/modules/layer/default/icon-ext.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon-ext.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/layer/default/icon-ext.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon-ext.png
diff --git a/ace-generator/src/main/resources/static/css/modules/layer/default/icon.png b/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon.png
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/layer/default/icon.png
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/icon.png
diff --git a/ace-generator/src/main/resources/static/css/modules/layer/default/layer.css b/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/layer.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/layer/default/layer.css
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/layer.css
diff --git a/ace-generator/src/main/resources/static/css/modules/layer/default/loading-0.gif b/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-0.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/layer/default/loading-0.gif
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-0.gif
diff --git a/ace-generator/src/main/resources/static/css/modules/layer/default/loading-1.gif b/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-1.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/layer/default/loading-1.gif
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-1.gif
diff --git a/ace-generator/src/main/resources/static/css/modules/layer/default/loading-2.gif b/ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-2.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/css/modules/layer/default/loading-2.gif
rename to ace-modules/ace-generator/src/main/resources/static/css/modules/layer/default/loading-2.gif
diff --git a/ace-generator/src/main/resources/static/css/table.css b/ace-modules/ace-generator/src/main/resources/static/css/table.css
similarity index 100%
rename from ace-generator/src/main/resources/static/css/table.css
rename to ace-modules/ace-generator/src/main/resources/static/css/table.css
diff --git a/ace-generator/src/main/resources/static/datas/area_data.js b/ace-modules/ace-generator/src/main/resources/static/datas/area_data.js
similarity index 100%
rename from ace-generator/src/main/resources/static/datas/area_data.js
rename to ace-modules/ace-generator/src/main/resources/static/datas/area_data.js
diff --git a/ace-generator/src/main/resources/static/datas/btable_data.json b/ace-modules/ace-generator/src/main/resources/static/datas/btable_data.json
similarity index 100%
rename from ace-generator/src/main/resources/static/datas/btable_data.json
rename to ace-modules/ace-generator/src/main/resources/static/datas/btable_data.json
diff --git a/ace-generator/src/main/resources/static/datas/laytpl_laypage_data.json b/ace-modules/ace-generator/src/main/resources/static/datas/laytpl_laypage_data.json
similarity index 100%
rename from ace-generator/src/main/resources/static/datas/laytpl_laypage_data.json
rename to ace-modules/ace-generator/src/main/resources/static/datas/laytpl_laypage_data.json
diff --git a/ace-generator/src/main/resources/static/datas/nav.js b/ace-modules/ace-generator/src/main/resources/static/datas/nav.js
similarity index 100%
rename from ace-generator/src/main/resources/static/datas/nav.js
rename to ace-modules/ace-generator/src/main/resources/static/datas/nav.js
diff --git a/ace-generator/src/main/resources/static/datas/nav.json b/ace-modules/ace-generator/src/main/resources/static/datas/nav.json
similarity index 100%
rename from ace-generator/src/main/resources/static/datas/nav.json
rename to ace-modules/ace-generator/src/main/resources/static/datas/nav.json
diff --git a/ace-generator/src/main/resources/static/datas/nav_content.json b/ace-modules/ace-generator/src/main/resources/static/datas/nav_content.json
similarity index 100%
rename from ace-generator/src/main/resources/static/datas/nav_content.json
rename to ace-modules/ace-generator/src/main/resources/static/datas/nav_content.json
diff --git a/ace-generator/src/main/resources/static/datas/nav_member.json b/ace-modules/ace-generator/src/main/resources/static/datas/nav_member.json
similarity index 100%
rename from ace-generator/src/main/resources/static/datas/nav_member.json
rename to ace-modules/ace-generator/src/main/resources/static/datas/nav_member.json
diff --git a/ace-generator/src/main/resources/static/face/0.gif b/ace-modules/ace-generator/src/main/resources/static/face/0.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/0.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/0.gif
diff --git a/ace-generator/src/main/resources/static/face/1.gif b/ace-modules/ace-generator/src/main/resources/static/face/1.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/1.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/1.gif
diff --git a/ace-generator/src/main/resources/static/face/10.gif b/ace-modules/ace-generator/src/main/resources/static/face/10.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/10.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/10.gif
diff --git a/ace-generator/src/main/resources/static/face/11.gif b/ace-modules/ace-generator/src/main/resources/static/face/11.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/11.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/11.gif
diff --git a/ace-generator/src/main/resources/static/face/12.gif b/ace-modules/ace-generator/src/main/resources/static/face/12.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/12.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/12.gif
diff --git a/ace-generator/src/main/resources/static/face/13.gif b/ace-modules/ace-generator/src/main/resources/static/face/13.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/13.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/13.gif
diff --git a/ace-generator/src/main/resources/static/face/14.gif b/ace-modules/ace-generator/src/main/resources/static/face/14.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/14.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/14.gif
diff --git a/ace-generator/src/main/resources/static/face/15.gif b/ace-modules/ace-generator/src/main/resources/static/face/15.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/15.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/15.gif
diff --git a/ace-generator/src/main/resources/static/face/16.gif b/ace-modules/ace-generator/src/main/resources/static/face/16.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/16.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/16.gif
diff --git a/ace-generator/src/main/resources/static/face/17.gif b/ace-modules/ace-generator/src/main/resources/static/face/17.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/17.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/17.gif
diff --git a/ace-generator/src/main/resources/static/face/18.gif b/ace-modules/ace-generator/src/main/resources/static/face/18.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/18.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/18.gif
diff --git a/ace-generator/src/main/resources/static/face/19.gif b/ace-modules/ace-generator/src/main/resources/static/face/19.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/19.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/19.gif
diff --git a/ace-generator/src/main/resources/static/face/2.gif b/ace-modules/ace-generator/src/main/resources/static/face/2.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/2.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/2.gif
diff --git a/ace-generator/src/main/resources/static/face/22.gif b/ace-modules/ace-generator/src/main/resources/static/face/22.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/22.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/22.gif
diff --git a/ace-generator/src/main/resources/static/face/24.gif b/ace-modules/ace-generator/src/main/resources/static/face/24.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/24.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/24.gif
diff --git a/ace-generator/src/main/resources/static/face/25.gif b/ace-modules/ace-generator/src/main/resources/static/face/25.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/25.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/25.gif
diff --git a/ace-generator/src/main/resources/static/face/26.gif b/ace-modules/ace-generator/src/main/resources/static/face/26.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/26.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/26.gif
diff --git a/ace-generator/src/main/resources/static/face/27.gif b/ace-modules/ace-generator/src/main/resources/static/face/27.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/27.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/27.gif
diff --git a/ace-generator/src/main/resources/static/face/29.gif b/ace-modules/ace-generator/src/main/resources/static/face/29.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/29.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/29.gif
diff --git a/ace-generator/src/main/resources/static/face/3.gif b/ace-modules/ace-generator/src/main/resources/static/face/3.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/3.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/3.gif
diff --git a/ace-generator/src/main/resources/static/face/33.gif b/ace-modules/ace-generator/src/main/resources/static/face/33.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/33.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/33.gif
diff --git a/ace-generator/src/main/resources/static/face/34.gif b/ace-modules/ace-generator/src/main/resources/static/face/34.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/34.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/34.gif
diff --git a/ace-generator/src/main/resources/static/face/35.gif b/ace-modules/ace-generator/src/main/resources/static/face/35.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/35.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/35.gif
diff --git a/ace-generator/src/main/resources/static/face/36.gif b/ace-modules/ace-generator/src/main/resources/static/face/36.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/36.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/36.gif
diff --git a/ace-generator/src/main/resources/static/face/37.gif b/ace-modules/ace-generator/src/main/resources/static/face/37.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/37.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/37.gif
diff --git a/ace-generator/src/main/resources/static/face/38.gif b/ace-modules/ace-generator/src/main/resources/static/face/38.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/38.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/38.gif
diff --git a/ace-generator/src/main/resources/static/face/39.gif b/ace-modules/ace-generator/src/main/resources/static/face/39.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/39.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/39.gif
diff --git a/ace-generator/src/main/resources/static/face/4.gif b/ace-modules/ace-generator/src/main/resources/static/face/4.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/4.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/4.gif
diff --git a/ace-generator/src/main/resources/static/face/41.gif b/ace-modules/ace-generator/src/main/resources/static/face/41.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/41.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/41.gif
diff --git a/ace-generator/src/main/resources/static/face/43.gif b/ace-modules/ace-generator/src/main/resources/static/face/43.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/43.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/43.gif
diff --git a/ace-generator/src/main/resources/static/face/44.gif b/ace-modules/ace-generator/src/main/resources/static/face/44.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/44.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/44.gif
diff --git a/ace-generator/src/main/resources/static/face/45.gif b/ace-modules/ace-generator/src/main/resources/static/face/45.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/45.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/45.gif
diff --git a/ace-generator/src/main/resources/static/face/46.gif b/ace-modules/ace-generator/src/main/resources/static/face/46.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/46.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/46.gif
diff --git a/ace-generator/src/main/resources/static/face/48.gif b/ace-modules/ace-generator/src/main/resources/static/face/48.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/48.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/48.gif
diff --git a/ace-generator/src/main/resources/static/face/49.gif b/ace-modules/ace-generator/src/main/resources/static/face/49.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/49.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/49.gif
diff --git a/ace-generator/src/main/resources/static/face/5.gif b/ace-modules/ace-generator/src/main/resources/static/face/5.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/5.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/5.gif
diff --git a/ace-generator/src/main/resources/static/face/50.gif b/ace-modules/ace-generator/src/main/resources/static/face/50.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/50.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/50.gif
diff --git a/ace-generator/src/main/resources/static/face/52.gif b/ace-modules/ace-generator/src/main/resources/static/face/52.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/52.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/52.gif
diff --git a/ace-generator/src/main/resources/static/face/53.gif b/ace-modules/ace-generator/src/main/resources/static/face/53.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/53.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/53.gif
diff --git a/ace-generator/src/main/resources/static/face/54.gif b/ace-modules/ace-generator/src/main/resources/static/face/54.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/54.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/54.gif
diff --git a/ace-generator/src/main/resources/static/face/55.gif b/ace-modules/ace-generator/src/main/resources/static/face/55.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/55.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/55.gif
diff --git a/ace-generator/src/main/resources/static/face/56.gif b/ace-modules/ace-generator/src/main/resources/static/face/56.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/56.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/56.gif
diff --git a/ace-generator/src/main/resources/static/face/59.gif b/ace-modules/ace-generator/src/main/resources/static/face/59.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/59.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/59.gif
diff --git a/ace-generator/src/main/resources/static/face/6.gif b/ace-modules/ace-generator/src/main/resources/static/face/6.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/6.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/6.gif
diff --git a/ace-generator/src/main/resources/static/face/61.gif b/ace-modules/ace-generator/src/main/resources/static/face/61.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/61.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/61.gif
diff --git a/ace-generator/src/main/resources/static/face/62.gif b/ace-modules/ace-generator/src/main/resources/static/face/62.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/62.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/62.gif
diff --git a/ace-generator/src/main/resources/static/face/63.gif b/ace-modules/ace-generator/src/main/resources/static/face/63.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/63.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/63.gif
diff --git a/ace-generator/src/main/resources/static/face/65.gif b/ace-modules/ace-generator/src/main/resources/static/face/65.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/65.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/65.gif
diff --git a/ace-generator/src/main/resources/static/face/66.gif b/ace-modules/ace-generator/src/main/resources/static/face/66.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/66.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/66.gif
diff --git a/ace-generator/src/main/resources/static/face/67.gif b/ace-modules/ace-generator/src/main/resources/static/face/67.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/67.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/67.gif
diff --git a/ace-generator/src/main/resources/static/face/69.gif b/ace-modules/ace-generator/src/main/resources/static/face/69.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/69.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/69.gif
diff --git a/ace-generator/src/main/resources/static/face/7.gif b/ace-modules/ace-generator/src/main/resources/static/face/7.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/7.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/7.gif
diff --git a/ace-generator/src/main/resources/static/face/70.gif b/ace-modules/ace-generator/src/main/resources/static/face/70.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/70.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/70.gif
diff --git a/ace-generator/src/main/resources/static/face/71.gif b/ace-modules/ace-generator/src/main/resources/static/face/71.gif
similarity index 100%
rename from ace-generator/src/main/resources/static/face/71.gif
rename to ace-modules/ace-generator/src/main/resources/static/face/71.gif
diff --git a/ace-generator/src/main/resources/static/font/iconfont.svg b/ace-modules/ace-generator/src/main/resources/static/font/iconfont.svg
similarity index 100%
rename from ace-generator/src/main/resources/static/font/iconfont.svg
rename to ace-modules/ace-generator/src/main/resources/static/font/iconfont.svg
diff --git a/ace-generator/src/main/resources/static/font/iconfont.woff b/ace-modules/ace-generator/src/main/resources/static/font/iconfont.woff
similarity index 100%
rename from ace-generator/src/main/resources/static/font/iconfont.woff
rename to ace-modules/ace-generator/src/main/resources/static/font/iconfont.woff
diff --git a/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.eot b/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.eot
rename to ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.eot
diff --git a/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.svg b/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.svg
rename to ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.svg
diff --git a/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf b/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf
rename to ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf
diff --git a/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff b/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff
rename to ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff
diff --git a/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2 b/ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2
similarity index 100%
rename from ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2
rename to ace-modules/ace-generator/src/main/resources/static/fonts/glyphicons-halflings-regular.woff2
diff --git a/ace-generator/src/main/resources/static/images/0.jpg b/ace-modules/ace-generator/src/main/resources/static/images/0.jpg
similarity index 100%
rename from ace-generator/src/main/resources/static/images/0.jpg
rename to ace-modules/ace-generator/src/main/resources/static/images/0.jpg
diff --git a/ace-generator/src/main/resources/static/images/logo-1.png b/ace-modules/ace-generator/src/main/resources/static/images/logo-1.png
similarity index 100%
rename from ace-generator/src/main/resources/static/images/logo-1.png
rename to ace-modules/ace-generator/src/main/resources/static/images/logo-1.png
diff --git a/ace-generator/src/main/resources/static/images/xx.png b/ace-modules/ace-generator/src/main/resources/static/images/xx.png
similarity index 100%
rename from ace-generator/src/main/resources/static/images/xx.png
rename to ace-modules/ace-generator/src/main/resources/static/images/xx.png
diff --git a/ace-generator/src/main/resources/static/js/area.js b/ace-modules/ace-generator/src/main/resources/static/js/area.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/area.js
rename to ace-modules/ace-generator/src/main/resources/static/js/area.js
diff --git a/ace-generator/src/main/resources/static/js/baajax.js b/ace-modules/ace-generator/src/main/resources/static/js/baajax.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/baajax.js
rename to ace-modules/ace-generator/src/main/resources/static/js/baajax.js
diff --git a/ace-generator/src/main/resources/static/js/begtable.js b/ace-modules/ace-generator/src/main/resources/static/js/begtable.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/begtable.js
rename to ace-modules/ace-generator/src/main/resources/static/js/begtable.js
diff --git a/ace-generator/src/main/resources/static/js/btable.js b/ace-modules/ace-generator/src/main/resources/static/js/btable.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/btable.js
rename to ace-modules/ace-generator/src/main/resources/static/js/btable.js
diff --git a/ace-generator/src/main/resources/static/js/common.js b/ace-modules/ace-generator/src/main/resources/static/js/common.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/common.js
rename to ace-modules/ace-generator/src/main/resources/static/js/common.js
diff --git a/ace-generator/src/main/resources/static/js/index.js b/ace-modules/ace-generator/src/main/resources/static/js/index.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/index.js
rename to ace-modules/ace-generator/src/main/resources/static/js/index.js
diff --git a/ace-generator/src/main/resources/static/js/layout.js b/ace-modules/ace-generator/src/main/resources/static/js/layout.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/layout.js
rename to ace-modules/ace-generator/src/main/resources/static/js/layout.js
diff --git a/ace-generator/src/main/resources/static/js/navbar.js b/ace-modules/ace-generator/src/main/resources/static/js/navbar.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/navbar.js
rename to ace-modules/ace-generator/src/main/resources/static/js/navbar.js
diff --git a/ace-generator/src/main/resources/static/js/paging.js b/ace-modules/ace-generator/src/main/resources/static/js/paging.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/paging.js
rename to ace-modules/ace-generator/src/main/resources/static/js/paging.js
diff --git a/ace-generator/src/main/resources/static/js/tab.js b/ace-modules/ace-generator/src/main/resources/static/js/tab.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/tab.js
rename to ace-modules/ace-generator/src/main/resources/static/js/tab.js
diff --git a/ace-generator/src/main/resources/static/js/validator.js b/ace-modules/ace-generator/src/main/resources/static/js/validator.js
similarity index 100%
rename from ace-generator/src/main/resources/static/js/validator.js
rename to ace-modules/ace-generator/src/main/resources/static/js/validator.js
diff --git a/ace-generator/src/main/resources/static/lay/dest/layui.all.js b/ace-modules/ace-generator/src/main/resources/static/lay/dest/layui.all.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/dest/layui.all.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/dest/layui.all.js
diff --git a/ace-generator/src/main/resources/static/lay/dest/layui.mod.js b/ace-modules/ace-generator/src/main/resources/static/lay/dest/layui.mod.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/dest/layui.mod.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/dest/layui.mod.js
diff --git a/ace-generator/src/main/resources/static/lay/lib/jquery.js b/ace-modules/ace-generator/src/main/resources/static/lay/lib/jquery.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/lib/jquery.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/lib/jquery.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/code.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/code.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/code.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/code.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/element.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/element.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/element.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/element.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/flow.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/flow.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/flow.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/flow.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/form.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/form.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/form.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/form.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/jquery.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/jquery.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/jquery.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/jquery.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/laydate.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/laydate.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/laydate.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/laydate.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/layedit.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/layedit.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/layedit.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/layedit.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/layer.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/layer.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/layer.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/layer.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/laypage.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/laypage.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/laypage.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/laypage.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/laytpl.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/laytpl.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/laytpl.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/laytpl.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/mobile.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/mobile.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/mobile.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/mobile.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/tree.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/tree.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/tree.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/tree.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/upload.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/upload.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/upload.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/upload.js
diff --git a/ace-generator/src/main/resources/static/lay/modules/util.js b/ace-modules/ace-generator/src/main/resources/static/lay/modules/util.js
similarity index 100%
rename from ace-generator/src/main/resources/static/lay/modules/util.js
rename to ace-modules/ace-generator/src/main/resources/static/lay/modules/util.js
diff --git a/ace-generator/src/main/resources/static/layui.js b/ace-modules/ace-generator/src/main/resources/static/layui.js
similarity index 100%
rename from ace-generator/src/main/resources/static/layui.js
rename to ace-modules/ace-generator/src/main/resources/static/layui.js
diff --git a/ace-generator/src/main/resources/static/modules/icheck.js b/ace-modules/ace-generator/src/main/resources/static/modules/icheck.js
similarity index 100%
rename from ace-generator/src/main/resources/static/modules/icheck.js
rename to ace-modules/ace-generator/src/main/resources/static/modules/icheck.js
diff --git a/ace-generator/src/main/resources/static/modules/menu.js b/ace-modules/ace-generator/src/main/resources/static/modules/menu.js
similarity index 100%
rename from ace-generator/src/main/resources/static/modules/menu.js
rename to ace-modules/ace-generator/src/main/resources/static/modules/menu.js
diff --git a/ace-generator/src/main/resources/static/modules/pjax.js b/ace-modules/ace-generator/src/main/resources/static/modules/pjax.js
similarity index 100%
rename from ace-generator/src/main/resources/static/modules/pjax.js
rename to ace-modules/ace-generator/src/main/resources/static/modules/pjax.js
diff --git a/ace-generator/src/main/resources/static/plugins/HyperDown/LICENSE b/ace-modules/ace-generator/src/main/resources/static/plugins/HyperDown/LICENSE
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/HyperDown/LICENSE
rename to ace-modules/ace-generator/src/main/resources/static/plugins/HyperDown/LICENSE
diff --git a/ace-generator/src/main/resources/static/plugins/HyperDown/Parser.js b/ace-modules/ace-generator/src/main/resources/static/plugins/HyperDown/Parser.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/HyperDown/Parser.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/HyperDown/Parser.js
diff --git a/ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table-mobile.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table-mobile.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table-mobile.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table-mobile.min.js
diff --git a/ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/bootstrap-table.min.js
diff --git a/ace-generator/src/main/resources/static/plugins/bootstrap-table/css/bootstrap-table.min.css b/ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/css/bootstrap-table.min.css
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/bootstrap-table/css/bootstrap-table.min.css
rename to ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/css/bootstrap-table.min.css
diff --git a/ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js b/ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.js
diff --git a/ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js
diff --git a/ace-generator/src/main/resources/static/plugins/bootstrap-treeview/css/bootstrap-treeview.min.css b/ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-treeview/css/bootstrap-treeview.min.css
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/bootstrap-treeview/css/bootstrap-treeview.min.css
rename to ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-treeview/css/bootstrap-treeview.min.css
diff --git a/ace-generator/src/main/resources/static/plugins/bootstrap-treeview/js/bootstrap-treeview.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-treeview/js/bootstrap-treeview.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/bootstrap-treeview/js/bootstrap-treeview.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/bootstrap-treeview/js/bootstrap-treeview.min.js
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.css b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.css
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.css
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.css
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.min.css b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.min.css
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.min.css
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/css/font-awesome.min.css
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/FontAwesome.otf b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/FontAwesome.otf
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/fonts/FontAwesome.otf
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/FontAwesome.otf
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.eot b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.eot
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.eot
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.eot
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.svg b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.svg
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.svg
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.svg
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.ttf b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.ttf
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.ttf
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.ttf
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff
diff --git a/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff2 b/ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff2
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff2
rename to ace-modules/ace-generator/src/main/resources/static/plugins/font-awesome/fonts/fontawesome-webfont.woff2
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/css/jquery.treegrid.css b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/css/jquery.treegrid.css
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/css/jquery.treegrid.css
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/css/jquery.treegrid.css
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/extension/jquery.treegrid.extension.js b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/extension/jquery.treegrid.extension.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/extension/jquery.treegrid.extension.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/extension/jquery.treegrid.extension.js
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/collapse.png b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/collapse.png
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/collapse.png
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/collapse.png
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/expand.png b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/expand.png
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/expand.png
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/expand.png
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/file.png b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/file.png
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/file.png
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/file.png
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/folder.png b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/folder.png
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/folder.png
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/img/folder.png
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.bootstrap3.js b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.bootstrap3.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.bootstrap3.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.bootstrap3.js
diff --git a/ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery-treegrid/js/jquery.treegrid.min.js
diff --git a/ace-generator/src/main/resources/static/plugins/jquery.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/jquery.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/jquery.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/jquery.min.js
diff --git a/ace-generator/src/main/resources/static/plugins/marked/marked.js b/ace-modules/ace-generator/src/main/resources/static/plugins/marked/marked.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/marked/marked.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/marked/marked.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/css/select2.css b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/css/select2.css
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/css/select2.css
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/css/select2.css
diff --git a/ace-generator/src/main/resources/static/plugins/select2/css/select2.min.css b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/css/select2.min.css
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/css/select2.min.css
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/css/select2.min.css
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ar.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ar.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/ar.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ar.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/az.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/az.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/az.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/az.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/bg.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/bg.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/bg.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/bg.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ca.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ca.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/ca.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ca.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/cs.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/cs.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/cs.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/cs.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/da.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/da.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/da.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/da.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/de.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/de.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/de.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/de.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/el.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/el.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/el.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/el.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/en.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/en.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/en.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/en.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/es.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/es.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/es.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/es.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/et.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/et.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/et.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/et.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/eu.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/eu.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/eu.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/eu.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fa.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fa.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/fa.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fa.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fi.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fi.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/fi.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fi.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fr.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fr.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/fr.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/fr.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/gl.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/gl.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/gl.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/gl.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/he.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/he.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/he.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/he.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hi.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hi.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/hi.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hi.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hr.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hr.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/hr.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hr.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hu.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hu.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/hu.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/hu.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/id.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/id.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/id.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/id.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/is.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/is.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/is.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/is.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/it.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/it.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/it.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/it.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ja.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ja.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/ja.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ja.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/km.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/km.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/km.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/km.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ko.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ko.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/ko.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ko.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lt.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lt.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/lt.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lt.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lv.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lv.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/lv.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/lv.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/mk.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/mk.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/mk.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/mk.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ms.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ms.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/ms.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ms.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nb.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nb.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/nb.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nb.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nl.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nl.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/nl.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/nl.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pl.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pl.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/pl.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pl.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt-BR.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt-BR.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt-BR.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt-BR.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/pt.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ro.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ro.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/ro.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ro.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ru.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ru.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/ru.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/ru.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sk.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sk.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/sk.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sk.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr-Cyrl.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr-Cyrl.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr-Cyrl.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr-Cyrl.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sr.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sv.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sv.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/sv.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/sv.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/th.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/th.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/th.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/th.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/tr.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/tr.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/tr.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/tr.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/uk.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/uk.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/uk.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/uk.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/vi.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/vi.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/vi.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/vi.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-CN.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-CN.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-CN.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-CN.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-TW.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-TW.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-TW.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/i18n/zh-TW.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/select2.full.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.full.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/select2.full.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.full.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/select2.full.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.full.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/select2.full.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.full.min.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/select2.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/select2.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.js
diff --git a/ace-generator/src/main/resources/static/plugins/select2/js/select2.min.js b/ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.min.js
similarity index 100%
rename from ace-generator/src/main/resources/static/plugins/select2/js/select2.min.js
rename to ace-modules/ace-generator/src/main/resources/static/plugins/select2/js/select2.min.js
diff --git a/ace-generator/src/main/resources/template/biz.java.vm b/ace-modules/ace-generator/src/main/resources/template/biz.java.vm
similarity index 100%
rename from ace-generator/src/main/resources/template/biz.java.vm
rename to ace-modules/ace-generator/src/main/resources/template/biz.java.vm
diff --git a/ace-generator/src/main/resources/template/controller.java.vm b/ace-modules/ace-generator/src/main/resources/template/controller.java.vm
similarity index 100%
rename from ace-generator/src/main/resources/template/controller.java.vm
rename to ace-modules/ace-generator/src/main/resources/template/controller.java.vm
diff --git a/ace-generator/src/main/resources/template/entity.java.vm b/ace-modules/ace-generator/src/main/resources/template/entity.java.vm
similarity index 100%
rename from ace-generator/src/main/resources/template/entity.java.vm
rename to ace-modules/ace-generator/src/main/resources/template/entity.java.vm
diff --git a/ace-generator/src/main/resources/template/index.js.vm b/ace-modules/ace-generator/src/main/resources/template/index.js.vm
similarity index 100%
rename from ace-generator/src/main/resources/template/index.js.vm
rename to ace-modules/ace-generator/src/main/resources/template/index.js.vm
diff --git a/ace-generator/src/main/resources/template/index.vue.vm b/ace-modules/ace-generator/src/main/resources/template/index.vue.vm
similarity index 100%
rename from ace-generator/src/main/resources/template/index.vue.vm
rename to ace-modules/ace-generator/src/main/resources/template/index.vue.vm
diff --git a/ace-generator/src/main/resources/template/mapper.java.vm b/ace-modules/ace-generator/src/main/resources/template/mapper.java.vm
similarity index 100%
rename from ace-generator/src/main/resources/template/mapper.java.vm
rename to ace-modules/ace-generator/src/main/resources/template/mapper.java.vm
diff --git a/ace-generator/src/main/resources/template/mapper.xml.vm b/ace-modules/ace-generator/src/main/resources/template/mapper.xml.vm
similarity index 100%
rename from ace-generator/src/main/resources/template/mapper.xml.vm
rename to ace-modules/ace-generator/src/main/resources/template/mapper.xml.vm
diff --git a/ace-generator/src/main/resources/templates/about.html b/ace-modules/ace-generator/src/main/resources/templates/about.html
similarity index 100%
rename from ace-generator/src/main/resources/templates/about.html
rename to ace-modules/ace-generator/src/main/resources/templates/about.html
diff --git a/ace-generator/src/main/resources/templates/generator/list.html b/ace-modules/ace-generator/src/main/resources/templates/generator/list.html
similarity index 100%
rename from ace-generator/src/main/resources/templates/generator/list.html
rename to ace-modules/ace-generator/src/main/resources/templates/generator/list.html
diff --git a/ace-generator/src/main/resources/templates/index.html b/ace-modules/ace-generator/src/main/resources/templates/index.html
similarity index 100%
rename from ace-generator/src/main/resources/templates/index.html
rename to ace-modules/ace-generator/src/main/resources/templates/index.html
diff --git a/ace-admin-interface/pom.xml b/ace-modules/ace-interface/pom.xml
similarity index 72%
rename from ace-admin-interface/pom.xml
rename to ace-modules/ace-interface/pom.xml
index 4cdbef3f312f7ebd985573d6b1e040d01ca57d80..6f8d2b1f89eba5c660728b2eefa5d142681bc55a 100644
--- a/ace-admin-interface/pom.xml
+++ b/ace-modules/ace-interface/pom.xml
@@ -3,18 +3,18 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- ace-security
+ ace-modules
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
- ace-admin-interface
+ ace-interface
org.springframework.cloud
- spring-cloud-starter-feign
+ spring-cloud-starter-openfeign
\ No newline at end of file
diff --git a/ace-admin-interface/src/main/java/com/github/wxiaoqi/security/api/vo/authority/PermissionInfo.java b/ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/authority/PermissionInfo.java
similarity index 100%
rename from ace-admin-interface/src/main/java/com/github/wxiaoqi/security/api/vo/authority/PermissionInfo.java
rename to ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/authority/PermissionInfo.java
diff --git a/ace-admin-interface/src/main/java/com/github/wxiaoqi/security/api/vo/log/LogInfo.java b/ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/log/LogInfo.java
similarity index 100%
rename from ace-admin-interface/src/main/java/com/github/wxiaoqi/security/api/vo/log/LogInfo.java
rename to ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/log/LogInfo.java
diff --git a/ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/search/IndexObject.java b/ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/search/IndexObject.java
new file mode 100644
index 0000000000000000000000000000000000000000..d9193e60930b9cf9bf7f478adca2931cecdf3888
--- /dev/null
+++ b/ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/search/IndexObject.java
@@ -0,0 +1,137 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.security.api.vo.search;
+
+
+import java.io.Serializable;
+
+/**
+ * Description:索引对象
+ *
+ * @author ace
+ **/
+public class IndexObject implements Comparable,Serializable{
+
+ private Long id;
+
+ private String title;
+
+ private String keywords;
+
+ private String descripton;
+
+ private String postDate;
+
+ public String getPostDate() {
+ return postDate;
+ }
+
+ public void setPostDate(String postDate) {
+ this.postDate = postDate;
+ }
+
+ public String getDescripton() {
+ return descripton;
+ }
+
+ public void setDescripton(String descripton) {
+ this.descripton = descripton;
+ }
+
+ private String url;
+
+ /*相似度*/
+ private float score;
+
+
+ public String getKeywords() {
+ return keywords;
+ }
+
+ public void setKeywords(String keywords) {
+ this.keywords = keywords;
+ }
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+
+
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public float getScore() {
+ return score;
+ }
+
+ public void setScore(float score) {
+ this.score = score;
+ }
+
+
+
+ public IndexObject() {
+ super();
+ }
+
+ public IndexObject(Long _id, String _keywords, String _descripton, String _postDate, float _score) {
+ super();
+ this.id = _id;
+ this.keywords = _keywords;
+ this.score = _score;
+ this.descripton=_descripton;
+ this.postDate=_postDate;
+ }
+ @Override
+ public int compareTo(IndexObject o) {
+ if(this.score < o.getScore()){
+ return 1;
+ }else if(this.score > o.getScore()){
+ return -1;
+ }
+ return 0;
+ }
+
+
+}
diff --git a/ace-admin-interface/src/main/java/com/github/wxiaoqi/security/api/vo/user/UserInfo.java b/ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/user/UserInfo.java
similarity index 100%
rename from ace-admin-interface/src/main/java/com/github/wxiaoqi/security/api/vo/user/UserInfo.java
rename to ace-modules/ace-interface/src/main/java/com/github/wxiaoqi/security/api/vo/user/UserInfo.java
diff --git a/ace-demo/ace-demo-mybatis/pom.xml b/ace-modules/ace-tool/pom.xml
similarity index 33%
rename from ace-demo/ace-demo-mybatis/pom.xml
rename to ace-modules/ace-tool/pom.xml
index 0c3eeba163655e74fdb969417fd7d17dcde0f976..d694dd94bcf4fc6c93c4075a693e19e118f4659d 100644
--- a/ace-demo/ace-demo-mybatis/pom.xml
+++ b/ace-modules/ace-tool/pom.xml
@@ -3,152 +3,114 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- ace-demo
+ ace-modules
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
- ace-demo-mybatis
-
+ ace-tool
- 1.5.12
-
- 3.4.0
- 3.3.1
- 1.2.4
- 4.1.1
+ [7.2.0, 7.2.99]
+ 2.5.0
+ 4.4
- com.github.wxiaoqi
- ace-common
- 1.0-SNAPSHOT
+ com.qiniu
+ qiniu-java-sdk
+ ${qiniu.version}
- org.springframework.boot
- spring-boot-starter-jdbc
+ com.aliyun.oss
+ aliyun-sdk-oss
+ ${aliyun.oss.version}
- org.springframework.boot
- spring-boot-starter-undertow
+ com.qcloud
+ cos_api
+ ${qcloud.cos.version}
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+
+
- org.springframework.cloud
- spring-cloud-starter-feign
+ org.apache.lucene
+ lucene-core
+ 6.4.1
-
- org.springframework.cloud
- spring-cloud-starter-eureka
+ org.apache.lucene
+ lucene-queryparser
+ 6.4.1
- org.springframework.cloud
- spring-cloud-starter-hystrix
+ org.apache.lucene
+ lucene-analyzers-common
+ 6.4.1
+
- de.codecentric
- spring-boot-admin-starter-client
- 1.3.2
+ com.janeluo
+ ikanalyzer
+ 2012_u6
-
- org.springframework.boot
- spring-boot-starter-test
- test
+ org.apache.lucene
+ lucene-highlighter
+ 6.4.1
+
org.springframework.boot
- spring-boot-starter-actuator
-
-
- com.github.wxiaoqi
- ace-admin-interface
- 1.0-SNAPSHOT
-
-
-
- com.alibaba
- druid
- 1.0.11
-
-
- mysql
- mysql-connector-java
- 5.1.30
+ spring-boot-starter-undertow
-
-
- org.mybatis
- mybatis
- ${mybatis.version}
-
-
- org.mybatis
- mybatis-spring
- ${mybatis.spring.version}
+ org.springframework.boot
+ spring-boot-starter-web
-
- com.github.pagehelper
- pagehelper
- ${pagehelper.version}
+ org.springframework.boot
+ spring-boot-starter-actuator
-
- tk.mybatis
- mapper
- ${mapper.version}
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
- org.apache.commons
- commons-lang3
- 3.4
+ org.springframework.cloud
+ spring-cloud-starter-netflix-eureka-client
-
+
- com.alibaba
- fastjson
- 1.2.33
+ org.springframework.cloud
+ spring-cloud-starter-zipkin
+
- io.springfox
- springfox-swagger2
- 2.6.1
+ org.springframework.amqp
+ spring-rabbit
- io.springfox
- springfox-swagger-ui
- 2.6.1
+ com.github.wxiaoqi
+ ace-interface
+ 2.0-SNAPSHOT
com.github.wxiaoqi
- ace-auth-client
- 1.0-SNAPSHOT
+ ace-common
+ 2.0-SNAPSHOT
-
-
- ace-demo-mybatis
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- 1.8
- 1.8
-
-
-
-
\ No newline at end of file
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/ToolBootstrap.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/ToolBootstrap.java
new file mode 100644
index 0000000000000000000000000000000000000000..ceb69a10ee49c7cb0b0c7c56f478331d569c4faa
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/ToolBootstrap.java
@@ -0,0 +1,43 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi;
+
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+/**
+ * @author ace
+ * @create 2018/3/5.
+ */
+@SpringBootApplication
+@EnableEurekaClient
+public class ToolBootstrap {
+ public static void main(String[] args) {
+ new SpringApplicationBuilder(ToolBootstrap.class).web(true).run(args);
+ }
+
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/config/CloudStorageConfig.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/config/CloudStorageConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..a02a0933248a810a3a7dff8d03150d9826238f0b
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/config/CloudStorageConfig.java
@@ -0,0 +1,237 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.config;
+
+import org.hibernate.validator.constraints.Range;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.io.Serializable;
+
+/**
+ * 云存储配置信息
+ * @author ace
+ */
+@Configuration
+@ConfigurationProperties(prefix = "oss")
+public class CloudStorageConfig implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ //类型 1:七牛 2:阿里云 3:腾讯云
+ @Range(min=1, max=3, message = "类型错误")
+ private Integer type;
+
+ //七牛绑定的域名
+ private String qiniuDomain;
+ //七牛路径前缀
+ private String qiniuPrefix;
+ //七牛ACCESS_KEY
+ private String qiniuAccessKey;
+ //七牛SECRET_KEY
+ private String qiniuSecretKey;
+ //七牛存储空间名
+ private String qiniuBucketName;
+
+ //阿里云绑定的域名
+ private String aliyunDomain;
+ //阿里云路径前缀
+ private String aliyunPrefix;
+ //阿里云EndPoint
+ private String aliyunEndPoint;
+ //阿里云AccessKeyId
+ private String aliyunAccessKeyId;
+ //阿里云AccessKeySecret
+ private String aliyunAccessKeySecret;
+ //阿里云BucketName
+ private String aliyunBucketName;
+
+ //腾讯云绑定的域名
+ private String qcloudDomain;
+ //腾讯云路径前缀
+ private String qcloudPrefix;
+ //腾讯云AppId
+ private Integer qcloudAppId;
+ //腾讯云SecretId
+ private String qcloudSecretId;
+ //腾讯云SecretKey
+ private String qcloudSecretKey;
+ //腾讯云BucketName
+ private String qcloudBucketName;
+ //腾讯云COS所属地区
+ private String qcloudRegion;
+
+ public Integer getType() {
+ return type;
+ }
+
+ public void setType(Integer type) {
+ this.type = type;
+ }
+
+ public String getQiniuDomain() {
+ return qiniuDomain;
+ }
+
+ public void setQiniuDomain(String qiniuDomain) {
+ this.qiniuDomain = qiniuDomain;
+ }
+
+ public String getQiniuAccessKey() {
+ return qiniuAccessKey;
+ }
+
+ public void setQiniuAccessKey(String qiniuAccessKey) {
+ this.qiniuAccessKey = qiniuAccessKey;
+ }
+
+ public String getQiniuSecretKey() {
+ return qiniuSecretKey;
+ }
+
+ public void setQiniuSecretKey(String qiniuSecretKey) {
+ this.qiniuSecretKey = qiniuSecretKey;
+ }
+
+ public String getQiniuBucketName() {
+ return qiniuBucketName;
+ }
+
+ public void setQiniuBucketName(String qiniuBucketName) {
+ this.qiniuBucketName = qiniuBucketName;
+ }
+
+ public String getQiniuPrefix() {
+ return qiniuPrefix;
+ }
+
+ public void setQiniuPrefix(String qiniuPrefix) {
+ this.qiniuPrefix = qiniuPrefix;
+ }
+
+ public String getAliyunDomain() {
+ return aliyunDomain;
+ }
+
+ public void setAliyunDomain(String aliyunDomain) {
+ this.aliyunDomain = aliyunDomain;
+ }
+
+ public String getAliyunPrefix() {
+ return aliyunPrefix;
+ }
+
+ public void setAliyunPrefix(String aliyunPrefix) {
+ this.aliyunPrefix = aliyunPrefix;
+ }
+
+ public String getAliyunEndPoint() {
+ return aliyunEndPoint;
+ }
+
+ public void setAliyunEndPoint(String aliyunEndPoint) {
+ this.aliyunEndPoint = aliyunEndPoint;
+ }
+
+ public String getAliyunAccessKeyId() {
+ return aliyunAccessKeyId;
+ }
+
+ public void setAliyunAccessKeyId(String aliyunAccessKeyId) {
+ this.aliyunAccessKeyId = aliyunAccessKeyId;
+ }
+
+ public String getAliyunAccessKeySecret() {
+ return aliyunAccessKeySecret;
+ }
+
+ public void setAliyunAccessKeySecret(String aliyunAccessKeySecret) {
+ this.aliyunAccessKeySecret = aliyunAccessKeySecret;
+ }
+
+ public String getAliyunBucketName() {
+ return aliyunBucketName;
+ }
+
+ public void setAliyunBucketName(String aliyunBucketName) {
+ this.aliyunBucketName = aliyunBucketName;
+ }
+
+ public String getQcloudDomain() {
+ return qcloudDomain;
+ }
+
+ public void setQcloudDomain(String qcloudDomain) {
+ this.qcloudDomain = qcloudDomain;
+ }
+
+ public String getQcloudPrefix() {
+ return qcloudPrefix;
+ }
+
+ public void setQcloudPrefix(String qcloudPrefix) {
+ this.qcloudPrefix = qcloudPrefix;
+ }
+
+ public Integer getQcloudAppId() {
+ return qcloudAppId;
+ }
+
+ public void setQcloudAppId(Integer qcloudAppId) {
+ this.qcloudAppId = qcloudAppId;
+ }
+
+ public String getQcloudSecretId() {
+ return qcloudSecretId;
+ }
+
+ public void setQcloudSecretId(String qcloudSecretId) {
+ this.qcloudSecretId = qcloudSecretId;
+ }
+
+ public String getQcloudSecretKey() {
+ return qcloudSecretKey;
+ }
+
+ public void setQcloudSecretKey(String qcloudSecretKey) {
+ this.qcloudSecretKey = qcloudSecretKey;
+ }
+
+ public String getQcloudBucketName() {
+ return qcloudBucketName;
+ }
+
+ public void setQcloudBucketName(String qcloudBucketName) {
+ this.qcloudBucketName = qcloudBucketName;
+ }
+
+ public String getQcloudRegion() {
+ return qcloudRegion;
+ }
+
+ public void setQcloudRegion(String qcloudRegion) {
+ this.qcloudRegion = qcloudRegion;
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/config/LuceneConfiguration.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/config/LuceneConfiguration.java
new file mode 100644
index 0000000000000000000000000000000000000000..3efdb77150aa1d789add3c335acf9819e4d9b2a4
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/config/LuceneConfiguration.java
@@ -0,0 +1,54 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.config;
+
+
+import com.github.wxiaoqi.search.lucene.LuceneDao;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.io.IOException;
+
+/**
+ * Description:s
+ *
+ * @author ace
+ * @create 2017-05-18
+ **/
+@Configuration
+public class LuceneConfiguration {
+ @Value("${search.lucence.path}")
+ private String lucencePath;
+
+ @Bean
+ public LuceneDao luceneUtil() throws IOException {
+ LuceneDao luceneDao = new LuceneDao();
+ luceneDao.setIndexDer(lucencePath);
+ return luceneDao;
+ }
+
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/AliyunCloudStorageService.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/AliyunCloudStorageService.java
new file mode 100644
index 0000000000000000000000000000000000000000..1ea1081c9783f5028638c8c06616e7f132c1f9b4
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/AliyunCloudStorageService.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.oss.cloud;
+
+import com.aliyun.oss.OSSClient;
+import com.github.wxiaoqi.config.CloudStorageConfig;
+import com.github.wxiaoqi.security.common.exception.BaseException;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+/**
+ * 阿里云存储
+ * @author ace
+ */
+public class AliyunCloudStorageService extends CloudStorageService {
+ private OSSClient client;
+
+ public AliyunCloudStorageService(CloudStorageConfig config){
+ this.config = config;
+
+ //初始化
+ init();
+ }
+
+ private void init(){
+ client = new OSSClient(config.getAliyunEndPoint(), config.getAliyunAccessKeyId(),
+ config.getAliyunAccessKeySecret());
+ }
+
+ @Override
+ public String upload(byte[] data, String path) {
+ return upload(new ByteArrayInputStream(data), path);
+ }
+
+ @Override
+ public String upload(InputStream inputStream, String path) {
+ try {
+ client.putObject(config.getAliyunBucketName(), path, inputStream);
+ } catch (Exception e){
+ throw new BaseException("上传文件失败,请检查配置信息");
+ }
+
+ return config.getAliyunDomain() + "/" + path;
+ }
+
+ @Override
+ public String uploadSuffix(byte[] data, String suffix) {
+ return upload(data, getPath(config.getAliyunPrefix(), suffix));
+ }
+
+ @Override
+ public String uploadSuffix(InputStream inputStream, String suffix) {
+ return upload(inputStream, getPath(config.getAliyunPrefix(), suffix));
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/CloudStorageService.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/CloudStorageService.java
new file mode 100644
index 0000000000000000000000000000000000000000..e840dab38fa97be11a7684a2bc7ae47d2d7879d3
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/CloudStorageService.java
@@ -0,0 +1,93 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.oss.cloud;
+
+import com.github.wxiaoqi.config.CloudStorageConfig;
+import org.apache.commons.lang.StringUtils;
+import org.joda.time.DateTime;
+
+import java.io.InputStream;
+import java.util.UUID;
+
+/**
+ * 云存储(支持七牛、阿里云、腾讯云、又拍云)
+ * @author ace
+ */
+public abstract class CloudStorageService {
+ /** 云存储配置信息 */
+ CloudStorageConfig config;
+
+ /**
+ * 文件路径
+ * @param prefix 前缀
+ * @param suffix 后缀
+ * @return 返回上传路径
+ */
+ public String getPath(String prefix, String suffix) {
+ //生成uuid
+ String uuid = UUID.randomUUID().toString().replaceAll("-", "");
+ //文件路径
+ String path = DateTime.now().toString("yyyyMMdd") + "/" + uuid;
+ if(StringUtils.isNotBlank(prefix)){
+ path = prefix + "/" + path;
+ }
+
+ return path + suffix;
+ }
+
+ /**
+ * 文件上传
+ * @param data 文件字节数组
+ * @param path 文件路径,包含文件名
+ * @return 返回http地址
+ */
+ public abstract String upload(byte[] data, String path);
+
+ /**
+ * 文件上传
+ * @param data 文件字节数组
+ * @param suffix 后缀
+ * @return 返回http地址
+ */
+ public abstract String uploadSuffix(byte[] data, String suffix);
+
+ /**
+ * 文件上传
+ * @param inputStream 字节流
+ * @param path 文件路径,包含文件名
+ * @return 返回http地址
+ */
+ public abstract String upload(InputStream inputStream, String path);
+
+ /**
+ * 文件上传
+ * @param inputStream 字节流
+ * @param suffix 后缀
+ * @return 返回http地址
+ */
+ public abstract String uploadSuffix(InputStream inputStream, String suffix);
+
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/OSSFactory.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/OSSFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..4ef67566cb5c2ed535f028c989763f9a72615ab4
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/OSSFactory.java
@@ -0,0 +1,54 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.oss.cloud;
+
+import com.github.wxiaoqi.config.CloudStorageConfig;
+import com.github.wxiaoqi.oss.constants.OSSConstant;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 文件上传Factory
+ *
+ * @author ace
+ */
+@Component
+public class OSSFactory {
+ @Autowired
+ private CloudStorageConfig config;
+
+ public CloudStorageService build() {
+ if (config.getType().equals(OSSConstant.TYPE_QINIU)) {
+ return new QiniuCloudStorageService(config);
+ } else if (config.getType().equals(OSSConstant.TYPE_ALIYUN)) {
+ return new AliyunCloudStorageService(config);
+ } else if (config.getType().equals(OSSConstant.TYPE_QCLOUD)) {
+ return new QcloudCloudStorageService(config);
+ }
+ return null;
+ }
+
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/QcloudCloudStorageService.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/QcloudCloudStorageService.java
new file mode 100644
index 0000000000000000000000000000000000000000..8cd0cacd420e12c8c41daa5029468b6219dc36c5
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/QcloudCloudStorageService.java
@@ -0,0 +1,104 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.oss.cloud;
+
+
+import com.github.wxiaoqi.config.CloudStorageConfig;
+import com.github.wxiaoqi.security.common.exception.BaseException;
+import com.qcloud.cos.COSClient;
+import com.qcloud.cos.ClientConfig;
+import com.qcloud.cos.request.UploadFileRequest;
+import com.qcloud.cos.sign.Credentials;
+import net.sf.json.JSONObject;
+import org.apache.commons.io.IOUtils;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * 腾讯云存储
+ * @author ace
+ */
+public class QcloudCloudStorageService extends CloudStorageService {
+ private COSClient client;
+
+ public QcloudCloudStorageService(CloudStorageConfig config){
+ this.config = config;
+
+ //初始化
+ init();
+ }
+
+ private void init(){
+ Credentials credentials = new Credentials(config.getQcloudAppId(), config.getQcloudSecretId(),
+ config.getQcloudSecretKey());
+
+ //初始化客户端配置
+ ClientConfig clientConfig = new ClientConfig();
+ //设置bucket所在的区域,华南:gz 华北:tj 华东:sh
+ clientConfig.setRegion(config.getQcloudRegion());
+
+ client = new COSClient(clientConfig, credentials);
+ }
+
+ @Override
+ public String upload(byte[] data, String path) {
+ //腾讯云必需要以"/"开头
+ if(!path.startsWith("/")) {
+ path = "/" + path;
+ }
+
+ //上传到腾讯云
+ UploadFileRequest request = new UploadFileRequest(config.getQcloudBucketName(), path, data);
+ String response = client.uploadFile(request);
+ JSONObject jsonObject = JSONObject.fromObject(response);
+ if(jsonObject.getInt("code") != 0) {
+ throw new BaseException("文件上传失败," + jsonObject.getString("message"));
+ }
+
+ return config.getQcloudDomain() + path;
+ }
+
+ @Override
+ public String upload(InputStream inputStream, String path) {
+ try {
+ byte[] data = IOUtils.toByteArray(inputStream);
+ return this.upload(data, path);
+ } catch (IOException e) {
+ throw new BaseException("上传文件失败");
+ }
+ }
+
+ @Override
+ public String uploadSuffix(byte[] data, String suffix) {
+ return upload(data, getPath(config.getQcloudPrefix(), suffix));
+ }
+
+ @Override
+ public String uploadSuffix(InputStream inputStream, String suffix) {
+ return upload(inputStream, getPath(config.getQcloudPrefix(), suffix));
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/QiniuCloudStorageService.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/QiniuCloudStorageService.java
new file mode 100644
index 0000000000000000000000000000000000000000..9614199455e8bf2b38eaa1d08e1eff3c8fcb807c
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/cloud/QiniuCloudStorageService.java
@@ -0,0 +1,94 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.oss.cloud;
+
+import com.github.wxiaoqi.config.CloudStorageConfig;
+import com.github.wxiaoqi.security.common.exception.BaseException;
+import com.qiniu.common.Zone;
+import com.qiniu.http.Response;
+import com.qiniu.storage.Configuration;
+import com.qiniu.storage.UploadManager;
+import com.qiniu.util.Auth;
+import org.apache.commons.io.IOUtils;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * 七牛云存储
+ * @author ace
+ */
+public class QiniuCloudStorageService extends CloudStorageService {
+ private UploadManager uploadManager;
+ private String token;
+
+ public QiniuCloudStorageService(CloudStorageConfig config){
+ this.config = config;
+
+ //初始化
+ init();
+ }
+
+ private void init(){
+ uploadManager = new UploadManager(new Configuration(Zone.autoZone()));
+ token = Auth.create(config.getQiniuAccessKey(), config.getQiniuSecretKey()).
+ uploadToken(config.getQiniuBucketName());
+ }
+
+ @Override
+ public String upload(byte[] data, String path) {
+ try {
+ Response res = uploadManager.put(data, path, token);
+ if (!res.isOK()) {
+ throw new RuntimeException("上传七牛出错:" + res.toString());
+ }
+ } catch (Exception e) {
+ throw new BaseException("上传文件失败,请核对七牛配置信息");
+ }
+
+ return config.getQiniuDomain() + "/" + path;
+ }
+
+ @Override
+ public String upload(InputStream inputStream, String path) {
+ try {
+ byte[] data = IOUtils.toByteArray(inputStream);
+ return this.upload(data, path);
+ } catch (IOException e) {
+ throw new BaseException("上传文件失败");
+ }
+ }
+
+ @Override
+ public String uploadSuffix(byte[] data, String suffix) {
+ return upload(data, getPath(config.getQiniuPrefix(), suffix));
+ }
+
+ @Override
+ public String uploadSuffix(InputStream inputStream, String suffix) {
+ return upload(inputStream, getPath(config.getQiniuPrefix(), suffix));
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/constants/OSSConstant.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/constants/OSSConstant.java
new file mode 100644
index 0000000000000000000000000000000000000000..9422b3c4bf45c21ed48d7589e1cae744bc10f9e7
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/constants/OSSConstant.java
@@ -0,0 +1,37 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.oss.constants;
+
+/**
+ * @author ace
+ * @create 2018/3/4.
+ */
+public class OSSConstant {
+ //类型 1:七牛 2:阿里云 3:腾讯云
+ public final static Integer TYPE_QINIU = 1;
+ public final static Integer TYPE_ALIYUN = 2;
+ public final static Integer TYPE_QCLOUD = 3;
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/controller/OssController.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/controller/OssController.java
new file mode 100644
index 0000000000000000000000000000000000000000..84d4b8d7be334a4fb221b28180cfdc9e5b8e86db
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/oss/controller/OssController.java
@@ -0,0 +1,64 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.oss.controller;
+
+import com.github.wxiaoqi.oss.cloud.OSSFactory;
+import com.github.wxiaoqi.security.common.exception.BaseException;
+import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+
+/**
+ * 文件上传
+ *
+ * @author ace
+ */
+@RestController
+@RequestMapping("/oss")
+public class OssController{
+ @Autowired
+ private OSSFactory ossFactory;
+ /**
+ * 上传文件
+ */
+ @RequestMapping("/upload")
+ public ObjectRestResponse upload(@RequestParam("file") MultipartFile file) throws Exception {
+ if (file.isEmpty()) {
+ throw new BaseException("上传文件不能为空");
+ }
+ //上传文件
+ String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+ String url = ossFactory.build().uploadSuffix(file.getBytes(), suffix);
+ return new ObjectRestResponse<>().data(url);
+ }
+
+
+
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/controller/SearchController.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/controller/SearchController.java
new file mode 100644
index 0000000000000000000000000000000000000000..18b6f971f926561641e4cfb58939faf4fc6cdbb5
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/controller/SearchController.java
@@ -0,0 +1,78 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.controller;
+
+import com.github.wxiaoqi.search.service.LuceneService;
+import com.github.wxiaoqi.security.api.vo.search.IndexObject;
+import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
+import com.github.wxiaoqi.security.common.msg.TableResultResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @author ace
+ * @create 2018/3/5.
+ */
+@RestController
+@RequestMapping("/search")
+public class SearchController {
+ @Autowired
+ private LuceneService luceneService;
+
+ @RequestMapping(value = "/w/{word}", method = RequestMethod.GET)
+ public TableResultResponse search(@PathVariable String word, @RequestParam(defaultValue = "1") Integer pageNumber, @RequestParam(defaultValue = "15") Integer pageSize) {
+ return luceneService.page(pageNumber, pageSize, word);
+ }
+
+ @RequestMapping(value = "/index", method = RequestMethod.POST)
+ public ObjectRestResponse createIndexObject(@RequestBody IndexObject indexObject) {
+ luceneService.save(indexObject);
+ return new ObjectRestResponse();
+ }
+
+ @RequestMapping(value = "/index", method = RequestMethod.DELETE)
+ public ObjectRestResponse removeIndexObject(@RequestBody IndexObject indexObject) {
+ luceneService.delete(indexObject);
+ return new ObjectRestResponse();
+ }
+
+ @RequestMapping(value = "/index", method = RequestMethod.PATCH)
+ public ObjectRestResponse batchCreateIndexObject(@RequestBody List indexObjects) {
+ for (IndexObject object : indexObjects) {
+ luceneService.save(object);
+ }
+ return new ObjectRestResponse();
+ }
+
+ @RequestMapping(value = "/index", method = RequestMethod.PUT)
+ public ObjectRestResponse updateIndexObject(@RequestBody IndexObject indexObject) {
+ luceneService.update(indexObject);
+ return new ObjectRestResponse();
+ }
+
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/LuceneDao.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/LuceneDao.java
new file mode 100644
index 0000000000000000000000000000000000000000..151ad9b52cf612337ac3761b0d2dfb041320534e
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/LuceneDao.java
@@ -0,0 +1,251 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.lucene;
+
+import com.github.wxiaoqi.security.api.vo.search.IndexObject;
+import com.github.wxiaoqi.search.lucene.util.DocumentUtil;
+import com.github.wxiaoqi.search.lucene.util.IKAnalyzer5x;
+import com.github.wxiaoqi.search.lucene.util.QueryUtil;
+import com.github.wxiaoqi.security.common.msg.TableResultResponse;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.index.*;
+import org.apache.lucene.search.IndexSearcher;
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.ScoreDoc;
+import org.apache.lucene.search.TopDocs;
+import org.apache.lucene.search.highlight.*;
+import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Description:lucene
+ *
+ * @author ace
+ * @create 2017-05-18
+ **/
+public class LuceneDao {
+
+ private final static Logger log = LoggerFactory.getLogger(LuceneDao.class);
+
+ private Directory directory = null;
+ private Analyzer analyzer = null;
+ private String indexDer = null;
+
+ public void setIndexDer(String indexDer) {
+ this.indexDer = indexDer;
+ }
+
+ public Analyzer getAnalyzer() {
+ if(analyzer == null){
+ analyzer = new IKAnalyzer5x(true);
+ }
+ return analyzer;
+ }
+
+ public Directory getDirectory() throws IOException {
+ if(directory == null){
+ File indexRepositoryFile = new File(this.indexDer);
+ Path path = indexRepositoryFile.toPath();
+ directory = FSDirectory.open(path);
+ }
+ return directory;
+ }
+
+
+ /*创建索引*/
+ public void create(IndexObject indexObject) {
+
+ IndexWriter indexWriter = null;
+ try {
+ IndexWriterConfig config = new IndexWriterConfig(this.getAnalyzer());
+ indexWriter = new IndexWriter(this.getDirectory(), config);
+ indexWriter.addDocument(DocumentUtil.IndexObject2Document(indexObject));
+ indexWriter.commit();
+ } catch (Exception e) {
+ e.printStackTrace();
+ try {
+ indexWriter.rollback();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ }finally {
+ try {
+ indexWriter.close();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+
+
+ /* 删除索引 */
+ public void deleteAll() {
+ IndexWriter indexWriter = null;
+ try {
+ IndexWriterConfig config = new IndexWriterConfig(this.getAnalyzer());
+ indexWriter = new IndexWriter(this.getDirectory(), config);
+ Long result =indexWriter.deleteAll();
+ /*清空回收站*/
+ indexWriter.forceMergeDeletes();
+ log.info("deleted:{}",result);
+ } catch (Exception e) {
+ e.printStackTrace();
+ try {
+ indexWriter.rollback();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ } finally {
+ try {
+ indexWriter.close();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+
+ /* 更新单条索引 */
+ public void update(IndexObject indexObject) {
+
+ IndexWriter indexWriter = null;
+
+ try {
+
+ Term term = new Term("id", indexObject.getId().toString());
+ IndexWriterConfig config = new IndexWriterConfig(this.getAnalyzer());
+ indexWriter = new IndexWriter(this.getDirectory(), config);
+ indexWriter.updateDocument(term,DocumentUtil.IndexObject2Document(indexObject));
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ try {
+ indexWriter.rollback();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ } finally {
+ try {
+ indexWriter.close();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+
+ /* 查询索引 */
+ public TableResultResponse page(Integer pageNumber, Integer pageSize, String keyword){
+
+ IndexReader indexReader = null;
+ TableResultResponse pageQuery = null;
+ List searchResults = new ArrayList<>();
+ try {
+ indexReader = DirectoryReader.open(this.getDirectory());
+ IndexSearcher indexSearcher = new IndexSearcher(indexReader);
+ Query query = QueryUtil.query(keyword,this.getAnalyzer(),"title","descripton");
+ ScoreDoc lastScoreDoc = this.getLastScoreDoc(pageNumber, pageSize, query, indexSearcher);
+ /*将上一页的最后一个document传递给searchAfter方法以得到下一页的结果 */
+ TopDocs topDocs = indexSearcher.searchAfter(lastScoreDoc,query, pageSize);
+ Highlighter highlighter = this.addStringHighlighter(query);
+ log.info("搜索词语:{}",keyword);
+ log.info("总共的查询结果:{}", topDocs.totalHits);
+ for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
+ int docID = scoreDoc.doc;
+ float score = scoreDoc.score;
+ Document document = indexSearcher.doc(docID);
+ IndexObject indexObject =DocumentUtil.document2IndexObject(this.getAnalyzer(), highlighter, document,score);
+ searchResults.add(indexObject);
+ log.info("相关度得分:" + score);
+ }
+ Collections.sort(searchResults);
+ pageQuery = new TableResultResponse<>(topDocs.totalHits,searchResults);
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ try {
+ indexReader.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ return pageQuery;
+ }
+
+ /* 根据页码和分页大小获取上一次的最后一个ScoreDoc */
+ private ScoreDoc getLastScoreDoc(Integer pageNumber,Integer pageSize,Query query,IndexSearcher searcher) throws IOException {
+ if(pageNumber==1) {
+ return null;
+ }
+ int total = pageSize*(pageNumber-1);
+ TopDocs topDocs = searcher.search(query,total);
+ return topDocs.scoreDocs[total -1];
+ }
+
+
+ /* 设置字符串高亮 */
+ private Highlighter addStringHighlighter(Query query){
+ QueryScorer scorer=new QueryScorer(query);
+ Fragmenter fragmenter=new SimpleSpanFragmenter(scorer);
+ SimpleHTMLFormatter simpleHTMLFormatter=new SimpleHTMLFormatter("","");
+ Highlighter highlighter=new Highlighter(simpleHTMLFormatter, scorer);
+ highlighter.setTextFragmenter(fragmenter);
+ return highlighter;
+ }
+
+
+ public void delete(IndexObject indexObject) {
+ IndexWriter indexWriter = null;
+ try {
+ Term term = new Term("id", indexObject.getId().toString());
+ IndexWriterConfig config = new IndexWriterConfig(this.getAnalyzer());
+ indexWriter = new IndexWriter(this.getDirectory(), config);
+ indexWriter.deleteDocuments(term);
+ } catch (Exception e) {
+ e.printStackTrace();
+ try {
+ indexWriter.rollback();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ } finally {
+ try {
+ indexWriter.close();
+ } catch (IOException e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/DocumentUtil.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/DocumentUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..5c1469a30c566c8b3bb2402a06006c50a07f5e61
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/DocumentUtil.java
@@ -0,0 +1,80 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.lucene.util;
+
+import com.github.wxiaoqi.security.api.vo.search.IndexObject;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.TokenStream;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+import org.apache.lucene.document.StoredField;
+import org.apache.lucene.document.TextField;
+import org.apache.lucene.search.highlight.Highlighter;
+
+import java.io.StringReader;
+
+/**
+ * Description:sss
+ *
+ * @author ace
+ * @create 2017-05-18
+ **/
+public class DocumentUtil {
+
+ public static Document IndexObject2Document(IndexObject indexObject) {
+ Document doc = new Document();
+ doc.add(new StoredField("id", indexObject.getId()));
+ doc.add(new TextField("title",indexObject.getTitle(), Field.Store.YES));
+ doc.add(new TextField("summary",indexObject.getKeywords(), Field.Store.YES));
+ doc.add(new TextField("descripton",indexObject.getDescripton(), Field.Store.YES));
+ doc.add(new StoredField("postDate", indexObject.getPostDate()));
+ doc.add(new StoredField("url", indexObject.getUrl()));
+ return doc;
+ }
+
+ public static IndexObject document2IndexObject(Analyzer analyzer, Highlighter highlighter, Document doc,float score) throws Exception {
+ IndexObject indexObject = new IndexObject();
+ indexObject.setId(Long.parseLong(doc.get("id")));
+ indexObject.setTitle(stringFormatHighlighterOut(analyzer, highlighter,doc,"title"));
+ indexObject.setKeywords(stringFormatHighlighterOut(analyzer, highlighter,doc,"summary"));
+ indexObject.setDescripton(stringFormatHighlighterOut(analyzer, highlighter,doc,"descripton"));
+ indexObject.setPostDate(doc.get("postDate"));
+ indexObject.setUrl(doc.get("url"));
+ indexObject.setScore(score);
+ return indexObject;
+ }
+
+
+ /*关键字加亮*/
+ private static String stringFormatHighlighterOut(Analyzer analyzer, Highlighter highlighter, Document document, String field) throws Exception{
+ String fieldValue = document.get(field);
+ if(fieldValue!=null){
+ TokenStream tokenStream=analyzer.tokenStream(field, new StringReader(fieldValue));
+ return highlighter.getBestFragment(tokenStream, fieldValue);
+ }
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/IKAnalyzer5x.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/IKAnalyzer5x.java
new file mode 100644
index 0000000000000000000000000000000000000000..c124e2565077c13fcd6d14f6f5a767a1690c6b1e
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/IKAnalyzer5x.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.lucene.util;
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.analysis.Tokenizer;
+
+public class IKAnalyzer5x extends Analyzer{
+
+ private boolean useSmart;
+
+ public boolean useSmart() {
+ return useSmart;
+ }
+
+ public void setUseSmart(boolean useSmart) {
+ this.useSmart = useSmart;
+ }
+
+ /**
+ * IK分词器Lucene Analyzer接口实现类
+ *
+ * 默认细粒度切分算法
+ */
+ public IKAnalyzer5x(){
+ this(false);
+ }
+
+ /**
+ * IK分词器Lucene Analyzer接口实现类
+ *
+ * @param useSmart 当为true时,分词器进行智能切分
+ */
+ public IKAnalyzer5x(boolean useSmart){
+ super();
+ this.useSmart = useSmart;
+ }
+
+
+ /**
+ protected TokenStreamComponents createComponents(String fieldName, final Reader in) {
+ Tokenizer _IKTokenizer = new IKTokenizer(in , this.useSmart());
+ return new TokenStreamComponents(_IKTokenizer);
+ }
+ **/
+
+
+ /**
+ * 重写最新版本的createComponents
+ * 重载Analyzer接口,构造分词组件
+ */
+ @Override
+ protected TokenStreamComponents createComponents(String fieldName) {
+ Tokenizer _IKTokenizer = new IKTokenizer5x(this.useSmart());
+ return new TokenStreamComponents(_IKTokenizer);
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/IKTokenizer5x.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/IKTokenizer5x.java
new file mode 100644
index 0000000000000000000000000000000000000000..4bf1bfed9b1000103d50ce3006608b5857dce2bd
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/IKTokenizer5x.java
@@ -0,0 +1,101 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.lucene.util;
+
+import org.apache.lucene.analysis.Tokenizer;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
+import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
+import org.apache.lucene.analysis.tokenattributes.TypeAttribute;
+import org.wltea.analyzer.core.IKSegmenter;
+import org.wltea.analyzer.core.Lexeme;
+
+import java.io.IOException;
+
+public class IKTokenizer5x extends Tokenizer{
+
+
+ /*IK分词器实现*/
+ private IKSegmenter _IKImplement;
+
+ /*词元文本属性*/
+ private final CharTermAttribute termAtt;
+ /*词元位移属性*/
+ private final OffsetAttribute offsetAtt;
+ /*词元分类属性(该属性分类参考org.wltea.analyzer.core.Lexeme中的分类常量)*/
+ private final TypeAttribute typeAtt;
+ /*记录最后一个词元的结束位置*/
+ private int endPosition;
+
+
+
+ /*IK5.x 构造器*/
+ public IKTokenizer5x(boolean useSmart){
+ super();
+ offsetAtt = addAttribute(OffsetAttribute.class);
+ termAtt = addAttribute(CharTermAttribute.class);
+ typeAtt = addAttribute(TypeAttribute.class);
+ _IKImplement = new IKSegmenter(input , useSmart);
+ }
+
+
+ @Override
+ public final boolean incrementToken() throws IOException {
+ /*清除所有的词元属性*/
+ clearAttributes();
+ Lexeme nextLexeme = _IKImplement.next();
+ if(nextLexeme != null){
+ /*将Lexeme转成Attributes*/
+ /*设置词元文本*/
+ termAtt.append(nextLexeme.getLexemeText());
+ /*设置词元长度*/
+ termAtt.setLength(nextLexeme.getLength());
+ /*设置词元位移*/
+ offsetAtt.setOffset(nextLexeme.getBeginPosition(), nextLexeme.getEndPosition());
+ /*记录分词的最后位置*/
+ endPosition = nextLexeme.getEndPosition();
+ /*记录词元分类*/
+ typeAtt.setType(nextLexeme.getLexemeTypeString());
+ /*返会true告知还有下个词元*/
+ return true;
+ }
+ /*返会false告知词元输出完毕*/
+ return false;
+ }
+
+
+ @Override
+ public void reset() throws IOException {
+ super.reset();
+ _IKImplement.reset(input);
+ }
+
+ @Override
+ public final void end() {
+ /*set final offset*/
+ int finalOffset = correctOffset(this.endPosition);
+ offsetAtt.setOffset(finalOffset, finalOffset);
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/QueryUtil.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/QueryUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..73495aba854c1230a692899fe98b691c42326880
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/lucene/util/QueryUtil.java
@@ -0,0 +1,56 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.lucene.util;
+
+import org.apache.lucene.analysis.Analyzer;
+import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;
+import org.apache.lucene.queryparser.classic.ParseException;
+import org.apache.lucene.queryparser.classic.QueryParser;
+import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.Query;
+
+/**
+ * Description:query util
+ *
+ * @author ace
+ * @create 2017-05-19
+ **/
+public class QueryUtil {
+
+ private static String queryStringFilter(String query) {
+ return query.replace("/", " ").replace("\\", " ");
+ }
+
+
+ public static Query query(String query, Analyzer analyzer, String... fields) throws ParseException {
+ BooleanQuery.setMaxClauseCount(32768);
+ query = queryStringFilter(query); /*过滤非法字符*/
+ MultiFieldQueryParser parser = new MultiFieldQueryParser(fields, analyzer);
+ parser.setDefaultOperator(QueryParser.Operator.OR);
+ return parser.parse(query);
+ }
+
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/service/LuceneService.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/service/LuceneService.java
new file mode 100644
index 0000000000000000000000000000000000000000..cca23137cc46eccb2512a576f47830af59f83daf
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/service/LuceneService.java
@@ -0,0 +1,47 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.service;
+
+
+import com.github.wxiaoqi.security.api.vo.search.IndexObject;
+import com.github.wxiaoqi.security.common.msg.TableResultResponse;
+
+/**
+ * lucense 接口
+ * @author ace
+ */
+public interface LuceneService {
+
+ void save(IndexObject indexObject);
+
+ void update(IndexObject indexObject);
+
+ void delete(IndexObject indexObject);
+
+ void deleteAll();
+
+ TableResultResponse page(Integer pageNumber, Integer pageSize, String keyword);
+}
diff --git a/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/service/impl/LuceneServiceImpl.java b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/service/impl/LuceneServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..efdf5ed98c3b8308accd8d5af55110c5eaf695ce
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/java/com/github/wxiaoqi/search/service/impl/LuceneServiceImpl.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * * Copyright (C) 2018 Wanghaobin<463540703@qq.com>
+ *
+ * * AG-Enterprise 企业版源码
+ * * 郑重声明:
+ * * 如果你从其他途径获取到,请告知老A传播人,奖励1000。
+ * * 老A将追究授予人和传播人的法律责任!
+ *
+ * * This program is free software; you can redistribute it and/or modify
+ * * it under the terms of the GNU General Public License as published by
+ * * the Free Software Foundation; either version 2 of the License, or
+ * * (at your option) any later version.
+ *
+ * * This program is distributed in the hope that it will be useful,
+ * * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * * GNU General Public License for more details.
+ *
+ * * You should have received a copy of the GNU General Public License along
+ * * with this program; if not, write to the Free Software Foundation, Inc.,
+ * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ */
+
+package com.github.wxiaoqi.search.service.impl;
+
+import com.github.wxiaoqi.security.api.vo.search.IndexObject;
+import com.github.wxiaoqi.search.lucene.LuceneDao;
+import com.github.wxiaoqi.search.service.LuceneService;
+import com.github.wxiaoqi.security.common.msg.TableResultResponse;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * Description:luncene
+ *
+ * @author ace
+ * @create 2017-06-06
+ **/
+@Service
+public class LuceneServiceImpl implements LuceneService {
+
+ @Autowired
+ private LuceneDao luceneDao;
+
+
+ @Override
+ public void save(IndexObject indexObject) {
+ luceneDao.create(indexObject);
+ }
+
+
+ @Override
+ public void update(IndexObject indexObject) {
+ luceneDao.update(indexObject);
+ }
+
+ @Override
+ public void delete(IndexObject indexObject) {
+ luceneDao.delete(indexObject);
+ }
+
+ @Override
+ public void deleteAll() {
+ luceneDao.deleteAll();
+ }
+
+ @Override
+ public TableResultResponse page(Integer pageNumber, Integer pageSize, String keyword) {
+ return luceneDao.page(pageNumber,pageSize,keyword);
+ }
+}
diff --git a/ace-modules/ace-tool/src/main/resources/application.yml b/ace-modules/ace-tool/src/main/resources/application.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b4a8e7faf99441fcc76abc73aab685f642f0166a
--- /dev/null
+++ b/ace-modules/ace-tool/src/main/resources/application.yml
@@ -0,0 +1,33 @@
+logging:
+ level:
+# tk.mybatis: DEBUG
+ com.github.wxiaoqi: DEBUG
+server:
+ port: 9992
+
+spring:
+ profiles:
+ active: dev
+ application:
+ name: ace-tool
+ rabbitmq:
+ host: ${RABBIT_MQ_HOST:localhost}
+ port: ${RABBIT_MQ_PORT:5672}
+ username: guest
+ password: guest
+ sleuth:
+ sampler:
+ percentage: 1
+
+search:
+ lucence:
+ path: ./lucence/file
+
+# 具体看类:CloudStorageConfig
+oss:
+ type: 1 # 类型 1:七牛 2:阿里云 3:腾讯云
+ qiniuDomain: http://xxxxx.com
+ qiniuPrefix: oss
+ qiniuAccessKey: xxxxxx
+ qiniuSecretKey: xxxxx
+ qiniuBucketName: xxxBucket
\ No newline at end of file
diff --git a/ace-config/src/main/resources/application.yml b/ace-modules/ace-tool/src/main/resources/bootstrap.yml
old mode 100644
new mode 100755
similarity index 41%
rename from ace-config/src/main/resources/application.yml
rename to ace-modules/ace-tool/src/main/resources/bootstrap.yml
index c03c13615bdf0ffa2971f703507e3db348a4bad3..1efa17d359a78b61f5dac534076958e6d481481e
--- a/ace-config/src/main/resources/application.yml
+++ b/ace-modules/ace-tool/src/main/resources/bootstrap.yml
@@ -1,24 +1,37 @@
-spring:
- application:
- name: ace-config
- cloud:
- config:
- server:
- git:
- uri: https://git.oschina.net/geek_qi/AG-Config.git
-
-server:
- port: 8750 #启动端口
-
-eureka:
- instance:
- statusPageUrlPath: /info
- healthCheckUrlPath: /health
- # docker 部署开启
-# prefer-ip-address: true
-# ip-address: 127.0.0.1
- client:
- serviceUrl:
-# defaultZone: http://localhost:8761/eureka/
- # docker 部署开启
- defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
+eureka:
+ instance:
+ statusPageUrlPath: /info
+ healthCheckUrlPath: /health
+ # docker 部署开启
+ client:
+ serviceUrl:
+# defaultZone: http://localhost:8761/eureka/
+ # docker 部署开启
+ defaultZone: http://${EUREKA_HOST:localhost}:${EUREKA_PORT:8761}/eureka/
+
+
+
+
+ribbon:
+ eureka:
+ enabled: true
+ ReadTimeout: 120000
+ ConnectTimeout: 120000
+ MaxAutoRetries: 0
+ MaxAutoRetriesNextServer: 0
+ OkToRetryOnAllOperations: false
+ NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
+
+
+hystrix:
+ threadpool:
+ default:
+ coreSize: 1000
+ maxQueueSize: 1000
+ queueSizeRejectionThreshold: 500
+ command:
+ default:
+ execution:
+ isolation:
+ thread:
+ timeoutInMilliseconds: 50000
diff --git a/ace-demo/pom.xml b/ace-modules/pom.xml
similarity index 68%
rename from ace-demo/pom.xml
rename to ace-modules/pom.xml
index 8d99757959e8859f24af7b4b8fdc4fd54ddb782e..3da286dac20cc4cf1dee444f931be421a4ca457f 100644
--- a/ace-demo/pom.xml
+++ b/ace-modules/pom.xml
@@ -5,16 +5,16 @@
ace-security
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
pom
+ ace-modules
+
- ace-demo-data-jpa
- ace-demo-mybatis
- ace-service-template
+ ace-admin
+ ace-interface
+ ace-generator
+ ace-tool
- ace-demo
-
-
\ No newline at end of file
diff --git a/ace-sidecar/ace-sidecar-client-demo/pom.xml b/ace-sidecar/ace-sidecar-client-demo/pom.xml
index 002d6c8f95d3b34cd850fea23af51ba73ab8b681..e3e7a9eb3fbd8d0e9103001122b58b2d870027e6 100644
--- a/ace-sidecar/ace-sidecar-client-demo/pom.xml
+++ b/ace-sidecar/ace-sidecar-client-demo/pom.xml
@@ -5,7 +5,7 @@
ace-sidecar
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -38,15 +38,15 @@
org.springframework.cloud
- spring-cloud-starter-eureka
+ spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
- spring-cloud-starter-eureka
+ spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
- spring-cloud-starter-feign
+ spring-cloud-starter-openfeign
diff --git a/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/PythonServerBootstrap.java b/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/PythonServerBootstrap.java
index d5e5e038e7c9d969dfc41e6926cf876b31eff488..589efe220161e123c224677ad0c78caa6fdeb9e4 100644
--- a/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/PythonServerBootstrap.java
+++ b/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/PythonServerBootstrap.java
@@ -2,9 +2,9 @@ package com.github.wxiaoqi.security.sidecarclient;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
-import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* ${DESCRIPTION}
diff --git a/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/client/PythonFeignClient.java b/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/client/PythonFeignClient.java
index d274113740af153cf7c50eaf2c8ef4da5f1c40c9..1a5a3ab31b1ea6e3f1dddd1ac1cfd4fea7f5250c 100644
--- a/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/client/PythonFeignClient.java
+++ b/ace-sidecar/ace-sidecar-client-demo/src/main/java/com/github/wxiaoqi/security/sidecarclient/client/PythonFeignClient.java
@@ -1,9 +1,10 @@
package com.github.wxiaoqi.security.sidecarclient.client;
-import org.springframework.cloud.netflix.feign.FeignClient;
-import org.springframework.web.bind.annotation.RequestMapping;
import com.github.wxiaoqi.security.sidecarclient.entity.Message;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
+
import java.util.List;
/**
diff --git a/ace-sidecar/ace-sidecar-server/pom.xml b/ace-sidecar/ace-sidecar-server/pom.xml
index dce413a309ac0a34dc05e8ed946c22f1c1e2c5cc..a4c11cdedaad0c5cb3c2811ce001c4b5a8f5aaa9 100644
--- a/ace-sidecar/ace-sidecar-server/pom.xml
+++ b/ace-sidecar/ace-sidecar-server/pom.xml
@@ -5,7 +5,7 @@
ace-sidecar
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
@@ -38,7 +38,7 @@
org.springframework.cloud
- spring-cloud-starter-eureka
+ spring-cloud-starter-netflix-eureka-client
diff --git a/ace-sidecar/pom.xml b/ace-sidecar/pom.xml
index 1dc3b0774f524bfaa3615f18b2f42c4919f414d3..3070c7b4a8474e87dd1f93dfe0cb639c299b367e 100644
--- a/ace-sidecar/pom.xml
+++ b/ace-sidecar/pom.xml
@@ -5,7 +5,7 @@
ace-security
com.github.wxiaoqi
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
4.0.0
diff --git a/pom.xml b/pom.xml
index ecfef72c747da8ade616cd839e71bb2d4f40aa3f..a7b097cc650e29c2896d123fd5c7d26394ba5127 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.github.wxiaoqi
ace-security
- 1.0-SNAPSHOT
+ 2.0-SNAPSHOT
https://github.com/wxiaoqi/ace-security
@@ -19,7 +19,7 @@
org.springframework.boot
spring-boot-starter-parent
- 1.5.4.RELEASE
+ 2.0.0.RELEASE
ag
@@ -29,17 +29,13 @@
1.8
- ace-admin
ace-center
- ace-admin-interface
ace-gate
ace-common
- ace-config
- ace-generator
ace-auth
ace-sidecar
- ace-demo
ace-control
+ ace-modules
pom
@@ -63,6 +59,14 @@
oss
https://oss.sonatype.org/content/groups/public
+
+ spring-milestones
+ Spring Milestones
+ https://repo.spring.io/libs-milestone
+
+ false
+
+
@@ -70,7 +74,7 @@
org.springframework.cloud
spring-cloud-dependencies
- Dalston.SR1
+ Finchley.M8
pom
import