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` ## 超级管理员 ![img](http://geek_qi.gitee.io/ag-admin/img/base.gif) @@ -47,10 +50,17 @@ AG-Admin是国内首个基于`Spring Cloud`微`服务`化`开发平台`,具有 ## 服务管理 ![img](http://geek_qi.gitee.io/ag-admin/img/service.gif) -### 联系老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 ## 虽然本产品是开源产品,但未经本人允许擅自申请专利,将公开追究法律责任。 - - # 我们的用户 ![img](http://upload-images.jianshu.io/upload_images/5700335-67814644d39fce24.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)![image.png](http://upload-images.jianshu.io/upload_images/5700335-a6f45909f94ab3b8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ![NLDCF.png](https://s1.ax1x.com/2017/10/24/NLDCF.png) - -# 相信有了你们的支持,AG开源会越来越好,项目也会越来越完善。 - -通过微信或支付宝,扫描下面的二维码,即可捐赠,如下图所示: - -微信 | 支付宝 ----|--- -![微信](http://upload-images.jianshu.io/upload_images/5700335-41754303a4ccb703.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1080/q/50) | ![支付宝](http://upload-images.jianshu.io/upload_images/5700335-c4a626166c15058e.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1080/q/50) \ 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