diff --git a/db/v0.2.x-v0.3.sql b/db/v0.2.x-v0.3.sql
deleted file mode 100644
index 4a2c0b60..00000000
--- a/db/v0.2.x-v0.3.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-SET NAMES utf8mb4;
-SET FOREIGN_KEY_CHECKS = 0;
-
-ALTER TABLE `magic_api_info` ADD COLUMN `api_group_prefix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分组前缀' AFTER `api_group_name`;
-ALTER TABLE `magic_api_info` ADD COLUMN `api_output` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '输出结果' AFTER `api_group_prefix`;
--- ----------------------------
--- Table structure for magic_api_info_his
--- ----------------------------
-CREATE TABLE `magic_api_info_his` (
- `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'api_id',
- `api_method` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方法',
- `api_path` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求路径',
- `api_script` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '接口脚本',
- `api_parameter` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '接口参数',
- `api_option` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '接口选项',
- `api_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口名称',
- `api_group_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '接口分组',
- `api_group_prefix` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分组前缀',
- `api_output` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '输出结果',
- `api_create_time` bigint(20) NULL DEFAULT NULL COMMENT '创建时间',
- `api_update_time` bigint(20) NULL DEFAULT NULL COMMENT '修改时间'
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'MagicAPI接口历史记录' ROW_FORMAT = Dynamic;
\ No newline at end of file
diff --git a/db/v0.4.x-v0.5-mysql.sql b/db/v0.4.x-v0.5-mysql.sql
deleted file mode 100644
index c452e104..00000000
--- a/db/v0.4.x-v0.5-mysql.sql
+++ /dev/null
@@ -1,29 +0,0 @@
--- 创建分组表
-CREATE TABLE `magic_group` (
- `id` varchar(32) NOT NULL,
- `group_name` varchar(64) NULL COMMENT '组名',
- `group_type` varchar(1) NULL COMMENT '组类型,1:接口分组,2:函数分组',
- `group_path` varchar(64) NULL COMMENT '分组路径',
- `parent_id` varchar(32) NULL COMMENT '父级ID',
- `deleted` char(1) NULL DEFAULT 0 COMMENT '是否被删除,1:是,0:否',
- PRIMARY KEY (`id`)
-) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'MagicAPI分组信息表' ROW_FORMAT = Dynamic;
--- 插入分组数据
-insert into magic_group select md5(uuid()),api_group_name,'1',api_group_prefix,'0','0' from magic_api_info group by api_group_name,api_group_prefix;
--- 修改字段
-ALTER TABLE `magic_api_info` ADD COLUMN `api_group_id` varchar(32) NULL COMMENT '分组ID' AFTER `api_name`;
-ALTER TABLE `magic_api_info` CHANGE COLUMN `api_output` `api_response_body` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '输出结果' AFTER `api_group_id`;
-ALTER TABLE `magic_api_info` ADD COLUMN `api_description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '接口描述' AFTER `api_response_body`;
-ALTER TABLE `magic_api_info` ADD COLUMN `api_request_body` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求体' AFTER `api_group_id`, ADD COLUMN `api_request_header` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求Header' AFTER `api_request_body`;
-ALTER TABLE `magic_api_info_his` ADD COLUMN `api_group_id` varchar(32) NULL COMMENT '分组ID' AFTER `api_name`;
-ALTER TABLE `magic_api_info_his` CHANGE COLUMN `api_output` `api_response_body` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '输出结果' AFTER `api_group_id`;
-ALTER TABLE `magic_api_info_his` ADD COLUMN `api_description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '接口描述' AFTER `api_response_body`;
-ALTER TABLE `magic_api_info_his` ADD COLUMN `api_request_body` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求体' AFTER `api_group_id`, ADD COLUMN `api_request_header` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '请求Header' AFTER `api_request_body`;
-
--- 赋值api_group_id字段
-UPDATE magic_api_info mai JOIN magic_group mg ON mg.group_name = mai.api_group_name AND mg.group_path = mai.api_group_prefix SET mai.api_group_id = mg.id;
--- 对关联不上的,归根节点
-UPDATE magic_api_info SET api_group_id = '0' where api_group_id IS NULL;
--- 删除字段
-ALTER TABLE `magic_api_info` DROP COLUMN `api_group_name`,DROP COLUMN `api_group_prefix`;
-ALTER TABLE `magic_api_info_his` DROP COLUMN `api_group_name`,DROP COLUMN `api_group_prefix`;
\ No newline at end of file
diff --git a/db/v0.5.x-v0.6-mysql.sql b/db/v0.5.x-v0.6-mysql.sql
deleted file mode 100644
index e2b03b7a..00000000
--- a/db/v0.5.x-v0.6-mysql.sql
+++ /dev/null
@@ -1,34 +0,0 @@
-CREATE TABLE `magic_function`
-(
- `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '主键',
- `function_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数名称',
- `function_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数路径',
- `function_parameter` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '参数列表',
- `function_return_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '返回值类型',
- `function_script` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '脚本',
- `function_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属分组',
- `function_description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数描述',
- `function_create_time` bigint(20) NULL DEFAULT NULL COMMENT '创建时间',
- `function_update_time` bigint(20) NULL DEFAULT NULL COMMENT '修改时间',
- PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB
- CHARACTER SET = utf8mb4
- COLLATE = utf8mb4_general_ci COMMENT = 'MagicAPI 函数表'
- ROW_FORMAT = Dynamic;
-
-CREATE TABLE `magic_function_his`
-(
- `id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'function_id',
- `function_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数名称',
- `function_path` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数路径',
- `function_parameter` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '参数列表',
- `function_return_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '返回值类型',
- `function_script` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '脚本',
- `function_group_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '所属分组',
- `function_description` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '函数描述',
- `function_create_time` bigint(20) NULL DEFAULT NULL COMMENT '创建时间',
- `function_update_time` bigint(20) NULL DEFAULT NULL COMMENT '修改时间'
-) ENGINE = InnoDB
- CHARACTER SET = utf8mb4
- COLLATE = utf8mb4_general_ci COMMENT = 'MagicAPI 函数历史记录'
- ROW_FORMAT = Dynamic;
\ No newline at end of file
diff --git a/db/v0.6.x-v0.7.x升级脚本.ms b/db/v0.6.x-v0.7.x升级脚本.ms
deleted file mode 100644
index c23a913b..00000000
--- a/db/v0.6.x-v0.7.x升级脚本.ms
+++ /dev/null
@@ -1,49 +0,0 @@
-import 'org.ssssssss.magicapi.adapter.Resource' as root;
-import 'org.ssssssss.magicapi.provider.GroupServiceProvider';
-import 'org.ssssssss.magicapi.provider.ApiServiceProvider';
-import 'org.ssssssss.magicapi.provider.FunctionServiceProvider';
-import 'org.ssssssss.magicapi.utils.IoUtils' as IoUtils
-import 'org.ssssssss.magicapi.utils.JsonUtils' as JsonUtils
-import 'java.io.File' as File;
-var ds = db.camel(); //如果之前保存在其他库,这里可以修改为db.xxx.camel();
-var apiSql = """ select * from magic_api_info """;
-var groupSql = """ select * from magic_group where deleted = '0' """;
-var functionSql = """ select * from magic_function """;
-// 替换key,去除前缀,将首字母小写。
-var replaceKey = (it,src) => it.replaceKey(src,'').replaceKey(it => it.substring(0,1).toLowerCase() + it.substring(1));
-// list转tree
-var toTree = (list,parentId)=>list.filter(it => it.parentId == parentId).each(it => it.children = toTree(list,it.id))
-// 查询分组列表
-var groupList = ds.select(groupSql).map(it => replaceKey(it,"group"));
-// 将接口分组转为tree
-var apiTree = toTree(groupList.filter(it => it.type == '1'),'0');
-// 将函数分组转为tree
-var functionTree = toTree(groupList.filter(it => it.type == '2'),'0');
-// 记录分组所在路径
-var groups = {};
-// 处理分组
-var processGroup = (parent,list)=>{
- if(!parent.exists()){
- parent.mkdir();
- }
- list.each(it => {
- var resource = parent.getResource(it.name);
- resource.mkdir();
- groups[it.id] = resource;
- // 防止序列化children
- var children = it.remove('children');
- resource.getResource('group.json').write(JsonUtils.toJsonString(it))
- if(children){
- processGroup(resource,children);
- }
- });
-}
-// 处理接口分组
-processGroup(root.getResource("api"),apiTree);
-// 处理函数分组
-processGroup(root.getResource("function"),functionTree);
-// 处理接口
-ds.select(apiSql).map(it => replaceKey(it,'api')).each(it => groups[it.groupId].getResource(it.name + '.ms').write(ApiServiceProvider.serialize(it)));
-// 处理函数
-ds.select(functionSql).map(it => replaceKey(it,'function')).each(it => groups[it.groupId].getResource(it.name + '.ms').write(FunctionServiceProvider.serialize(it)));
-return 'ok';
\ No newline at end of file
diff --git a/magic-api-spring-boot-starter/pom.xml b/magic-api-spring-boot-starter/pom.xml
index 1c0c41e5..cbf8f82e 100644
--- a/magic-api-spring-boot-starter/pom.xml
+++ b/magic-api-spring-boot-starter/pom.xml
@@ -75,5 +75,57 @@
spring-boot-configuration-processor
true
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
+
+ org.ssssssss
+ magic-api
+
diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java
index 5b9e2bad..69762be5 100644
--- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java
+++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIAutoConfiguration.java
@@ -36,29 +36,57 @@ import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistration;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
-import org.ssssssss.magicapi.adapter.ColumnMapperAdapter;
-import org.ssssssss.magicapi.adapter.DialectAdapter;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.adapter.ResourceAdapter;
-import org.ssssssss.magicapi.adapter.resource.DatabaseResource;
-import org.ssssssss.magicapi.cache.DefaultSqlCache;
-import org.ssssssss.magicapi.cache.SqlCache;
-import org.ssssssss.magicapi.config.*;
-import org.ssssssss.magicapi.controller.*;
-import org.ssssssss.magicapi.dialect.Dialect;
-import org.ssssssss.magicapi.exception.MagicAPIException;
-import org.ssssssss.magicapi.interceptor.*;
-import org.ssssssss.magicapi.logging.LoggerManager;
-import org.ssssssss.magicapi.model.Constants;
-import org.ssssssss.magicapi.model.DataType;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.model.Options;
-import org.ssssssss.magicapi.modules.*;
-import org.ssssssss.magicapi.provider.*;
-import org.ssssssss.magicapi.provider.impl.*;
-import org.ssssssss.magicapi.service.MagicDynamicRegistry;
-import org.ssssssss.magicapi.service.MagicResourceService;
-import org.ssssssss.magicapi.service.impl.*;
+import org.ssssssss.magicapi.backup.service.MagicBackupService;
+import org.ssssssss.magicapi.backup.service.MagicDatabaseBackupService;
+import org.ssssssss.magicapi.backup.web.MagicBackupController;
+import org.ssssssss.magicapi.core.handler.MagicCoordinationHandler;
+import org.ssssssss.magicapi.core.handler.MagicDebugHandler;
+import org.ssssssss.magicapi.core.handler.MagicWebSocketDispatcher;
+import org.ssssssss.magicapi.core.handler.MagicWorkbenchHandler;
+import org.ssssssss.magicapi.core.interceptor.*;
+import org.ssssssss.magicapi.core.service.*;
+import org.ssssssss.magicapi.core.web.MagicResourceController;
+import org.ssssssss.magicapi.core.web.MagicWorkbenchController;
+import org.ssssssss.magicapi.core.web.RequestHandler;
+import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource;
+import org.ssssssss.magicapi.datasource.service.DataSourceEncryptProvider;
+import org.ssssssss.magicapi.datasource.service.DataSourceInfoMagicResourceStorage;
+import org.ssssssss.magicapi.datasource.service.DataSourceMagicDynamicRegistry;
+import org.ssssssss.magicapi.datasource.web.MagicDataSourceController;
+import org.ssssssss.magicapi.jsr223.JSR223LanguageProvider;
+import org.ssssssss.magicapi.jsr223.LanguageProvider;
+import org.ssssssss.magicapi.modules.db.ColumnMapperAdapter;
+import org.ssssssss.magicapi.modules.db.dialect.DialectAdapter;
+import org.ssssssss.magicapi.core.resource.Resource;
+import org.ssssssss.magicapi.core.resource.ResourceAdapter;
+import org.ssssssss.magicapi.core.resource.DatabaseResource;
+import org.ssssssss.magicapi.function.service.FunctionInfoMagicResourceStorage;
+import org.ssssssss.magicapi.function.service.FunctionMagicDynamicRegistry;
+import org.ssssssss.magicapi.modules.db.inteceptor.DefaultSqlInterceptor;
+import org.ssssssss.magicapi.modules.db.inteceptor.NamedTableInterceptor;
+import org.ssssssss.magicapi.modules.db.inteceptor.SQLInterceptor;
+import org.ssssssss.magicapi.modules.db.SQLModule;
+import org.ssssssss.magicapi.modules.db.cache.DefaultSqlCache;
+import org.ssssssss.magicapi.modules.db.cache.SqlCache;
+import org.ssssssss.magicapi.core.config.*;
+import org.ssssssss.magicapi.modules.db.dialect.Dialect;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.logging.LoggerManager;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.model.DataType;
+import org.ssssssss.magicapi.core.model.MagicEntity;
+import org.ssssssss.magicapi.core.model.Options;
+import org.ssssssss.magicapi.modules.db.provider.ColumnMapperProvider;
+import org.ssssssss.magicapi.modules.db.provider.DefaultPageProvider;
+import org.ssssssss.magicapi.modules.db.provider.PageProvider;
+import org.ssssssss.magicapi.modules.http.HttpModule;
+import org.ssssssss.magicapi.modules.servlet.RequestModule;
+import org.ssssssss.magicapi.modules.servlet.ResponseModule;
+import org.ssssssss.magicapi.modules.spring.EnvModule;
+import org.ssssssss.magicapi.core.service.impl.*;
+import org.ssssssss.magicapi.task.service.TaskInfoMagicResourceStorage;
+import org.ssssssss.magicapi.task.service.TaskMagicDynamicRegistry;
+import org.ssssssss.magicapi.task.web.MagicTaskController;
import org.ssssssss.magicapi.utils.ClassScanner;
import org.ssssssss.magicapi.utils.Mapping;
import org.ssssssss.script.MagicResourceLoader;
diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIProperties.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIProperties.java
index 27505957..4e971e34 100644
--- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIProperties.java
+++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicAPIProperties.java
@@ -3,7 +3,7 @@ package org.ssssssss.magicapi.spring.boot.starter;
import org.apache.commons.lang3.StringUtils;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
-import org.ssssssss.magicapi.controller.RequestHandler;
+import org.ssssssss.magicapi.core.web.RequestHandler;
import java.util.Arrays;
import java.util.Collections;
diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicElasticSearchAutoConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicElasticSearchAutoConfiguration.java
index 9fbe8f2b..c2374a96 100644
--- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicElasticSearchAutoConfiguration.java
+++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicElasticSearchAutoConfiguration.java
@@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.ssssssss.magicapi.modules.ElasticSearchModule;
+import org.ssssssss.magicapi.modules.elasticsearch.ElasticSearchModule;
@Configuration
@ConditionalOnMissingBean(ElasticSearchModule.class)
diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicMongoAutoConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicMongoAutoConfiguration.java
index a2316cb7..e63a4687 100644
--- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicMongoAutoConfiguration.java
+++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicMongoAutoConfiguration.java
@@ -7,9 +7,9 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.core.MongoTemplate;
-import org.ssssssss.magicapi.modules.MongoCollectionExtension;
-import org.ssssssss.magicapi.modules.MongoFindIterableExtension;
-import org.ssssssss.magicapi.modules.MongoModule;
+import org.ssssssss.magicapi.modules.mongo.MongoCollectionExtension;
+import org.ssssssss.magicapi.modules.mongo.MongoFindIterableExtension;
+import org.ssssssss.magicapi.modules.mongo.MongoModule;
import org.ssssssss.script.reflection.JavaReflection;
/**
diff --git a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicRedisAutoConfiguration.java b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicRedisAutoConfiguration.java
index ea7d4fab..ec321500 100644
--- a/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicRedisAutoConfiguration.java
+++ b/magic-api-spring-boot-starter/src/main/java/org/ssssssss/magicapi/spring/boot/starter/MagicRedisAutoConfiguration.java
@@ -13,13 +13,13 @@ import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.listener.ChannelTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.adapter.resource.RedisResource;
-import org.ssssssss.magicapi.model.MagicNotify;
-import org.ssssssss.magicapi.modules.RedisModule;
-import org.ssssssss.magicapi.provider.MagicAPIService;
-import org.ssssssss.magicapi.provider.MagicNotifyService;
-import org.ssssssss.magicapi.service.MagicSynchronizationService;
+import org.ssssssss.magicapi.core.resource.Resource;
+import org.ssssssss.magicapi.core.resource.RedisResource;
+import org.ssssssss.magicapi.core.model.MagicNotify;
+import org.ssssssss.magicapi.modules.redis.RedisModule;
+import org.ssssssss.magicapi.core.service.MagicAPIService;
+import org.ssssssss.magicapi.core.service.MagicNotifyService;
+import org.ssssssss.magicapi.core.service.MagicSynchronizationService;
import org.ssssssss.magicapi.utils.JsonUtils;
import java.util.Objects;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Backup.java b/magic-api/src/main/java/org/ssssssss/magicapi/backup/model/Backup.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Backup.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/backup/model/Backup.java
index d33cd280..63bb9a68 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Backup.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/backup/model/Backup.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.backup.model;
/**
* 备份记录
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicBackupService.java b/magic-api/src/main/java/org/ssssssss/magicapi/backup/service/MagicBackupService.java
similarity index 92%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicBackupService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/backup/service/MagicBackupService.java
index 2aca6ee2..8ee3af25 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicBackupService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/backup/service/MagicBackupService.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.backup.service;
-import org.ssssssss.magicapi.model.Backup;
+import org.ssssssss.magicapi.backup.model.Backup;
import java.io.IOException;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/MagicDatabaseBackupService.java b/magic-api/src/main/java/org/ssssssss/magicapi/backup/service/MagicDatabaseBackupService.java
similarity index 89%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/MagicDatabaseBackupService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/backup/service/MagicDatabaseBackupService.java
index 48e4dfe0..824ad464 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/MagicDatabaseBackupService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/backup/service/MagicDatabaseBackupService.java
@@ -1,25 +1,22 @@
-package org.ssssssss.magicapi.provider.impl;
+package org.ssssssss.magicapi.backup.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.event.EventListener;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.event.GroupEvent;
-import org.ssssssss.magicapi.model.Backup;
-import org.ssssssss.magicapi.model.Group;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.provider.MagicBackupService;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.event.FileEvent;
+import org.ssssssss.magicapi.core.event.GroupEvent;
+import org.ssssssss.magicapi.backup.model.Backup;
+import org.ssssssss.magicapi.core.model.Group;
+import org.ssssssss.magicapi.core.model.MagicEntity;
import org.ssssssss.magicapi.utils.JsonUtils;
import org.ssssssss.magicapi.utils.WebUtils;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
/**
* 数据库备份实现
@@ -125,7 +122,7 @@ public class MagicDatabaseBackupService implements MagicBackupService {
}
}
- @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.model.Constants).EVENT_SOURCE_NOTIFY")
+ @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.core.config.Constants).EVENT_SOURCE_NOTIFY")
public void onFileEvent(FileEvent event) {
switch (event.getAction()) {
case SAVE:
@@ -139,7 +136,7 @@ public class MagicDatabaseBackupService implements MagicBackupService {
doBackup(entity.getId(), JsonUtils.toJsonBytes(entity), entity.getName(), event.getType());
}
- @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.model.Constants).EVENT_SOURCE_NOTIFY")
+ @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.core.config.Constants).EVENT_SOURCE_NOTIFY")
public void onFolderEvent(GroupEvent event) {
switch (event.getAction()) {
case SAVE:
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicBackupController.java b/magic-api/src/main/java/org/ssssssss/magicapi/backup/web/MagicBackupController.java
similarity index 84%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicBackupController.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/backup/web/MagicBackupController.java
index 4a0b8696..dad9e23e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicBackupController.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/backup/web/MagicBackupController.java
@@ -1,12 +1,16 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.backup.web;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.model.*;
-import org.ssssssss.magicapi.provider.MagicBackupService;
-import org.ssssssss.magicapi.service.MagicDynamicRegistry;
+import org.ssssssss.magicapi.backup.model.Backup;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.web.MagicController;
+import org.ssssssss.magicapi.core.web.MagicExceptionHandler;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.model.*;
+import org.ssssssss.magicapi.backup.service.MagicBackupService;
+import org.ssssssss.magicapi.core.service.MagicDynamicRegistry;
import org.ssssssss.magicapi.utils.JsonUtils;
import org.ssssssss.magicapi.utils.WebUtils;
@@ -15,7 +19,7 @@ import java.io.IOException;
import java.util.Collections;
import java.util.List;
-public class MagicBackupController extends MagicController implements MagicExceptionHandler{
+public class MagicBackupController extends MagicController implements MagicExceptionHandler {
private final MagicBackupService service;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Constants.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Constants.java
similarity index 99%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Constants.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/Constants.java
index b19a1c96..9a95cc9a 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Constants.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Constants.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.config;
import java.util.Arrays;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonCodeConstants.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/JsonCodeConstants.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/JsonCodeConstants.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/JsonCodeConstants.java
index 5920815b..17ea8366 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonCodeConstants.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/JsonCodeConstants.java
@@ -1,7 +1,8 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.config;
import org.apache.commons.lang3.StringUtils;
-import org.ssssssss.magicapi.exception.InvalidArgumentException;
+import org.ssssssss.magicapi.core.exception.InvalidArgumentException;
+import org.ssssssss.magicapi.core.model.JsonCode;
public interface JsonCodeConstants {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicConfiguration.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicConfiguration.java
similarity index 86%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/MagicConfiguration.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicConfiguration.java
index d107a036..35932d52 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicConfiguration.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicConfiguration.java
@@ -1,17 +1,18 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
import org.springframework.http.converter.HttpMessageConverter;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.controller.RequestHandler;
-import org.ssssssss.magicapi.interceptor.AuthorizationInterceptor;
-import org.ssssssss.magicapi.interceptor.RequestInterceptor;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.provider.MagicAPIService;
-import org.ssssssss.magicapi.provider.MagicBackupService;
-import org.ssssssss.magicapi.provider.MagicNotifyService;
-import org.ssssssss.magicapi.provider.ResultProvider;
-import org.ssssssss.magicapi.service.MagicDynamicRegistry;
-import org.ssssssss.magicapi.service.MagicResourceService;
+import org.ssssssss.magicapi.core.resource.Resource;
+import org.ssssssss.magicapi.core.web.RequestHandler;
+import org.ssssssss.magicapi.core.model.MagicEntity;
+import org.ssssssss.magicapi.core.service.MagicDynamicRegistry;
+import org.ssssssss.magicapi.core.service.MagicResourceService;
+import org.ssssssss.magicapi.core.interceptor.AuthorizationInterceptor;
+import org.ssssssss.magicapi.core.interceptor.RequestInterceptor;
+import org.ssssssss.magicapi.core.service.MagicAPIService;
+import org.ssssssss.magicapi.backup.service.MagicBackupService;
+import org.ssssssss.magicapi.core.service.MagicNotifyService;
+import org.ssssssss.magicapi.core.interceptor.ResultProvider;
+import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource;
import java.util.ArrayList;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicCorsFilter.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicCorsFilter.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/MagicCorsFilter.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicCorsFilter.java
index 04c81212..911cb687 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicCorsFilter.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicCorsFilter.java
@@ -1,8 +1,7 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpHeaders;
-import org.ssssssss.magicapi.model.Constants;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicFunction.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicFunction.java
similarity index 75%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/MagicFunction.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicFunction.java
index 251aac54..7628e194 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicFunction.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicFunction.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
/**
* 函数,主要用于脚本中直接可使用的函数,如 now();
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicModule.java
similarity index 88%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/MagicModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicModule.java
index 06dc268d..d39094ee 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MagicModule.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
import org.ssssssss.script.annotation.UnableCall;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/Message.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Message.java
similarity index 85%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/Message.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/Message.java
index eb6d6ab1..7bd737ab 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/Message.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Message.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
import java.lang.annotation.*;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/MessageType.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MessageType.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/MessageType.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/MessageType.java
index 7745a6d5..4cfd75a7 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/MessageType.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/MessageType.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
/**
* 消息类型
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/Valid.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Valid.java
similarity index 80%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/Valid.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/Valid.java
index b4749b80..a6e10e45 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/Valid.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/Valid.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
-import org.ssssssss.magicapi.interceptor.Authorization;
+import org.ssssssss.magicapi.core.interceptor.Authorization;
import java.lang.annotation.*;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/WebSocketSessionManager.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/WebSocketSessionManager.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/WebSocketSessionManager.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/config/WebSocketSessionManager.java
index 2f41a276..f008c51f 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/WebSocketSessionManager.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/config/WebSocketSessionManager.java
@@ -1,13 +1,13 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.socket.TextMessage;
-import org.ssssssss.magicapi.event.EventAction;
-import org.ssssssss.magicapi.model.MagicConsoleSession;
-import org.ssssssss.magicapi.model.MagicNotify;
-import org.ssssssss.magicapi.model.Pair;
-import org.ssssssss.magicapi.provider.MagicNotifyService;
+import org.ssssssss.magicapi.core.event.EventAction;
+import org.ssssssss.magicapi.core.context.MagicConsoleSession;
+import org.ssssssss.magicapi.core.model.MagicNotify;
+import org.ssssssss.magicapi.core.model.Pair;
+import org.ssssssss.magicapi.core.service.MagicNotifyService;
import org.ssssssss.magicapi.utils.JsonUtils;
import org.ssssssss.script.MagicScriptDebugContext;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/context/CookieContext.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/CookieContext.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/context/CookieContext.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/context/CookieContext.java
index 5d888d4b..68e1faf2 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/context/CookieContext.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/CookieContext.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.context;
+package org.ssssssss.magicapi.core.context;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/MagicConsoleSession.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/MagicConsoleSession.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/MagicConsoleSession.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/context/MagicConsoleSession.java
index 32dd7e33..067173e5 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/MagicConsoleSession.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/MagicConsoleSession.java
@@ -1,7 +1,8 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.context;
import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.WebSocketSession;
+import org.ssssssss.magicapi.core.config.Constants;
import java.util.HashMap;
import java.util.Map;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/MagicUser.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/MagicUser.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/MagicUser.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/context/MagicUser.java
index f4475ae4..bf1d91f0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/MagicUser.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/MagicUser.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.core.context;
/**
* magic 用户对象
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/context/RequestContext.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/RequestContext.java
similarity index 91%
rename from magic-api/src/main/java/org/ssssssss/magicapi/context/RequestContext.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/context/RequestContext.java
index 1bac3fd3..2b5dcbea 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/context/RequestContext.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/RequestContext.java
@@ -1,6 +1,4 @@
-package org.ssssssss.magicapi.context;
-
-import org.ssssssss.magicapi.model.RequestEntity;
+package org.ssssssss.magicapi.core.context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/RequestEntity.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/RequestEntity.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/RequestEntity.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/context/RequestEntity.java
index bd11c831..3991ccc0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/RequestEntity.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/RequestEntity.java
@@ -1,5 +1,7 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.context;
+import org.ssssssss.magicapi.core.model.ApiInfo;
+import org.ssssssss.magicapi.core.model.DebugRequest;
import org.ssssssss.script.MagicScriptContext;
import javax.servlet.http.HttpServletRequest;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/context/SessionContext.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/SessionContext.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/context/SessionContext.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/context/SessionContext.java
index c202878c..ad1cfdd3 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/context/SessionContext.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/context/SessionContext.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.context;
+package org.ssssssss.magicapi.core.context;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/event/EventAction.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/EventAction.java
similarity index 71%
rename from magic-api/src/main/java/org/ssssssss/magicapi/event/EventAction.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/event/EventAction.java
index 46ba7461..61e663d0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/event/EventAction.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/EventAction.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.event;
+package org.ssssssss.magicapi.core.event;
public enum EventAction {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/event/FileEvent.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/FileEvent.java
similarity index 81%
rename from magic-api/src/main/java/org/ssssssss/magicapi/event/FileEvent.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/event/FileEvent.java
index 21096a7e..b451ad87 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/event/FileEvent.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/FileEvent.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.event;
+package org.ssssssss.magicapi.core.event;
-import org.ssssssss.magicapi.model.MagicEntity;
+import org.ssssssss.magicapi.core.model.MagicEntity;
public class FileEvent extends MagicEvent {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/event/GroupEvent.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/GroupEvent.java
similarity index 83%
rename from magic-api/src/main/java/org/ssssssss/magicapi/event/GroupEvent.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/event/GroupEvent.java
index 390044d8..7eb344eb 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/event/GroupEvent.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/GroupEvent.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.event;
+package org.ssssssss.magicapi.core.event;
-import org.ssssssss.magicapi.model.Group;
-import org.ssssssss.magicapi.model.MagicEntity;
+import org.ssssssss.magicapi.core.model.Group;
+import org.ssssssss.magicapi.core.model.MagicEntity;
import java.util.Collections;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/event/MagicEvent.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/MagicEvent.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/event/MagicEvent.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/event/MagicEvent.java
index 6da5ee3c..074cd699 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/event/MagicEvent.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/MagicEvent.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.event;
+package org.ssssssss.magicapi.core.event;
public class MagicEvent {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/event/NotifyEvent.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/NotifyEvent.java
similarity index 64%
rename from magic-api/src/main/java/org/ssssssss/magicapi/event/NotifyEvent.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/event/NotifyEvent.java
index 41f8024f..b3dd1510 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/event/NotifyEvent.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/event/NotifyEvent.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.event;
+package org.ssssssss.magicapi.core.event;
-import org.ssssssss.magicapi.model.Constants;
-import org.ssssssss.magicapi.model.MagicNotify;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.model.MagicNotify;
public class NotifyEvent extends MagicEvent {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/exception/InvalidArgumentException.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/InvalidArgumentException.java
similarity index 77%
rename from magic-api/src/main/java/org/ssssssss/magicapi/exception/InvalidArgumentException.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/exception/InvalidArgumentException.java
index 8081cf01..b07ccb60 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/exception/InvalidArgumentException.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/InvalidArgumentException.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.exception;
+package org.ssssssss.magicapi.core.exception;
-import org.ssssssss.magicapi.model.JsonCode;
+import org.ssssssss.magicapi.core.model.JsonCode;
/**
* 参数错误异常
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicAPIException.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicAPIException.java
similarity index 85%
rename from magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicAPIException.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicAPIException.java
index 05582f59..6deedb88 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicAPIException.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicAPIException.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.exception;
+package org.ssssssss.magicapi.core.exception;
/**
* magic-api异常对象
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicLoginException.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicLoginException.java
similarity index 78%
rename from magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicLoginException.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicLoginException.java
index 21eabc72..8abe623f 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicLoginException.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicLoginException.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.exception;
+package org.ssssssss.magicapi.core.exception;
/**
* 登录异常对象
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicResourceNotFoundException.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicResourceNotFoundException.java
similarity index 81%
rename from magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicResourceNotFoundException.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicResourceNotFoundException.java
index c9f1b120..d8ba6bfd 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/exception/MagicResourceNotFoundException.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/MagicResourceNotFoundException.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.exception;
+package org.ssssssss.magicapi.core.exception;
/**
* 资源未找到
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/exception/ValidateException.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/ValidateException.java
similarity index 76%
rename from magic-api/src/main/java/org/ssssssss/magicapi/exception/ValidateException.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/exception/ValidateException.java
index 7f0cab3d..e2b9137b 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/exception/ValidateException.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/exception/ValidateException.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.exception;
+package org.ssssssss.magicapi.core.exception;
-import org.ssssssss.magicapi.model.JsonCode;
+import org.ssssssss.magicapi.core.model.JsonCode;
/**
* 接口验证异常
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicCoordinationHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicCoordinationHandler.java
similarity index 53%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicCoordinationHandler.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicCoordinationHandler.java
index 4531fdf0..45659610 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicCoordinationHandler.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicCoordinationHandler.java
@@ -1,10 +1,10 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.handler;
-import org.ssssssss.magicapi.config.Message;
-import org.ssssssss.magicapi.config.MessageType;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
-import org.ssssssss.magicapi.model.Constants;
-import org.ssssssss.magicapi.model.MagicConsoleSession;
+import org.ssssssss.magicapi.core.config.Message;
+import org.ssssssss.magicapi.core.config.MessageType;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.context.MagicConsoleSession;
public class MagicCoordinationHandler {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicDebugHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicDebugHandler.java
similarity index 85%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicDebugHandler.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicDebugHandler.java
index dd3bb3a8..63796109 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicDebugHandler.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicDebugHandler.java
@@ -1,10 +1,10 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.handler;
import org.apache.commons.lang3.StringUtils;
-import org.ssssssss.magicapi.config.Message;
-import org.ssssssss.magicapi.config.MessageType;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
-import org.ssssssss.magicapi.model.MagicConsoleSession;
+import org.ssssssss.magicapi.core.config.Message;
+import org.ssssssss.magicapi.core.config.MessageType;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
+import org.ssssssss.magicapi.core.context.MagicConsoleSession;
import org.ssssssss.script.MagicScriptDebugContext;
import java.util.Collections;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWebSocketDispatcher.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWebSocketDispatcher.java
similarity index 88%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWebSocketDispatcher.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWebSocketDispatcher.java
index 68d2ddc1..0c35b130 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWebSocketDispatcher.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWebSocketDispatcher.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.handler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -6,24 +6,22 @@ import org.springframework.web.socket.CloseStatus;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
import org.springframework.web.socket.handler.TextWebSocketHandler;
-import org.ssssssss.magicapi.config.Message;
-import org.ssssssss.magicapi.config.MessageType;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
-import org.ssssssss.magicapi.event.EventAction;
-import org.ssssssss.magicapi.interceptor.MagicUser;
-import org.ssssssss.magicapi.model.MagicConsoleSession;
-import org.ssssssss.magicapi.model.MagicNotify;
-import org.ssssssss.magicapi.provider.MagicNotifyService;
+import org.ssssssss.magicapi.core.config.Message;
+import org.ssssssss.magicapi.core.config.MessageType;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
+import org.ssssssss.magicapi.core.event.EventAction;
+import org.ssssssss.magicapi.core.context.MagicConsoleSession;
+import org.ssssssss.magicapi.core.model.MagicNotify;
+import org.ssssssss.magicapi.core.service.MagicNotifyService;
import org.ssssssss.magicapi.utils.JsonUtils;
import org.ssssssss.script.reflection.MethodInvoker;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Stream;
-import static org.ssssssss.magicapi.model.Constants.EMPTY_OBJECT_ARRAY;
+import static org.ssssssss.magicapi.core.config.Constants.EMPTY_OBJECT_ARRAY;
/**
* WebSocket 分发器
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWorkbenchHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWorkbenchHandler.java
similarity index 85%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWorkbenchHandler.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWorkbenchHandler.java
index 401b81de..0ee86e2e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWorkbenchHandler.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/handler/MagicWorkbenchHandler.java
@@ -1,13 +1,13 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.handler;
-import org.ssssssss.magicapi.config.Message;
-import org.ssssssss.magicapi.config.MessageType;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
-import org.ssssssss.magicapi.exception.MagicLoginException;
-import org.ssssssss.magicapi.interceptor.AuthorizationInterceptor;
-import org.ssssssss.magicapi.interceptor.MagicUser;
-import org.ssssssss.magicapi.model.Constants;
-import org.ssssssss.magicapi.model.MagicConsoleSession;
+import org.ssssssss.magicapi.core.config.Message;
+import org.ssssssss.magicapi.core.config.MessageType;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
+import org.ssssssss.magicapi.core.exception.MagicLoginException;
+import org.ssssssss.magicapi.core.interceptor.AuthorizationInterceptor;
+import org.ssssssss.magicapi.core.context.MagicUser;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.context.MagicConsoleSession;
import java.util.List;
import java.util.Map;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/Authorization.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/Authorization.java
similarity index 90%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/Authorization.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/Authorization.java
index 05e43287..4d2c84a5 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/Authorization.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/Authorization.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.core.interceptor;
/**
* 鉴权类型枚举
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/AuthorizationInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/AuthorizationInterceptor.java
similarity index 89%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/AuthorizationInterceptor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/AuthorizationInterceptor.java
index 4c767496..a79797c1 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/AuthorizationInterceptor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/AuthorizationInterceptor.java
@@ -1,8 +1,9 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.core.interceptor;
-import org.ssssssss.magicapi.exception.MagicLoginException;
-import org.ssssssss.magicapi.model.Group;
-import org.ssssssss.magicapi.model.MagicEntity;
+import org.ssssssss.magicapi.core.context.MagicUser;
+import org.ssssssss.magicapi.core.exception.MagicLoginException;
+import org.ssssssss.magicapi.core.model.Group;
+import org.ssssssss.magicapi.core.model.MagicEntity;
import javax.servlet.http.HttpServletRequest;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/DefaultAuthorizationInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/DefaultAuthorizationInterceptor.java
similarity index 88%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/DefaultAuthorizationInterceptor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/DefaultAuthorizationInterceptor.java
index 4fef7278..69bc4b2c 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/DefaultAuthorizationInterceptor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/DefaultAuthorizationInterceptor.java
@@ -1,6 +1,7 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.core.interceptor;
-import org.ssssssss.magicapi.exception.MagicLoginException;
+import org.ssssssss.magicapi.core.context.MagicUser;
+import org.ssssssss.magicapi.core.exception.MagicLoginException;
import org.ssssssss.magicapi.utils.MD5Utils;
import java.util.Objects;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultResultProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/DefaultResultProvider.java
similarity index 83%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultResultProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/DefaultResultProvider.java
index 6dcace11..ca88327e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultResultProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/DefaultResultProvider.java
@@ -1,9 +1,8 @@
-package org.ssssssss.magicapi.provider.impl;
+package org.ssssssss.magicapi.core.interceptor;
-import org.ssssssss.magicapi.model.JsonBean;
-import org.ssssssss.magicapi.model.RequestEntity;
-import org.ssssssss.magicapi.provider.ResultProvider;
-import org.ssssssss.magicapi.script.ScriptManager;
+import org.ssssssss.magicapi.core.model.JsonBean;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.utils.ScriptManager;
import org.ssssssss.script.MagicScriptContext;
/**
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicWebRequestInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/MagicWebRequestInterceptor.java
similarity index 80%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/MagicWebRequestInterceptor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/MagicWebRequestInterceptor.java
index e3092f31..c779c2c3 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicWebRequestInterceptor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/MagicWebRequestInterceptor.java
@@ -1,11 +1,13 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.core.interceptor;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
-import org.ssssssss.magicapi.controller.MagicController;
-import org.ssssssss.magicapi.exception.MagicLoginException;
-import org.ssssssss.magicapi.interceptor.AuthorizationInterceptor;
-import org.ssssssss.magicapi.model.Constants;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.config.MagicCorsFilter;
+import org.ssssssss.magicapi.core.config.Valid;
+import org.ssssssss.magicapi.core.web.MagicController;
+import org.ssssssss.magicapi.core.exception.MagicLoginException;
+import org.ssssssss.magicapi.core.interceptor.AuthorizationInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/RequestInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/RequestInterceptor.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/RequestInterceptor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/RequestInterceptor.java
index e1ed2dcc..e3fbe89e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/RequestInterceptor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/RequestInterceptor.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.core.interceptor;
-import org.ssssssss.magicapi.model.ApiInfo;
-import org.ssssssss.magicapi.model.RequestEntity;
+import org.ssssssss.magicapi.core.model.ApiInfo;
+import org.ssssssss.magicapi.core.context.RequestEntity;
import org.ssssssss.script.MagicScriptContext;
import javax.servlet.http.HttpServletRequest;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/ResultProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/ResultProvider.java
similarity index 92%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/ResultProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/ResultProvider.java
index 095fbc57..905d4fef 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/ResultProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/interceptor/ResultProvider.java
@@ -1,10 +1,10 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.core.interceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.ssssssss.magicapi.model.Page;
-import org.ssssssss.magicapi.model.PageResult;
-import org.ssssssss.magicapi.model.RequestEntity;
+import org.ssssssss.magicapi.modules.db.model.Page;
+import org.ssssssss.magicapi.modules.db.model.PageResult;
+import org.ssssssss.magicapi.core.context.RequestEntity;
import org.ssssssss.script.exception.MagicScriptAssertException;
import org.ssssssss.script.exception.MagicScriptException;
import org.ssssssss.script.functions.ObjectConvertExtension;
@@ -14,7 +14,7 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
-import static org.ssssssss.magicapi.model.Constants.*;
+import static org.ssssssss.magicapi.core.config.Constants.*;
/**
* 结果构建接口
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/logging/Formatter.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Formatter.java
similarity index 99%
rename from magic-api/src/main/java/org/ssssssss/magicapi/logging/Formatter.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Formatter.java
index 1661f4e4..e98edd7b 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/logging/Formatter.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Formatter.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.logging;
+package org.ssssssss.magicapi.core.logging;
import ch.qos.logback.classic.ClassicConstants;
import ch.qos.logback.core.CoreConstants;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/logging/Log4j2LoggerContext.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Log4j2LoggerContext.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/logging/Log4j2LoggerContext.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Log4j2LoggerContext.java
index a894899d..aacd1e65 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/logging/Log4j2LoggerContext.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Log4j2LoggerContext.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.logging;
+package org.ssssssss.magicapi.core.logging;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.Filter;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/logging/Log4jLoggerContext.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Log4jLoggerContext.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/logging/Log4jLoggerContext.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Log4jLoggerContext.java
index 94202fbe..645f968d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/logging/Log4jLoggerContext.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/Log4jLoggerContext.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.logging;
+package org.ssssssss.magicapi.core.logging;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.LogManager;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/logging/LogbackLoggerContext.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/LogbackLoggerContext.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/logging/LogbackLoggerContext.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/logging/LogbackLoggerContext.java
index 15a7bd6c..f55b1dcb 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/logging/LogbackLoggerContext.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/LogbackLoggerContext.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.logging;
+package org.ssssssss.magicapi.core.logging;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.spi.ILoggingEvent;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/logging/LoggerManager.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/LoggerManager.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/logging/LoggerManager.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/logging/LoggerManager.java
index 03035ade..503a4e79 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/logging/LoggerManager.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/LoggerManager.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.logging;
+package org.ssssssss.magicapi.core.logging;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/logging/MagicLoggerContext.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/MagicLoggerContext.java
similarity index 76%
rename from magic-api/src/main/java/org/ssssssss/magicapi/logging/MagicLoggerContext.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/logging/MagicLoggerContext.java
index 1f9151ce..bfbffc23 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/logging/MagicLoggerContext.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/logging/MagicLoggerContext.java
@@ -1,9 +1,6 @@
-package org.ssssssss.magicapi.logging;
+package org.ssssssss.magicapi.core.logging;
-import org.ssssssss.magicapi.config.MessageType;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
-
-import java.util.Collections;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
/**
* 日志上下文
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/ApiInfo.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/ApiInfo.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/ApiInfo.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/ApiInfo.java
index a5a6231c..881db8b1 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/ApiInfo.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/ApiInfo.java
@@ -1,8 +1,7 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.JsonNode;
-import org.ssssssss.magicapi.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
import org.ssssssss.magicapi.utils.JsonUtils;
import java.util.*;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Attributes.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Attributes.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Attributes.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Attributes.java
index 89960d30..aaca94ad 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Attributes.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Attributes.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import org.ssssssss.script.annotation.UnableCall;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/BaseDefinition.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/BaseDefinition.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/BaseDefinition.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/BaseDefinition.java
index abd1e666..d04cf9be 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/BaseDefinition.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/BaseDefinition.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import java.util.ArrayList;
import java.util.Objects;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/DataType.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/DataType.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/DataType.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/DataType.java
index 4c78339a..abbdde30 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/DataType.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/DataType.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import org.apache.commons.lang3.time.DateUtils;
-import org.ssssssss.magicapi.modules.RequestModule;
+import org.ssssssss.magicapi.modules.servlet.RequestModule;
import org.ssssssss.script.reflection.JavaInvoker;
import java.lang.reflect.Method;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/DebugRequest.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/DebugRequest.java
similarity index 89%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/DebugRequest.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/DebugRequest.java
index 3fd5232d..a9d8e583 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/DebugRequest.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/DebugRequest.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
import org.ssssssss.magicapi.utils.JsonUtils;
import org.ssssssss.script.MagicScriptDebugContext;
import org.ssssssss.script.functions.ObjectConvertExtension;
@@ -12,8 +12,8 @@ import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-import static org.ssssssss.magicapi.config.MessageType.BREAKPOINT;
-import static org.ssssssss.magicapi.model.Constants.*;
+import static org.ssssssss.magicapi.core.config.MessageType.BREAKPOINT;
+import static org.ssssssss.magicapi.core.config.Constants.*;
public class DebugRequest {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Group.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Group.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Group.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Group.java
index 88dec829..d3b962da 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Group.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Group.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import java.util.Collections;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Header.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Header.java
similarity index 81%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Header.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Header.java
index e39c7906..887e19c4 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Header.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Header.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* Header参数信息
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonBean.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonBean.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/JsonBean.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonBean.java
index e438d735..cd75193d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonBean.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonBean.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* 统一返回值对象
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonBodyBean.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonBodyBean.java
similarity index 91%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/JsonBodyBean.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonBodyBean.java
index 46db0d96..00912449 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonBodyBean.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonBodyBean.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* 统一返回值对象带body
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonCode.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonCode.java
similarity index 92%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/JsonCode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonCode.java
index 9047f0ae..80bd6d9f 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/JsonCode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/JsonCode.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* Json状态码信息
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/MagicEntity.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/MagicEntity.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/MagicEntity.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/MagicEntity.java
index 9b8c643b..0b4f8239 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/MagicEntity.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/MagicEntity.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import java.util.Objects;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/MagicNotify.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/MagicNotify.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/MagicNotify.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/MagicNotify.java
index d7a50207..73b45460 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/MagicNotify.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/MagicNotify.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
-import org.ssssssss.magicapi.event.EventAction;
+import org.ssssssss.magicapi.core.event.EventAction;
/**
* 消息通知对象
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Option.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Option.java
similarity index 86%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Option.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Option.java
index d03f0702..7777a288 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Option.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Option.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
public class Option extends BaseDefinition {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Options.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Options.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Options.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Options.java
index 58caa0be..fbd4959c 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Options.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Options.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* 接口选项信息
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Pair.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Pair.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Pair.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Pair.java
index 3f86b0ea..700321b0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Pair.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Pair.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import java.util.Objects;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Parameter.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Parameter.java
similarity index 82%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Parameter.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Parameter.java
index 176964eb..0e333b91 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Parameter.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Parameter.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* 参数信息
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Path.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Path.java
similarity index 85%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Path.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/Path.java
index 7795ac59..4afe313f 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Path.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/Path.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* 路径变量信息
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/PathMagicEntity.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/PathMagicEntity.java
similarity index 90%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/PathMagicEntity.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/PathMagicEntity.java
index 0dca2c6d..b97c1596 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/PathMagicEntity.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/PathMagicEntity.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
public class PathMagicEntity extends MagicEntity {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/SelectedResource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/SelectedResource.java
similarity index 88%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/SelectedResource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/SelectedResource.java
index 2065a0fa..e0b145d7 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/SelectedResource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/SelectedResource.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
/**
* 选择的资源
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/TreeNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/TreeNode.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/TreeNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/model/TreeNode.java
index 34d5a0f6..d7444c86 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/TreeNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/model/TreeNode.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.core.model;
import java.util.ArrayList;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/DatabaseResource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/DatabaseResource.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/DatabaseResource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/DatabaseResource.java
index 2e7ed162..3cf9c743 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/DatabaseResource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/DatabaseResource.java
@@ -1,10 +1,9 @@
-package org.ssssssss.magicapi.adapter.resource;
+package org.ssssssss.magicapi.core.resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.support.rowset.SqlRowSet;
-import org.ssssssss.magicapi.adapter.Resource;
import org.ssssssss.magicapi.utils.Assert;
import org.ssssssss.magicapi.utils.IoUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/FileResource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/FileResource.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/FileResource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/FileResource.java
index f0572240..f88a19dd 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/FileResource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/FileResource.java
@@ -1,6 +1,5 @@
-package org.ssssssss.magicapi.adapter.resource;
+package org.ssssssss.magicapi.core.resource;
-import org.ssssssss.magicapi.adapter.Resource;
import org.ssssssss.magicapi.utils.IoUtils;
import java.io.File;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/JarResource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/JarResource.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/JarResource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/JarResource.java
index c9de5448..eda2eab4 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/JarResource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/JarResource.java
@@ -1,7 +1,5 @@
-package org.ssssssss.magicapi.adapter.resource;
+package org.ssssssss.magicapi.core.resource;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.adapter.ResourceAdapter;
import org.ssssssss.magicapi.utils.IoUtils;
import org.ssssssss.magicapi.utils.PathUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/KeyValueResource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/KeyValueResource.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/KeyValueResource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/KeyValueResource.java
index 00a7c082..7b8be301 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/KeyValueResource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/KeyValueResource.java
@@ -1,6 +1,4 @@
-package org.ssssssss.magicapi.adapter.resource;
-
-import org.ssssssss.magicapi.adapter.Resource;
+package org.ssssssss.magicapi.core.resource;
import java.nio.charset.StandardCharsets;
import java.util.*;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/RedisResource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/RedisResource.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/RedisResource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/RedisResource.java
index 4dbbbc44..09cf6521 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/RedisResource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/RedisResource.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.adapter.resource;
+package org.ssssssss.magicapi.core.resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -6,7 +6,6 @@ import org.springframework.data.redis.core.Cursor;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.ScanOptions;
import org.springframework.data.redis.core.StringRedisTemplate;
-import org.ssssssss.magicapi.adapter.Resource;
import java.nio.charset.StandardCharsets;
import java.util.*;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/Resource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/Resource.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/Resource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/Resource.java
index a5165048..8a9198a0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/Resource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/Resource.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.adapter;
+package org.ssssssss.magicapi.core.resource;
import java.io.IOException;
import java.io.OutputStream;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/ResourceAdapter.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/ResourceAdapter.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/ResourceAdapter.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/ResourceAdapter.java
index 3c024507..b2212fec 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/ResourceAdapter.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/ResourceAdapter.java
@@ -1,9 +1,7 @@
-package org.ssssssss.magicapi.adapter;
+package org.ssssssss.magicapi.core.resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.util.ResourceUtils;
-import org.ssssssss.magicapi.adapter.resource.FileResource;
-import org.ssssssss.magicapi.adapter.resource.JarResource;
import java.io.FileNotFoundException;
import java.io.IOException;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/ZipResource.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/ZipResource.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/ZipResource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/resource/ZipResource.java
index 92eafcd5..6849fe20 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/resource/ZipResource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/resource/ZipResource.java
@@ -1,13 +1,15 @@
-package org.ssssssss.magicapi.adapter.resource;
+package org.ssssssss.magicapi.core.resource;
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
-import org.ssssssss.magicapi.adapter.Resource;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.util.*;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
import java.util.stream.Collectors;
/**
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/AbstractMagicDynamicRegistry.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/AbstractMagicDynamicRegistry.java
similarity index 90%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/AbstractMagicDynamicRegistry.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/AbstractMagicDynamicRegistry.java
index 6b00ce77..0c31e0c1 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/AbstractMagicDynamicRegistry.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/AbstractMagicDynamicRegistry.java
@@ -1,13 +1,12 @@
-package org.ssssssss.magicapi.service;
+package org.ssssssss.magicapi.core.service;
import org.springframework.context.event.EventListener;
-import org.ssssssss.magicapi.event.EventAction;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.event.GroupEvent;
-import org.ssssssss.magicapi.event.MagicEvent;
-import org.ssssssss.magicapi.exception.MagicAPIException;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
+import org.ssssssss.magicapi.core.event.EventAction;
+import org.ssssssss.magicapi.core.event.FileEvent;
+import org.ssssssss.magicapi.core.event.GroupEvent;
+import org.ssssssss.magicapi.core.event.MagicEvent;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.model.MagicEntity;
import java.util.Iterator;
import java.util.Map;
@@ -57,7 +56,7 @@ public abstract class AbstractMagicDynamicRegistry implem
return false;
}
- @EventListener(condition = "#event.action == T(org.ssssssss.magicapi.event.EventAction).CLEAR")
+ @EventListener(condition = "#event.action == T(org.ssssssss.magicapi.core.event.EventAction).CLEAR")
public void clear(MagicEvent event) {
Iterator>> iterator = mappings.entrySet().iterator();
while (iterator.hasNext()) {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/AbstractPathMagicResourceStorage.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/AbstractPathMagicResourceStorage.java
similarity index 76%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/AbstractPathMagicResourceStorage.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/AbstractPathMagicResourceStorage.java
index 41b8d366..0b369238 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/AbstractPathMagicResourceStorage.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/AbstractPathMagicResourceStorage.java
@@ -1,9 +1,7 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.core.service;
-import org.ssssssss.magicapi.model.JsonCodeConstants;
-import org.ssssssss.magicapi.model.PathMagicEntity;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-import org.ssssssss.magicapi.service.MagicResourceService;
+import org.ssssssss.magicapi.core.config.JsonCodeConstants;
+import org.ssssssss.magicapi.core.model.PathMagicEntity;
import org.ssssssss.magicapi.utils.PathUtils;
import java.util.Objects;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicAPIService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicAPIService.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicAPIService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicAPIService.java
index 978a7c03..dffed23d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicAPIService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicAPIService.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.core.service;
-import org.ssssssss.magicapi.config.MagicModule;
-import org.ssssssss.magicapi.model.*;
+import org.ssssssss.magicapi.core.config.MagicModule;
+import org.ssssssss.magicapi.core.model.*;
import java.io.IOException;
import java.io.InputStream;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/MagicDynamicRegistry.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicDynamicRegistry.java
similarity index 63%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/MagicDynamicRegistry.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicDynamicRegistry.java
index 87c0f2d4..9cf21f8f 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/MagicDynamicRegistry.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicDynamicRegistry.java
@@ -1,9 +1,6 @@
-package org.ssssssss.magicapi.service;
+package org.ssssssss.magicapi.core.service;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-
-import java.util.List;
+import org.ssssssss.magicapi.core.model.MagicEntity;
public interface MagicDynamicRegistry {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicNotifyService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicNotifyService.java
similarity index 68%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicNotifyService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicNotifyService.java
index 8daba4fb..fa3ec8a4 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicNotifyService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicNotifyService.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.core.service;
-import org.ssssssss.magicapi.model.MagicNotify;
+import org.ssssssss.magicapi.core.model.MagicNotify;
/**
* 接口通知发送处理接口
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/MagicResourceService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicResourceService.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/MagicResourceService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicResourceService.java
index a6f660ae..fc3229d5 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/MagicResourceService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicResourceService.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.service;
+package org.ssssssss.magicapi.core.service;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.model.*;
+import org.ssssssss.magicapi.core.resource.Resource;
+import org.ssssssss.magicapi.core.model.*;
import org.ssssssss.magicapi.utils.PathUtils;
import java.io.IOException;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicResourceStorage.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicResourceStorage.java
similarity index 89%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicResourceStorage.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicResourceStorage.java
index 6999854a..43e9d24c 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/MagicResourceStorage.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicResourceStorage.java
@@ -1,8 +1,8 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.core.service;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.service.MagicResourceService;
+import org.ssssssss.magicapi.core.resource.Resource;
+import org.ssssssss.magicapi.core.model.MagicEntity;
+import org.ssssssss.magicapi.core.service.MagicResourceService;
import org.ssssssss.magicapi.utils.JsonUtils;
import java.nio.charset.StandardCharsets;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/MagicSynchronizationService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicSynchronizationService.java
similarity index 72%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/MagicSynchronizationService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicSynchronizationService.java
index 5d9253aa..0325605b 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/MagicSynchronizationService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/MagicSynchronizationService.java
@@ -1,12 +1,9 @@
-package org.ssssssss.magicapi.service;
+package org.ssssssss.magicapi.core.service;
import org.springframework.context.event.EventListener;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.event.GroupEvent;
-import org.ssssssss.magicapi.event.MagicEvent;
-import org.ssssssss.magicapi.model.Constants;
-import org.ssssssss.magicapi.model.MagicNotify;
-import org.ssssssss.magicapi.provider.MagicNotifyService;
+import org.ssssssss.magicapi.core.event.*;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.model.MagicNotify;
public class MagicSynchronizationService {
@@ -22,7 +19,7 @@ public class MagicSynchronizationService {
this.instanceId = instanceId;
}
- @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.model.Constants).EVENT_SOURCE_NOTIFY")
+ @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.core.config.Constants).EVENT_SOURCE_NOTIFY")
public void onFolderEvent(GroupEvent event) {
switch (event.getAction()) {
case CREATE:
@@ -34,7 +31,7 @@ public class MagicSynchronizationService {
}
}
- @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.model.Constants).EVENT_SOURCE_NOTIFY")
+ @EventListener(condition = "#event.source != T(org.ssssssss.magicapi.core.config.Constants).EVENT_SOURCE_NOTIFY")
public void onFileEvent(FileEvent event) {
if (Constants.EVENT_SOURCE_NOTIFY.equals(event.getSource())) {
return;
@@ -49,7 +46,7 @@ public class MagicSynchronizationService {
}
}
- @EventListener(condition = "#event.action == T(org.ssssssss.magicapi.event.EventAction).CLEAR && #event.source != T(org.ssssssss.magicapi.model.Constants).EVENT_SOURCE_NOTIFY")
+ @EventListener(condition = "#event.action == T(org.ssssssss.magicapi.core.event.EventAction).CLEAR && #event.source != T(org.ssssssss.magicapi.core.config.Constants).EVENT_SOURCE_NOTIFY")
public void onClearEvent(MagicEvent event){
magicNotifyService.sendNotify(new MagicNotify(instanceId, null, event.getAction(), null));
}
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/ApiInfoMagicResourceStorage.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/ApiInfoMagicResourceStorage.java
similarity index 76%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/ApiInfoMagicResourceStorage.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/ApiInfoMagicResourceStorage.java
index bcfab23e..949a1301 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/ApiInfoMagicResourceStorage.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/ApiInfoMagicResourceStorage.java
@@ -1,6 +1,7 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.core.service.impl;
-import org.ssssssss.magicapi.model.ApiInfo;
+import org.ssssssss.magicapi.core.model.ApiInfo;
+import org.ssssssss.magicapi.core.service.AbstractPathMagicResourceStorage;
public class ApiInfoMagicResourceStorage extends AbstractPathMagicResourceStorage {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicAPIService.java
similarity index 87%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicAPIService.java
index 50922e29..0bffac82 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicAPIService.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.provider.impl;
+package org.ssssssss.magicapi.core.service.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -10,19 +10,22 @@ import org.springframework.http.MediaType;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
-import org.ssssssss.magicapi.controller.MagicWebSocketDispatcher;
-import org.ssssssss.magicapi.event.EventAction;
-import org.ssssssss.magicapi.event.MagicEvent;
-import org.ssssssss.magicapi.exception.MagicAPIException;
-import org.ssssssss.magicapi.exception.MagicResourceNotFoundException;
-import org.ssssssss.magicapi.model.*;
-import org.ssssssss.magicapi.provider.MagicAPIService;
-import org.ssssssss.magicapi.provider.ResultProvider;
-import org.ssssssss.magicapi.script.ScriptManager;
-import org.ssssssss.magicapi.service.MagicResourceService;
-import org.ssssssss.magicapi.service.impl.FunctionMagicDynamicRegistry;
-import org.ssssssss.magicapi.service.impl.RequestMagicDynamicRegistry;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.config.JsonCodeConstants;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.core.handler.MagicWebSocketDispatcher;
+import org.ssssssss.magicapi.core.model.*;
+import org.ssssssss.magicapi.core.event.EventAction;
+import org.ssssssss.magicapi.core.event.MagicEvent;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.exception.MagicResourceNotFoundException;
+import org.ssssssss.magicapi.function.model.FunctionInfo;
+import org.ssssssss.magicapi.core.service.MagicAPIService;
+import org.ssssssss.magicapi.core.interceptor.ResultProvider;
+import org.ssssssss.magicapi.utils.ScriptManager;
+import org.ssssssss.magicapi.core.service.MagicResourceService;
+import org.ssssssss.magicapi.function.service.FunctionMagicDynamicRegistry;
import org.ssssssss.magicapi.utils.PathUtils;
import org.ssssssss.magicapi.utils.SignUtils;
import org.ssssssss.script.MagicScriptContext;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DefaultMagicResourceService.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicResourceService.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DefaultMagicResourceService.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicResourceService.java
index 46002465..14eb833d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DefaultMagicResourceService.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/DefaultMagicResourceService.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.core.service.impl;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -6,16 +6,19 @@ import org.slf4j.LoggerFactory;
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationListener;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.adapter.resource.ZipResource;
-import org.ssssssss.magicapi.event.EventAction;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.event.GroupEvent;
-import org.ssssssss.magicapi.event.MagicEvent;
-import org.ssssssss.magicapi.exception.InvalidArgumentException;
-import org.ssssssss.magicapi.model.*;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-import org.ssssssss.magicapi.service.MagicResourceService;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.config.JsonCodeConstants;
+import org.ssssssss.magicapi.core.resource.Resource;
+import org.ssssssss.magicapi.core.resource.ZipResource;
+import org.ssssssss.magicapi.core.event.EventAction;
+import org.ssssssss.magicapi.core.event.FileEvent;
+import org.ssssssss.magicapi.core.event.GroupEvent;
+import org.ssssssss.magicapi.core.event.MagicEvent;
+import org.ssssssss.magicapi.core.exception.InvalidArgumentException;
+import org.ssssssss.magicapi.core.model.*;
+import org.ssssssss.magicapi.core.service.AbstractPathMagicResourceStorage;
+import org.ssssssss.magicapi.core.service.MagicResourceService;
+import org.ssssssss.magicapi.core.service.MagicResourceStorage;
import org.ssssssss.magicapi.utils.IoUtils;
import org.ssssssss.magicapi.utils.JsonUtils;
import org.ssssssss.magicapi.utils.WebUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/RequestMagicDynamicRegistry.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/RequestMagicDynamicRegistry.java
similarity index 87%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/RequestMagicDynamicRegistry.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/RequestMagicDynamicRegistry.java
index df405113..f4557b72 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/RequestMagicDynamicRegistry.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/service/impl/RequestMagicDynamicRegistry.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.core.service.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -6,16 +6,16 @@ import org.springframework.context.event.EventListener;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.controller.RequestHandler;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.event.GroupEvent;
-import org.ssssssss.magicapi.exception.InvalidArgumentException;
-import org.ssssssss.magicapi.model.ApiInfo;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-import org.ssssssss.magicapi.script.ScriptManager;
-import org.ssssssss.magicapi.service.AbstractMagicDynamicRegistry;
+import org.ssssssss.magicapi.core.web.RequestHandler;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.event.FileEvent;
+import org.ssssssss.magicapi.core.event.GroupEvent;
+import org.ssssssss.magicapi.core.exception.InvalidArgumentException;
+import org.ssssssss.magicapi.core.model.ApiInfo;
+import org.ssssssss.magicapi.core.service.AbstractMagicDynamicRegistry;
+import org.ssssssss.magicapi.core.service.MagicResourceStorage;
import org.ssssssss.magicapi.utils.Mapping;
+import org.ssssssss.magicapi.utils.ScriptManager;
import org.ssssssss.script.MagicResourceLoader;
import org.ssssssss.script.MagicScriptContext;
import org.ssssssss.script.exception.MagicExitException;
@@ -29,7 +29,7 @@ import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
-import static org.ssssssss.magicapi.model.JsonCodeConstants.REQUEST_PATH_CONFLICT;
+import static org.ssssssss.magicapi.core.config.JsonCodeConstants.REQUEST_PATH_CONFLICT;
public class RequestMagicDynamicRegistry extends AbstractMagicDynamicRegistry {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicController.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicController.java
similarity index 77%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicController.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicController.java
index 64150498..65dc503e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicController.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicController.java
@@ -1,17 +1,19 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.web;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.config.Valid;
-import org.ssssssss.magicapi.exception.InvalidArgumentException;
-import org.ssssssss.magicapi.exception.MagicLoginException;
-import org.ssssssss.magicapi.interceptor.Authorization;
-import org.ssssssss.magicapi.interceptor.MagicUser;
-import org.ssssssss.magicapi.model.*;
-import org.ssssssss.magicapi.provider.MagicAPIService;
-import org.ssssssss.magicapi.provider.MagicBackupService;
-import org.ssssssss.magicapi.service.MagicResourceService;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.config.JsonCodeConstants;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.config.Valid;
+import org.ssssssss.magicapi.core.model.*;
+import org.ssssssss.magicapi.core.exception.InvalidArgumentException;
+import org.ssssssss.magicapi.core.exception.MagicLoginException;
+import org.ssssssss.magicapi.core.interceptor.Authorization;
+import org.ssssssss.magicapi.core.context.MagicUser;
+import org.ssssssss.magicapi.core.service.MagicAPIService;
+import org.ssssssss.magicapi.backup.service.MagicBackupService;
+import org.ssssssss.magicapi.core.service.MagicResourceService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
@@ -27,9 +29,9 @@ public class MagicController implements JsonCodeConstants {
final MagicAPIService magicAPIService;
final MagicBackupService magicBackupService;
- MagicConfiguration configuration;
+ protected MagicConfiguration configuration;
- MagicController(MagicConfiguration configuration) {
+ public MagicController(MagicConfiguration configuration) {
this.configuration = configuration;
this.magicAPIService = configuration.getMagicAPIService();
this.magicBackupService = configuration.getMagicBackupService();
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicExceptionHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicExceptionHandler.java
similarity index 85%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicExceptionHandler.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicExceptionHandler.java
index c71f9a08..70a5a46e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicExceptionHandler.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicExceptionHandler.java
@@ -1,11 +1,11 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.web;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.ssssssss.magicapi.exception.InvalidArgumentException;
-import org.ssssssss.magicapi.model.JsonBean;
+import org.ssssssss.magicapi.core.exception.InvalidArgumentException;
+import org.ssssssss.magicapi.core.model.JsonBean;
/**
* magic-api接口异常处理器
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicResourceController.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicResourceController.java
similarity index 91%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicResourceController.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicResourceController.java
index ced969af..825dd470 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicResourceController.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicResourceController.java
@@ -1,18 +1,18 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.web;
import org.springframework.web.bind.annotation.*;
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.adapter.resource.FileResource;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.exception.InvalidArgumentException;
-import org.ssssssss.magicapi.interceptor.Authorization;
-import org.ssssssss.magicapi.model.*;
-import org.ssssssss.magicapi.service.MagicDynamicRegistry;
-import org.ssssssss.magicapi.service.MagicResourceService;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.resource.Resource;
+import org.ssssssss.magicapi.core.resource.FileResource;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.model.*;
+import org.ssssssss.magicapi.core.exception.InvalidArgumentException;
+import org.ssssssss.magicapi.core.interceptor.Authorization;
+import org.ssssssss.magicapi.core.service.MagicDynamicRegistry;
+import org.ssssssss.magicapi.core.service.MagicResourceService;
import org.ssssssss.magicapi.utils.IoUtils;
import javax.servlet.http.HttpServletRequest;
-import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWorkbenchController.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWorkbenchController.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java
index 15c5bda5..492f9eb3 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicWorkbenchController.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/MagicWorkbenchController.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.web;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -10,15 +10,16 @@ import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.config.Valid;
-import org.ssssssss.magicapi.exception.MagicLoginException;
-import org.ssssssss.magicapi.interceptor.Authorization;
-import org.ssssssss.magicapi.interceptor.MagicUser;
-import org.ssssssss.magicapi.model.*;
-import org.ssssssss.magicapi.modules.ResponseModule;
-import org.ssssssss.magicapi.modules.SQLModule;
-import org.ssssssss.magicapi.provider.MagicAPIService;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.config.Valid;
+import org.ssssssss.magicapi.core.model.*;
+import org.ssssssss.magicapi.core.exception.MagicLoginException;
+import org.ssssssss.magicapi.core.interceptor.Authorization;
+import org.ssssssss.magicapi.core.context.MagicUser;
+import org.ssssssss.magicapi.modules.servlet.ResponseModule;
+import org.ssssssss.magicapi.modules.db.SQLModule;
+import org.ssssssss.magicapi.core.service.MagicAPIService;
import org.ssssssss.magicapi.utils.IoUtils;
import org.ssssssss.magicapi.utils.SignUtils;
import org.ssssssss.magicapi.utils.WebUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/RequestHandler.java b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/RequestHandler.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java
index 278650f7..7a329a20 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/RequestHandler.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/core/web/RequestHandler.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.core.web;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -14,21 +14,22 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.config.Valid;
-import org.ssssssss.magicapi.config.WebSocketSessionManager;
-import org.ssssssss.magicapi.context.CookieContext;
-import org.ssssssss.magicapi.context.RequestContext;
-import org.ssssssss.magicapi.context.SessionContext;
-import org.ssssssss.magicapi.exception.ValidateException;
-import org.ssssssss.magicapi.interceptor.RequestInterceptor;
-import org.ssssssss.magicapi.logging.MagicLoggerContext;
-import org.ssssssss.magicapi.model.*;
-import org.ssssssss.magicapi.modules.ResponseModule;
-import org.ssssssss.magicapi.provider.ResultProvider;
-import org.ssssssss.magicapi.script.ScriptManager;
-import org.ssssssss.magicapi.service.impl.RequestMagicDynamicRegistry;
-import org.ssssssss.magicapi.utils.JsonUtils;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.config.Valid;
+import org.ssssssss.magicapi.core.config.WebSocketSessionManager;
+import org.ssssssss.magicapi.core.context.CookieContext;
+import org.ssssssss.magicapi.core.context.RequestContext;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.core.context.SessionContext;
+import org.ssssssss.magicapi.core.model.*;
+import org.ssssssss.magicapi.core.exception.ValidateException;
+import org.ssssssss.magicapi.core.interceptor.RequestInterceptor;
+import org.ssssssss.magicapi.core.logging.MagicLoggerContext;
+import org.ssssssss.magicapi.modules.servlet.ResponseModule;
+import org.ssssssss.magicapi.core.interceptor.ResultProvider;
+import org.ssssssss.magicapi.utils.ScriptManager;
+import org.ssssssss.magicapi.core.service.impl.RequestMagicDynamicRegistry;
import org.ssssssss.magicapi.utils.PatternUtils;
import org.ssssssss.script.MagicScriptContext;
import org.ssssssss.script.MagicScriptDebugContext;
@@ -48,9 +49,8 @@ import java.util.*;
import java.util.stream.Collectors;
import static org.springframework.http.HttpHeaders.*;
-import static org.ssssssss.magicapi.config.MessageType.BREAKPOINT;
-import static org.ssssssss.magicapi.config.MessageType.EXCEPTION;
-import static org.ssssssss.magicapi.model.Constants.*;
+import static org.ssssssss.magicapi.core.config.MessageType.EXCEPTION;
+import static org.ssssssss.magicapi.core.config.Constants.*;
/**
* 请求入口处理
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/DataSourceInfo.java b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/model/DataSourceInfo.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/DataSourceInfo.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/datasource/model/DataSourceInfo.java
index 4d1ea462..b668dc80 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/DataSourceInfo.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/model/DataSourceInfo.java
@@ -1,4 +1,6 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.datasource.model;
+
+import org.ssssssss.magicapi.core.model.MagicEntity;
public class DataSourceInfo extends MagicEntity {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicDynamicDataSource.java b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/model/MagicDynamicDataSource.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/config/MagicDynamicDataSource.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/datasource/model/MagicDynamicDataSource.java
index a68cd6b8..66eec1aa 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/config/MagicDynamicDataSource.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/model/MagicDynamicDataSource.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.config;
+package org.ssssssss.magicapi.datasource.model;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -6,9 +6,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.jdbc.datasource.DataSourceUtils;
-import org.ssssssss.magicapi.adapter.DialectAdapter;
-import org.ssssssss.magicapi.dialect.Dialect;
-import org.ssssssss.magicapi.exception.MagicAPIException;
+import org.ssssssss.magicapi.modules.db.dialect.DialectAdapter;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
+import org.ssssssss.magicapi.modules.db.dialect.Dialect;
import org.ssssssss.magicapi.utils.Assert;
import org.ssssssss.magicapi.utils.IoUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/DataSourceEncryptProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceEncryptProvider.java
similarity index 73%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/DataSourceEncryptProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceEncryptProvider.java
index 04f79154..09be1612 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/DataSourceEncryptProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceEncryptProvider.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.datasource.service;
-import org.ssssssss.magicapi.model.DataSourceInfo;
+import org.ssssssss.magicapi.datasource.model.DataSourceInfo;
/**
* 数据源加解密
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DataSourceInfoMagicResourceStorage.java b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceInfoMagicResourceStorage.java
similarity index 82%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DataSourceInfoMagicResourceStorage.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceInfoMagicResourceStorage.java
index 23fe765d..0f5022fd 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DataSourceInfoMagicResourceStorage.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceInfoMagicResourceStorage.java
@@ -1,10 +1,10 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.datasource.service;
-import org.ssssssss.magicapi.model.DataSourceInfo;
-import org.ssssssss.magicapi.model.JsonCodeConstants;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-import org.ssssssss.magicapi.service.MagicResourceService;
+import org.ssssssss.magicapi.datasource.model.DataSourceInfo;
+import org.ssssssss.magicapi.core.config.JsonCodeConstants;
+import org.ssssssss.magicapi.core.model.MagicEntity;
+import org.ssssssss.magicapi.core.service.MagicResourceService;
+import org.ssssssss.magicapi.core.service.MagicResourceStorage;
import org.ssssssss.magicapi.utils.IoUtils;
import org.ssssssss.magicapi.utils.JsonUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DataSourceMagicDynamicRegistry.java b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceMagicDynamicRegistry.java
similarity index 91%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DataSourceMagicDynamicRegistry.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceMagicDynamicRegistry.java
index 68c8a2d4..15bf65a8 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/DataSourceMagicDynamicRegistry.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/service/DataSourceMagicDynamicRegistry.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.datasource.service;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
@@ -13,11 +13,11 @@ import org.springframework.boot.context.properties.source.MapConfigurationProper
import org.springframework.boot.jdbc.DatabaseDriver;
import org.springframework.context.event.EventListener;
import org.springframework.util.ClassUtils;
-import org.ssssssss.magicapi.config.MagicDynamicDataSource;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.model.DataSourceInfo;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-import org.ssssssss.magicapi.service.AbstractMagicDynamicRegistry;
+import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource;
+import org.ssssssss.magicapi.core.event.FileEvent;
+import org.ssssssss.magicapi.datasource.model.DataSourceInfo;
+import org.ssssssss.magicapi.core.service.AbstractMagicDynamicRegistry;
+import org.ssssssss.magicapi.core.service.MagicResourceStorage;
import javax.sql.DataSource;
import java.util.HashMap;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicDataSourceController.java b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/web/MagicDataSourceController.java
similarity index 72%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicDataSourceController.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/datasource/web/MagicDataSourceController.java
index 239008e8..d425781b 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicDataSourceController.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/datasource/web/MagicDataSourceController.java
@@ -1,11 +1,13 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.datasource.web;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.model.DataSourceInfo;
-import org.ssssssss.magicapi.model.JsonBean;
+import org.ssssssss.magicapi.core.web.MagicExceptionHandler;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.datasource.model.DataSourceInfo;
+import org.ssssssss.magicapi.core.model.JsonBean;
+import org.ssssssss.magicapi.core.web.MagicController;
import org.ssssssss.magicapi.utils.JdbcUtils;
import java.sql.Connection;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/FunctionInfo.java b/magic-api/src/main/java/org/ssssssss/magicapi/function/model/FunctionInfo.java
similarity index 92%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/FunctionInfo.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/function/model/FunctionInfo.java
index a8a30df8..b4473d20 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/FunctionInfo.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/function/model/FunctionInfo.java
@@ -1,6 +1,9 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.function.model;
import com.fasterxml.jackson.core.type.TypeReference;
+import org.ssssssss.magicapi.core.model.MagicEntity;
+import org.ssssssss.magicapi.core.model.Parameter;
+import org.ssssssss.magicapi.core.model.PathMagicEntity;
import org.ssssssss.magicapi.utils.JsonUtils;
import java.util.Collections;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/FunctionInfoMagicResourceStorage.java b/magic-api/src/main/java/org/ssssssss/magicapi/function/service/FunctionInfoMagicResourceStorage.java
similarity index 74%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/FunctionInfoMagicResourceStorage.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/function/service/FunctionInfoMagicResourceStorage.java
index 3405eac0..638dc3be 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/FunctionInfoMagicResourceStorage.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/function/service/FunctionInfoMagicResourceStorage.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.function.service;
-import org.ssssssss.magicapi.model.ApiInfo;
-import org.ssssssss.magicapi.model.FunctionInfo;
+import org.ssssssss.magicapi.function.model.FunctionInfo;
+import org.ssssssss.magicapi.core.service.AbstractPathMagicResourceStorage;
public class FunctionInfoMagicResourceStorage extends AbstractPathMagicResourceStorage {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/FunctionMagicDynamicRegistry.java b/magic-api/src/main/java/org/ssssssss/magicapi/function/service/FunctionMagicDynamicRegistry.java
similarity index 81%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/FunctionMagicDynamicRegistry.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/function/service/FunctionMagicDynamicRegistry.java
index 3ff3d3be..ffec89b0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/FunctionMagicDynamicRegistry.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/function/service/FunctionMagicDynamicRegistry.java
@@ -1,16 +1,16 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.function.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.event.EventListener;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.event.GroupEvent;
-import org.ssssssss.magicapi.model.FunctionInfo;
-import org.ssssssss.magicapi.model.Parameter;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-import org.ssssssss.magicapi.script.ScriptManager;
-import org.ssssssss.magicapi.service.AbstractMagicDynamicRegistry;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.event.FileEvent;
+import org.ssssssss.magicapi.core.event.GroupEvent;
+import org.ssssssss.magicapi.function.model.FunctionInfo;
+import org.ssssssss.magicapi.core.model.Parameter;
+import org.ssssssss.magicapi.core.service.MagicResourceStorage;
+import org.ssssssss.magicapi.utils.ScriptManager;
+import org.ssssssss.magicapi.core.service.AbstractMagicDynamicRegistry;
import org.ssssssss.script.MagicResourceLoader;
import org.ssssssss.script.MagicScriptContext;
import org.ssssssss.script.exception.MagicExitException;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/JSR223LanguageProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/jsr223/JSR223LanguageProvider.java
similarity index 87%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/JSR223LanguageProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/jsr223/JSR223LanguageProvider.java
index 02287739..910e8632 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/JSR223LanguageProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/jsr223/JSR223LanguageProvider.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.provider.impl;
+package org.ssssssss.magicapi.jsr223;
-import org.ssssssss.magicapi.exception.MagicAPIException;
-import org.ssssssss.magicapi.provider.LanguageProvider;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
+import org.ssssssss.magicapi.jsr223.LanguageProvider;
import javax.script.Compilable;
import javax.script.ScriptEngine;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/LanguageProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/jsr223/LanguageProvider.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/LanguageProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/jsr223/LanguageProvider.java
index d2bc8e9b..390d99b1 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/LanguageProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/jsr223/LanguageProvider.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.jsr223;
import java.util.Map;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/BoundSql.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/BoundSql.java
similarity index 91%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/BoundSql.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/BoundSql.java
index 5f1138b2..95e3a70d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/BoundSql.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/BoundSql.java
@@ -1,11 +1,11 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.db;
-import org.ssssssss.magicapi.context.RequestContext;
-import org.ssssssss.magicapi.interceptor.SQLInterceptor;
-import org.ssssssss.magicapi.model.RequestEntity;
-import org.ssssssss.magicapi.modules.mybatis.MybatisParser;
-import org.ssssssss.magicapi.modules.mybatis.SqlNode;
-import org.ssssssss.magicapi.modules.mybatis.TextSqlNode;
+import org.ssssssss.magicapi.core.context.RequestContext;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.modules.db.inteceptor.SQLInterceptor;
+import org.ssssssss.magicapi.modules.db.mybatis.MybatisParser;
+import org.ssssssss.magicapi.modules.db.mybatis.SqlNode;
+import org.ssssssss.magicapi.modules.db.mybatis.TextSqlNode;
import org.ssssssss.script.runtime.RuntimeContext;
import java.util.*;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/ColumnMapperAdapter.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/ColumnMapperAdapter.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/ColumnMapperAdapter.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/ColumnMapperAdapter.java
index 61afa0dc..5ec96a99 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/ColumnMapperAdapter.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/ColumnMapperAdapter.java
@@ -1,8 +1,7 @@
-package org.ssssssss.magicapi.adapter;
+package org.ssssssss.magicapi.modules.db;
import org.springframework.jdbc.core.RowMapper;
-import org.ssssssss.magicapi.provider.ColumnMapperProvider;
-import org.ssssssss.magicapi.provider.impl.*;
+import org.ssssssss.magicapi.modules.db.provider.*;
import java.util.HashMap;
import java.util.Map;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/SQLModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/SQLModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java
index 763c613d..fd80f001 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/SQLModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SQLModule.java
@@ -1,26 +1,25 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.db;
import org.apache.commons.lang3.StringUtils;
import org.springframework.jdbc.core.ArgumentPreparedStatementSetter;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.SqlParameterValue;
import org.springframework.jdbc.support.GeneratedKeyHolder;
-import org.ssssssss.magicapi.adapter.ColumnMapperAdapter;
-import org.ssssssss.magicapi.adapter.DialectAdapter;
-import org.ssssssss.magicapi.cache.SqlCache;
-import org.ssssssss.magicapi.config.MagicDynamicDataSource;
-import org.ssssssss.magicapi.config.MagicDynamicDataSource.DataSourceNode;
-import org.ssssssss.magicapi.config.MagicModule;
-import org.ssssssss.magicapi.context.RequestContext;
-import org.ssssssss.magicapi.dialect.Dialect;
-import org.ssssssss.magicapi.interceptor.NamedTableInterceptor;
-import org.ssssssss.magicapi.interceptor.SQLInterceptor;
-import org.ssssssss.magicapi.model.Page;
-import org.ssssssss.magicapi.model.RequestEntity;
-import org.ssssssss.magicapi.modules.table.NamedTable;
-import org.ssssssss.magicapi.provider.PageProvider;
-import org.ssssssss.magicapi.provider.ResultProvider;
-import org.ssssssss.magicapi.script.ScriptManager;
+import org.ssssssss.magicapi.modules.db.dialect.DialectAdapter;
+import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource;
+import org.ssssssss.magicapi.datasource.model.MagicDynamicDataSource.DataSourceNode;
+import org.ssssssss.magicapi.core.config.MagicModule;
+import org.ssssssss.magicapi.core.context.RequestContext;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.modules.db.cache.SqlCache;
+import org.ssssssss.magicapi.modules.db.dialect.Dialect;
+import org.ssssssss.magicapi.modules.db.inteceptor.NamedTableInterceptor;
+import org.ssssssss.magicapi.modules.db.inteceptor.SQLInterceptor;
+import org.ssssssss.magicapi.modules.db.model.Page;
+import org.ssssssss.magicapi.modules.db.provider.PageProvider;
+import org.ssssssss.magicapi.modules.db.table.NamedTable;
+import org.ssssssss.magicapi.core.interceptor.ResultProvider;
+import org.ssssssss.magicapi.utils.ScriptManager;
import org.ssssssss.script.annotation.Comment;
import org.ssssssss.script.annotation.UnableCall;
import org.ssssssss.script.parsing.ast.statement.ClassConverter;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/SingleRowResultSetExtractor.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SingleRowResultSetExtractor.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/SingleRowResultSetExtractor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SingleRowResultSetExtractor.java
index 33a99e51..d113a2ef 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/SingleRowResultSetExtractor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/SingleRowResultSetExtractor.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.db;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.ResultSetExtractor;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/Transaction.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/Transaction.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/Transaction.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/Transaction.java
index 5d6bc518..6ccec16e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/Transaction.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/Transaction.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.db;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionDefinition;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/cache/DefaultSqlCache.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/cache/DefaultSqlCache.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/cache/DefaultSqlCache.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/cache/DefaultSqlCache.java
index 9390914c..9e7a7a46 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/cache/DefaultSqlCache.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/cache/DefaultSqlCache.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.cache;
+package org.ssssssss.magicapi.modules.db.cache;
import java.util.Iterator;
import java.util.LinkedHashMap;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/cache/SqlCache.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/cache/SqlCache.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/cache/SqlCache.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/cache/SqlCache.java
index 76d443be..b61fbc03 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/cache/SqlCache.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/cache/SqlCache.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.cache;
+package org.ssssssss.magicapi.modules.db.cache;
import org.ssssssss.magicapi.utils.MD5Utils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/ClickhouseDialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/ClickhouseDialect.java
similarity index 80%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/ClickhouseDialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/ClickhouseDialect.java
index 12dd3260..284bc5b4 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/ClickhouseDialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/ClickhouseDialect.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
/**
* ClickHouse方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/DB2Dialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DB2Dialect.java
similarity index 83%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/DB2Dialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DB2Dialect.java
index 47ee4aae..65493d39 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/DB2Dialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DB2Dialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* DB2方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/Dialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/Dialect.java
similarity index 92%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/Dialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/Dialect.java
index 167a4a4a..6f53c782 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/Dialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/Dialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
import java.sql.Connection;
import java.sql.SQLException;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/DialectAdapter.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DialectAdapter.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/adapter/DialectAdapter.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DialectAdapter.java
index 705310f8..ed0bb1cc 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/adapter/DialectAdapter.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DialectAdapter.java
@@ -1,8 +1,7 @@
-package org.ssssssss.magicapi.adapter;
+package org.ssssssss.magicapi.modules.db.dialect;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.ssssssss.magicapi.dialect.*;
import java.sql.Connection;
import java.sql.SQLException;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/DmDialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DmDialect.java
similarity index 85%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/DmDialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DmDialect.java
index 08c4fd1b..483350d1 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/DmDialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/DmDialect.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* @description: 达梦数据库方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/KingbaseSQLDialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/KingbaseSQLDialect.java
similarity index 80%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/KingbaseSQLDialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/KingbaseSQLDialect.java
index 8639b062..81da0872 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/KingbaseSQLDialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/KingbaseSQLDialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* 人大金仓kingbase方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/MySQLDialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/MySQLDialect.java
similarity index 81%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/MySQLDialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/MySQLDialect.java
index 9f018a53..292b6009 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/MySQLDialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/MySQLDialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* mysql 方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/OracleDialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/OracleDialect.java
similarity index 84%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/OracleDialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/OracleDialect.java
index 96c6465d..4bc664aa 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/OracleDialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/OracleDialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* Oracle方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/PostgreSQLDialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/PostgreSQLDialect.java
similarity index 81%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/PostgreSQLDialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/PostgreSQLDialect.java
index 255658a4..6538f8d7 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/PostgreSQLDialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/PostgreSQLDialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* PostgreSQL 方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/SQLServer2005Dialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/SQLServer2005Dialect.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/SQLServer2005Dialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/SQLServer2005Dialect.java
index f1bde991..2c701f38 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/SQLServer2005Dialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/SQLServer2005Dialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
import org.apache.commons.lang3.StringUtils;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* SQLServer2005 方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/SQLServerDialect.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/SQLServerDialect.java
similarity index 80%
rename from magic-api/src/main/java/org/ssssssss/magicapi/dialect/SQLServerDialect.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/SQLServerDialect.java
index 14033259..6a44e9c0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/dialect/SQLServerDialect.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/dialect/SQLServerDialect.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.dialect;
+package org.ssssssss.magicapi.modules.db.dialect;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* SQL Server 方言
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/DefaultSqlInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/DefaultSqlInterceptor.java
similarity index 81%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/DefaultSqlInterceptor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/DefaultSqlInterceptor.java
index 8e019dc6..a8c813f5 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/DefaultSqlInterceptor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/DefaultSqlInterceptor.java
@@ -1,9 +1,10 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.modules.db.inteceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.ssssssss.magicapi.model.RequestEntity;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.modules.db.BoundSql;
+import org.ssssssss.magicapi.modules.db.inteceptor.SQLInterceptor;
import java.util.Arrays;
import java.util.stream.Collectors;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/NamedTableInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/NamedTableInterceptor.java
similarity index 52%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/NamedTableInterceptor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/NamedTableInterceptor.java
index c6b5a7a3..e8e71a92 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/NamedTableInterceptor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/NamedTableInterceptor.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.modules.db.inteceptor;
-import org.ssssssss.magicapi.model.SqlMode;
-import org.ssssssss.magicapi.modules.table.NamedTable;
+import org.ssssssss.magicapi.modules.db.model.SqlMode;
+import org.ssssssss.magicapi.modules.db.table.NamedTable;
/**
* 单表模块拦截器
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/SQLInterceptor.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/SQLInterceptor.java
similarity index 76%
rename from magic-api/src/main/java/org/ssssssss/magicapi/interceptor/SQLInterceptor.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/SQLInterceptor.java
index fc42f08f..5dd8e898 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/interceptor/SQLInterceptor.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/inteceptor/SQLInterceptor.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.interceptor;
+package org.ssssssss.magicapi.modules.db.inteceptor;
-import org.ssssssss.magicapi.model.RequestEntity;
-import org.ssssssss.magicapi.modules.BoundSql;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.modules.db.BoundSql;
/**
* SQL 拦截器
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/Page.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/Page.java
similarity index 90%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/Page.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/Page.java
index 388715e9..a9b418e6 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/Page.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/Page.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.modules.db.model;
/**
* 分页对象
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/PageResult.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/PageResult.java
similarity index 91%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/PageResult.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/PageResult.java
index a4171834..472b52b1 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/PageResult.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/PageResult.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.modules.db.model;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/SqlMode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/SqlMode.java
similarity index 88%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/SqlMode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/SqlMode.java
index d4ff7dcf..e005ad32 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/SqlMode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/model/SqlMode.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.modules.db.model;
/**
* 单表API操作
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/ForeachSqlNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/ForeachSqlNode.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/ForeachSqlNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/ForeachSqlNode.java
index 1771ca8c..0eef5fd4 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/ForeachSqlNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/ForeachSqlNode.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
import org.apache.commons.lang3.StringUtils;
-import org.ssssssss.magicapi.script.ScriptManager;
+import org.ssssssss.magicapi.utils.ScriptManager;
import java.lang.reflect.Array;
import java.util.Collection;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/IfSqlNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/IfSqlNode.java
similarity index 87%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/IfSqlNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/IfSqlNode.java
index ebfef69e..2f37d1b5 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/IfSqlNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/IfSqlNode.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
-import org.ssssssss.magicapi.script.ScriptManager;
+import org.ssssssss.magicapi.utils.ScriptManager;
import org.ssssssss.script.parsing.ast.literal.BooleanLiteral;
import java.util.List;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/MybatisParser.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/MybatisParser.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/MybatisParser.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/MybatisParser.java
index 4f1d4c94..4ffb3201 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/MybatisParser.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/MybatisParser.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
-import org.ssssssss.magicapi.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/SetSqlNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/SetSqlNode.java
similarity index 79%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/SetSqlNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/SetSqlNode.java
index 57badd90..e9bf5ea2 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/SetSqlNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/SetSqlNode.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
/**
* 对应XML中
@@ -11,4 +11,4 @@ public class SetSqlNode extends TrimSqlNode {
this.prefix = "SET";
this.suffixOverrides = ",";
}
-}
\ No newline at end of file
+}
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/SqlNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/SqlNode.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/SqlNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/SqlNode.java
index 07caa17b..fc3ef131 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/SqlNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/SqlNode.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
import org.apache.commons.lang3.StringUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/TextSqlNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/TextSqlNode.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/TextSqlNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/TextSqlNode.java
index 36d49864..7e198e83 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/TextSqlNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/TextSqlNode.java
@@ -1,6 +1,6 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
-import org.ssssssss.magicapi.script.ScriptManager;
+import org.ssssssss.magicapi.utils.ScriptManager;
import org.ssssssss.script.functions.StreamExtension;
import org.ssssssss.script.parsing.GenericTokenParser;
import org.ssssssss.script.parsing.ast.literal.BooleanLiteral;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/TrimSqlNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/TrimSqlNode.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/TrimSqlNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/TrimSqlNode.java
index 27f9f39b..b823b524 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/TrimSqlNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/TrimSqlNode.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
import org.apache.commons.lang3.StringUtils;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/WhereSqlNode.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/WhereSqlNode.java
similarity index 91%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/WhereSqlNode.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/WhereSqlNode.java
index 75aa8e84..4d70842d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/mybatis/WhereSqlNode.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/mybatis/WhereSqlNode.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules.mybatis;
+package org.ssssssss.magicapi.modules.db.mybatis;
import java.util.List;
import java.util.Map;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/CamelColumnMapperProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/CamelColumnMapperProvider.java
similarity index 90%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/CamelColumnMapperProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/CamelColumnMapperProvider.java
index 374590c4..03374d68 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/CamelColumnMapperProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/CamelColumnMapperProvider.java
@@ -1,6 +1,4 @@
-package org.ssssssss.magicapi.provider.impl;
-
-import org.ssssssss.magicapi.provider.ColumnMapperProvider;
+package org.ssssssss.magicapi.modules.db.provider;
/**
* 驼峰命名转换
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/ColumnMapperProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/ColumnMapperProvider.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/ColumnMapperProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/ColumnMapperProvider.java
index 1f2d3213..fd235f60 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/ColumnMapperProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/ColumnMapperProvider.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.modules.db.provider;
import org.springframework.jdbc.core.ColumnMapRowMapper;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultColumnMapperProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultColumnMapperProvider.java
similarity index 72%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultColumnMapperProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultColumnMapperProvider.java
index 84a55a18..2091ea8b 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultColumnMapperProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultColumnMapperProvider.java
@@ -1,6 +1,4 @@
-package org.ssssssss.magicapi.provider.impl;
-
-import org.ssssssss.magicapi.provider.ColumnMapperProvider;
+package org.ssssssss.magicapi.modules.db.provider;
/**
* 默认命名(保持原样)
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultPageProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultPageProvider.java
similarity index 89%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultPageProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultPageProvider.java
index 0a838486..345630db 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultPageProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/DefaultPageProvider.java
@@ -1,8 +1,7 @@
-package org.ssssssss.magicapi.provider.impl;
+package org.ssssssss.magicapi.modules.db.provider;
import org.apache.commons.lang3.math.NumberUtils;
-import org.ssssssss.magicapi.model.Page;
-import org.ssssssss.magicapi.provider.PageProvider;
+import org.ssssssss.magicapi.modules.db.model.Page;
import org.ssssssss.script.runtime.RuntimeContext;
import java.util.Objects;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/LowerColumnMapperProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/LowerColumnMapperProvider.java
similarity index 73%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/LowerColumnMapperProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/LowerColumnMapperProvider.java
index 7c062b55..83b940bf 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/LowerColumnMapperProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/LowerColumnMapperProvider.java
@@ -1,6 +1,4 @@
-package org.ssssssss.magicapi.provider.impl;
-
-import org.ssssssss.magicapi.provider.ColumnMapperProvider;
+package org.ssssssss.magicapi.modules.db.provider;
/**
* 全小写命名
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/PageProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/PageProvider.java
similarity index 70%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/PageProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/PageProvider.java
index 495bde3b..d5306835 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/PageProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/PageProvider.java
@@ -1,7 +1,6 @@
-package org.ssssssss.magicapi.provider;
+package org.ssssssss.magicapi.modules.db.provider;
-import org.ssssssss.magicapi.model.Page;
-import org.ssssssss.script.MagicScriptContext;
+import org.ssssssss.magicapi.modules.db.model.Page;
import org.ssssssss.script.runtime.RuntimeContext;
/**
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/PascalColumnMapperProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/PascalColumnMapperProvider.java
similarity index 90%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/PascalColumnMapperProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/PascalColumnMapperProvider.java
index 5cb0bb3c..76193d03 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/PascalColumnMapperProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/PascalColumnMapperProvider.java
@@ -1,6 +1,4 @@
-package org.ssssssss.magicapi.provider.impl;
-
-import org.ssssssss.magicapi.provider.ColumnMapperProvider;
+package org.ssssssss.magicapi.modules.db.provider;
/**
* 帕斯卡命名转换
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/UpperColumnMapperProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/UpperColumnMapperProvider.java
similarity index 73%
rename from magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/UpperColumnMapperProvider.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/UpperColumnMapperProvider.java
index 1fea936a..c88b3e91 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/UpperColumnMapperProvider.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/provider/UpperColumnMapperProvider.java
@@ -1,6 +1,4 @@
-package org.ssssssss.magicapi.provider.impl;
-
-import org.ssssssss.magicapi.provider.ColumnMapperProvider;
+package org.ssssssss.magicapi.modules.db.provider;
/**
* 全大写命名
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/NamedTable.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/NamedTable.java
index b01dc3dc..a8e796c5 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/NamedTable.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/NamedTable.java
@@ -1,15 +1,15 @@
-package org.ssssssss.magicapi.modules.table;
+package org.ssssssss.magicapi.modules.db.table;
import org.apache.commons.lang3.StringUtils;
-import org.ssssssss.magicapi.context.RequestContext;
-import org.ssssssss.magicapi.exception.MagicAPIException;
-import org.ssssssss.magicapi.interceptor.NamedTableInterceptor;
-import org.ssssssss.magicapi.model.Attributes;
-import org.ssssssss.magicapi.model.Page;
-import org.ssssssss.magicapi.model.RequestEntity;
-import org.ssssssss.magicapi.model.SqlMode;
-import org.ssssssss.magicapi.modules.BoundSql;
-import org.ssssssss.magicapi.modules.SQLModule;
+import org.ssssssss.magicapi.core.context.RequestContext;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.model.Attributes;
+import org.ssssssss.magicapi.core.context.RequestEntity;
+import org.ssssssss.magicapi.modules.db.BoundSql;
+import org.ssssssss.magicapi.modules.db.inteceptor.NamedTableInterceptor;
+import org.ssssssss.magicapi.modules.db.SQLModule;
+import org.ssssssss.magicapi.modules.db.model.Page;
+import org.ssssssss.magicapi.modules.db.model.SqlMode;
import org.ssssssss.script.annotation.Comment;
import org.ssssssss.script.annotation.UnableCall;
import org.ssssssss.script.runtime.RuntimeContext;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/Where.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/Where.java
similarity index 99%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/table/Where.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/Where.java
index a38bf63a..8b81347a 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/table/Where.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/db/table/Where.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules.table;
+package org.ssssssss.magicapi.modules.db.table;
import org.apache.commons.lang3.StringUtils;
import org.ssssssss.script.annotation.Comment;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/ElasticSearchModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/elasticsearch/ElasticSearchModule.java
similarity index 88%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/ElasticSearchModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/elasticsearch/ElasticSearchModule.java
index 7cef939a..2a8b06e9 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/ElasticSearchModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/elasticsearch/ElasticSearchModule.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.elasticsearch;
import org.elasticsearch.client.RestClient;
-import org.ssssssss.magicapi.config.MagicModule;
+import org.ssssssss.magicapi.core.config.MagicModule;
import org.ssssssss.magicapi.modules.elasticsearch.ElasticSearchConnection;
import org.ssssssss.magicapi.modules.elasticsearch.ElasticSearchIndex;
import org.ssssssss.script.annotation.Comment;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/HttpModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/http/HttpModule.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/HttpModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/http/HttpModule.java
index fd7832a1..a234f48d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/HttpModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/http/HttpModule.java
@@ -1,11 +1,11 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.http;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.*;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
-import org.ssssssss.magicapi.config.MagicModule;
+import org.ssssssss.magicapi.core.config.MagicModule;
import org.ssssssss.script.annotation.Comment;
import java.util.HashMap;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoCollectionExtension.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoCollectionExtension.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoCollectionExtension.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoCollectionExtension.java
index 8b83c5d1..09fb579d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoCollectionExtension.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoCollectionExtension.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.mongo;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoFindIterableExtension.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoFindIterableExtension.java
similarity index 93%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoFindIterableExtension.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoFindIterableExtension.java
index 1694c92f..0237f992 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoFindIterableExtension.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoFindIterableExtension.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.mongo;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCursor;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoModule.java
similarity index 94%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoModule.java
index 9c0b5c03..31e5e017 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/MongoModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/mongo/MongoModule.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.mongo;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
@@ -8,8 +8,8 @@ import org.bson.conversions.Bson;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
-import org.ssssssss.magicapi.config.MagicModule;
-import org.ssssssss.magicapi.model.Constants;
+import org.ssssssss.magicapi.core.config.MagicModule;
+import org.ssssssss.magicapi.core.config.Constants;
import org.ssssssss.script.convert.ClassImplicitConvert;
import org.ssssssss.script.reflection.JavaInvoker;
import org.ssssssss.script.reflection.JavaReflection;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/RedisModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/redis/RedisModule.java
similarity index 95%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/RedisModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/redis/RedisModule.java
index 8685ef36..275fa42f 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/RedisModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/redis/RedisModule.java
@@ -1,9 +1,9 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.redis;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.StringRedisTemplate;
-import org.ssssssss.magicapi.config.MagicModule;
+import org.ssssssss.magicapi.core.config.MagicModule;
import org.ssssssss.script.functions.DynamicMethod;
import java.util.ArrayList;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/RequestModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/RequestModule.java
similarity index 98%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/RequestModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/RequestModule.java
index da976877..f273c71e 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/RequestModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/RequestModule.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.servlet;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartRequest;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/ResponseModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/ResponseModule.java
similarity index 97%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/ResponseModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/ResponseModule.java
index 8fe67b4c..b961c556 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/ResponseModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/servlet/ResponseModule.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.servlet;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpHeaders;
@@ -7,8 +7,8 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
-import org.ssssssss.magicapi.context.RequestContext;
-import org.ssssssss.magicapi.provider.ResultProvider;
+import org.ssssssss.magicapi.core.context.RequestContext;
+import org.ssssssss.magicapi.core.interceptor.ResultProvider;
import org.ssssssss.script.annotation.Comment;
import org.ssssssss.script.functions.ObjectConvertExtension;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/modules/EnvModule.java b/magic-api/src/main/java/org/ssssssss/magicapi/modules/spring/EnvModule.java
similarity index 88%
rename from magic-api/src/main/java/org/ssssssss/magicapi/modules/EnvModule.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/modules/spring/EnvModule.java
index 00f23660..490a04a4 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/modules/EnvModule.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/modules/spring/EnvModule.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.modules;
+package org.ssssssss.magicapi.modules.spring;
import org.springframework.core.env.Environment;
-import org.ssssssss.magicapi.config.MagicModule;
+import org.ssssssss.magicapi.core.config.MagicModule;
import org.ssssssss.script.annotation.Comment;
/**
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/provider/GroupServiceProvider.java b/magic-api/src/main/java/org/ssssssss/magicapi/provider/GroupServiceProvider.java
deleted file mode 100644
index 272e22e0..00000000
--- a/magic-api/src/main/java/org/ssssssss/magicapi/provider/GroupServiceProvider.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package org.ssssssss.magicapi.provider;
-
-import org.ssssssss.magicapi.adapter.Resource;
-import org.ssssssss.magicapi.model.Group;
-import org.ssssssss.magicapi.model.TreeNode;
-import org.ssssssss.magicapi.utils.PathUtils;
-
-import java.util.List;
-
-/**
- * 分组存储接口
- *
- * @author mxd
- */
-public interface GroupServiceProvider {
-
- /**
- * 添加分组
- *
- * @param group 分组信息
- * @return 是否添加成功
- */
- boolean insert(Group group);
-
- /**
- * 修改分组
- *
- * @param group 分组信息
- * @return 是否修改成功
- */
- boolean update(Group group);
-
- /**
- * 删除分组
- *
- * @param groupId 分组ID
- * @return 是否删除成功
- */
- boolean delete(String groupId);
-
- /**
- * 分组是否存在
- *
- * @param group 分组信息
- * @return 是否存在
- */
- boolean exists(Group group);
-
- /**
- * 是否有该分组
- *
- * @param groupId 分组ID
- * @return 是否存在
- */
- boolean containsApiGroup(String groupId);
-
- /**
- * 读取分组信息
- *
- * @param resource 资源对象
- * @return 分组信息
- */
- Group readGroup(Resource resource);
-
- /**
- * 接口分组列表
- *
- * @return 返回API分组的树结构
- */
- TreeNode apiGroupTree();
-
- /**
- * 函数分组列表
- *
- * @return 返回函数分组的树结构
- */
- TreeNode functionGroupTree();
-
- /**
- * 分组列表
- *
- * @param type 分组类型,Constants.GROUP_TYPE_API、Constants.GROUP_TYPE_FUNCTION
- * @return 分组信息列表
- */
- List groupList(String type);
-
- /**
- * 已缓存的分组列表
- *
- * @param type 分组类型,Constants.GROUP_TYPE_API、Constants.GROUP_TYPE_FUNCTION
- * @return 分组信息列表
- */
- List cachedGroupList(String type);
-
- /**
- * 根据分组Id获取分组路径
- *
- * @param groupId 分组ID
- * @return 分组的完整路径
- */
- String getFullPath(String groupId);
-
- /**
- * 根据分组Id获取分组名称
- *
- * @param groupId 分组ID
- * @return 分组的完整名称
- */
- String getFullName(String groupId);
-
- /**
- * 根据ID获取资源对象
- *
- * @param groupId 分组ID
- * @return 资源对象
- */
- Resource getGroupResource(String groupId);
-
- /**
- * 获取脚本中的完整名称
- *
- * @param groupId 分组ID
- * @param name 脚本名称
- * @param path 脚本路径
- * @return 完整名称
- */
- default String getScriptName(String groupId, String name, String path) {
- return PathUtils.replaceSlash("/" + getFullName(groupId) + "/" + name) + "(" + PathUtils.replaceSlash("/" + getFullPath(groupId) + "/" + path) + ")";
- }
-}
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/script/UnCompileScript.java b/magic-api/src/main/java/org/ssssssss/magicapi/script/UnCompileScript.java
deleted file mode 100644
index 314fb5af..00000000
--- a/magic-api/src/main/java/org/ssssssss/magicapi/script/UnCompileScript.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package org.ssssssss.magicapi.script;
-
-import javax.script.CompiledScript;
-import javax.script.ScriptContext;
-import javax.script.ScriptEngine;
-import javax.script.ScriptException;
-
-/**
- * 不支持编译的脚本
- *
- * @author mxd
- */
-public class UnCompileScript extends CompiledScript {
-
- private final ScriptEngine engine;
-
- private final String script;
-
- public UnCompileScript(String script, ScriptEngine engine) {
- this.script = script;
- this.engine = engine;
- }
-
- @Override
- public Object eval(ScriptContext context) throws ScriptException {
- return engine.eval(script, context);
- }
-
- @Override
- public ScriptEngine getEngine() {
- return engine;
- }
-}
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/model/TaskInfo.java b/magic-api/src/main/java/org/ssssssss/magicapi/task/model/TaskInfo.java
similarity index 86%
rename from magic-api/src/main/java/org/ssssssss/magicapi/model/TaskInfo.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/task/model/TaskInfo.java
index 892f1d27..b4e513e0 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/model/TaskInfo.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/task/model/TaskInfo.java
@@ -1,8 +1,11 @@
-package org.ssssssss.magicapi.model;
+package org.ssssssss.magicapi.task.model;
+
+import org.ssssssss.magicapi.core.model.MagicEntity;
+import org.ssssssss.magicapi.core.model.PathMagicEntity;
import java.util.Objects;
-public class TaskInfo extends PathMagicEntity{
+public class TaskInfo extends PathMagicEntity {
/**
* cron 表达式
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/TaskInfoMagicResourceStorage.java b/magic-api/src/main/java/org/ssssssss/magicapi/task/service/TaskInfoMagicResourceStorage.java
similarity index 74%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/TaskInfoMagicResourceStorage.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/task/service/TaskInfoMagicResourceStorage.java
index 2e5dc82d..cb7e2d77 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/TaskInfoMagicResourceStorage.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/task/service/TaskInfoMagicResourceStorage.java
@@ -1,7 +1,7 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.task.service;
-import org.ssssssss.magicapi.model.ApiInfo;
-import org.ssssssss.magicapi.model.TaskInfo;
+import org.ssssssss.magicapi.core.service.AbstractPathMagicResourceStorage;
+import org.ssssssss.magicapi.task.model.TaskInfo;
public class TaskInfoMagicResourceStorage extends AbstractPathMagicResourceStorage {
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/TaskMagicDynamicRegistry.java b/magic-api/src/main/java/org/ssssssss/magicapi/task/service/TaskMagicDynamicRegistry.java
similarity index 86%
rename from magic-api/src/main/java/org/ssssssss/magicapi/service/impl/TaskMagicDynamicRegistry.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/task/service/TaskMagicDynamicRegistry.java
index 5d913fb2..2139b08c 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/service/impl/TaskMagicDynamicRegistry.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/task/service/TaskMagicDynamicRegistry.java
@@ -1,17 +1,17 @@
-package org.ssssssss.magicapi.service.impl;
+package org.ssssssss.magicapi.task.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.TaskScheduler;
import org.springframework.scheduling.config.CronTask;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.event.FileEvent;
-import org.ssssssss.magicapi.event.GroupEvent;
-import org.ssssssss.magicapi.model.TaskInfo;
-import org.ssssssss.magicapi.provider.MagicResourceStorage;
-import org.ssssssss.magicapi.script.ScriptManager;
-import org.ssssssss.magicapi.service.AbstractMagicDynamicRegistry;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.event.FileEvent;
+import org.ssssssss.magicapi.core.event.GroupEvent;
+import org.ssssssss.magicapi.core.service.AbstractMagicDynamicRegistry;
+import org.ssssssss.magicapi.core.service.MagicResourceStorage;
+import org.ssssssss.magicapi.task.model.TaskInfo;
+import org.ssssssss.magicapi.utils.ScriptManager;
import org.ssssssss.script.MagicScriptContext;
import java.util.concurrent.ScheduledFuture;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicTaskController.java b/magic-api/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java
similarity index 69%
rename from magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicTaskController.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java
index 34e0daf0..08ef4ab1 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/controller/MagicTaskController.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/task/web/MagicTaskController.java
@@ -1,18 +1,20 @@
-package org.ssssssss.magicapi.controller;
+package org.ssssssss.magicapi.task.web;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.ResponseBody;
-import org.ssssssss.magicapi.config.MagicConfiguration;
-import org.ssssssss.magicapi.logging.MagicLoggerContext;
-import org.ssssssss.magicapi.model.DebugRequest;
-import org.ssssssss.magicapi.model.JsonBean;
-import org.ssssssss.magicapi.model.MagicEntity;
-import org.ssssssss.magicapi.script.ScriptManager;
+import org.ssssssss.magicapi.core.web.MagicExceptionHandler;
+import org.ssssssss.magicapi.core.config.MagicConfiguration;
+import org.ssssssss.magicapi.core.logging.MagicLoggerContext;
+import org.ssssssss.magicapi.core.model.DebugRequest;
+import org.ssssssss.magicapi.core.model.JsonBean;
+import org.ssssssss.magicapi.core.model.MagicEntity;
+import org.ssssssss.magicapi.core.web.MagicController;
+import org.ssssssss.magicapi.utils.ScriptManager;
import org.ssssssss.script.MagicScriptDebugContext;
import javax.servlet.http.HttpServletRequest;
-public class MagicTaskController extends MagicController implements MagicExceptionHandler{
+public class MagicTaskController extends MagicController implements MagicExceptionHandler {
public MagicTaskController(MagicConfiguration configuration) {
super(configuration);
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/utils/Assert.java b/magic-api/src/main/java/org/ssssssss/magicapi/utils/Assert.java
index 72c4099c..e2c09057 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/utils/Assert.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/utils/Assert.java
@@ -1,7 +1,7 @@
package org.ssssssss.magicapi.utils;
import org.apache.commons.lang3.StringUtils;
-import org.ssssssss.magicapi.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
/**
* 断言辅助类
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/utils/JdbcUtils.java b/magic-api/src/main/java/org/ssssssss/magicapi/utils/JdbcUtils.java
index bccde8f7..9234179d 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/utils/JdbcUtils.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/utils/JdbcUtils.java
@@ -4,7 +4,7 @@ import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.jdbc.DatabaseDriver;
-import org.ssssssss.magicapi.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
import java.sql.Connection;
import java.sql.DriverManager;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/utils/MD5Utils.java b/magic-api/src/main/java/org/ssssssss/magicapi/utils/MD5Utils.java
index 7fbe8ae5..2600ff65 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/utils/MD5Utils.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/utils/MD5Utils.java
@@ -1,6 +1,6 @@
package org.ssssssss.magicapi.utils;
-import org.ssssssss.magicapi.exception.MagicAPIException;
+import org.ssssssss.magicapi.core.exception.MagicAPIException;
import java.security.MessageDigest;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/script/ScriptManager.java b/magic-api/src/main/java/org/ssssssss/magicapi/utils/ScriptManager.java
similarity index 96%
rename from magic-api/src/main/java/org/ssssssss/magicapi/script/ScriptManager.java
rename to magic-api/src/main/java/org/ssssssss/magicapi/utils/ScriptManager.java
index d22c3916..2a698f70 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/script/ScriptManager.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/utils/ScriptManager.java
@@ -1,4 +1,4 @@
-package org.ssssssss.magicapi.script;
+package org.ssssssss.magicapi.utils;
import org.ssssssss.script.MagicScript;
import org.ssssssss.script.MagicScriptContext;
diff --git a/magic-api/src/main/java/org/ssssssss/magicapi/utils/WebUtils.java b/magic-api/src/main/java/org/ssssssss/magicapi/utils/WebUtils.java
index faa6f14f..569ca43c 100644
--- a/magic-api/src/main/java/org/ssssssss/magicapi/utils/WebUtils.java
+++ b/magic-api/src/main/java/org/ssssssss/magicapi/utils/WebUtils.java
@@ -3,9 +3,9 @@ package org.ssssssss.magicapi.utils;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
-import org.ssssssss.magicapi.context.RequestContext;
-import org.ssssssss.magicapi.interceptor.MagicUser;
-import org.ssssssss.magicapi.model.Constants;
+import org.ssssssss.magicapi.core.context.RequestContext;
+import org.ssssssss.magicapi.core.config.Constants;
+import org.ssssssss.magicapi.core.context.MagicUser;
import javax.servlet.http.HttpServletRequest;
import java.security.Principal;