diff --git a/build.gradle b/build.gradle index f181fbe..026906a 100644 --- a/build.gradle +++ b/build.gradle @@ -21,8 +21,8 @@ allprojects { subprojects { ext { - version '0.7.1' - gaea_version = '1.1.0' + version '0.9.0' + gaea_version = '1.2.0' spring_version = "2.7.0" } diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusBeans.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusBeans.kt index 9742d30..51a7a56 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusBeans.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/config/ZeusBeans.kt @@ -1,15 +1,37 @@ package com.synebula.zeus.app.config import com.google.gson.Gson +import com.synebula.gaea.app.component.security.WebSecurity import com.synebula.gaea.data.serialization.json.IJsonSerializer +import com.synebula.gaea.domain.repository.IRepositoryFactory +import com.synebula.gaea.mongodb.query.MongodbQueryFactory +import com.synebula.gaea.mongodb.repository.MongodbRepositoryFactory +import com.synebula.gaea.query.IQueryFactory import org.springframework.context.annotation.Bean import org.springframework.context.annotation.ComponentScan +import org.springframework.context.annotation.ComponentScan.Filter import org.springframework.context.annotation.Configuration +import org.springframework.context.annotation.FilterType +import org.springframework.data.mongodb.core.MongoTemplate @Configuration -@ComponentScan(basePackages = ["com.synebula.gaea.app.component"]) +@ComponentScan( + basePackages = ["com.synebula.gaea.app.component"], + excludeFilters = [Filter(type = FilterType.ASSIGNABLE_TYPE, classes = [WebSecurity::class])] +) class ZeusBeans { + + @Bean + fun repoFactory(template: MongoTemplate): IRepositoryFactory { + return MongodbRepositoryFactory(template) + } + + @Bean + fun queryFactory(template: MongoTemplate): IQueryFactory { + return MongodbQueryFactory(template) + } + @Bean fun gson(): Gson = Gson() diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt index 188f84f..5f4a327 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/GroupApp.kt @@ -2,9 +2,9 @@ package com.synebula.zeus.app.controller.rbac import com.synebula.gaea.app.Application import com.synebula.gaea.log.ILogger +import com.synebula.gaea.query.IQueryFactory import com.synebula.zeus.domain.service.cmd.rbac.GroupCmd import com.synebula.zeus.domain.service.contr.rbac.IGroupService -import com.synebula.zeus.query.contr.IGroupQuery import com.synebula.zeus.query.view.GroupView import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RestController @RequestMapping("/groups") class GroupApp( service: IGroupService, - query: IGroupQuery, + factory: IQueryFactory, logger: ILogger ) : Application( - "分组信息", service, query, logger + "分组信息", service, factory.createQuery(GroupView::class.java), logger ) \ No newline at end of file diff --git a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/RoleApp.kt b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/RoleApp.kt index b6dfa65..4198431 100644 --- a/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/RoleApp.kt +++ b/src/zeus.app/src/main/kotlin/com/synebula/zeus/app/controller/rbac/RoleApp.kt @@ -2,9 +2,9 @@ package com.synebula.zeus.app.controller.rbac import com.synebula.gaea.app.Application import com.synebula.gaea.log.ILogger +import com.synebula.gaea.query.IQueryFactory import com.synebula.zeus.domain.service.cmd.rbac.RoleCmd import com.synebula.zeus.domain.service.contr.rbac.IRoleService -import com.synebula.zeus.query.contr.IRoleQuery import com.synebula.zeus.query.view.RoleView import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RestController @@ -13,8 +13,8 @@ import org.springframework.web.bind.annotation.RestController @RequestMapping("/roles") class RoleApp( service: IRoleService, - query: IRoleQuery, + factory: IQueryFactory, logger: ILogger ) : Application( - "用户信息", service, query, logger + "用户信息", service, factory.createQuery(RoleView::class.java), logger ) \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/IGroupRepository.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/IGroupRepository.kt deleted file mode 100644 index 209eda5..0000000 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/IGroupRepository.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.synebula.zeus.domain.repository.rbac - -import com.synebula.gaea.domain.repository.IRepository -import com.synebula.zeus.domain.model.rbac.Group - -interface IGroupRepository : IRepository { -} \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/IRoleRepository.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/IRoleRepository.kt deleted file mode 100644 index b05f633..0000000 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/IRoleRepository.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.synebula.zeus.domain.repository.rbac - -import com.synebula.gaea.domain.repository.IRepository -import com.synebula.zeus.domain.model.rbac.Role - -interface IRoleRepository : IRepository { -} \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/IInterfaceRepository.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/IInterfaceRepository.kt deleted file mode 100644 index bbda35f..0000000 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/IInterfaceRepository.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.synebula.zeus.domain.repository.rbac.resource - -import com.synebula.gaea.domain.repository.IRepository -import com.synebula.zeus.domain.model.rbac.resource.Interface - -interface IInterfaceRepository : IRepository { -} \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/IPageRepository.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/IPageRepository.kt deleted file mode 100644 index a89bd0d..0000000 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/IPageRepository.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.synebula.zeus.domain.repository.rbac.resource - -import com.synebula.gaea.domain.repository.IRepository -import com.synebula.zeus.domain.model.rbac.resource.Page - -interface IPageRepository : IRepository { -} \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/ISystemRepository.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/ISystemRepository.kt deleted file mode 100644 index 42bf4ab..0000000 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/repository/rbac/resource/ISystemRepository.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.synebula.zeus.domain.repository.rbac.resource - -import com.synebula.gaea.domain.repository.IRepository -import com.synebula.zeus.domain.model.rbac.resource.System - -interface ISystemRepository : IRepository { -} \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IAuthorityService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IAuthorityService.kt index 8c7e0bd..d9b698e 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IAuthorityService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IAuthorityService.kt @@ -1,7 +1,6 @@ package com.synebula.zeus.domain.service.contr.rbac import com.synebula.gaea.domain.service.IService -import com.synebula.zeus.domain.model.rbac.Authority import com.synebula.zeus.domain.service.cmd.rbac.AuthorityBatchAddCmd import com.synebula.zeus.env.ResourceType diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IGroupService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IGroupService.kt index 5a92a45..949f01f 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IGroupService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IGroupService.kt @@ -1,9 +1,8 @@ package com.synebula.zeus.domain.service.contr.rbac +import com.synebula.gaea.domain.service.Domain import com.synebula.gaea.domain.service.IService -import com.synebula.gaea.domain.service.ServiceDependency import com.synebula.zeus.domain.model.rbac.Group -import com.synebula.zeus.domain.repository.rbac.IGroupRepository -@ServiceDependency(clazz = Group::class, repo = IGroupRepository::class) +@Domain(clazz = Group::class) interface IGroupService : IService \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IRoleService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IRoleService.kt index b5726ed..6dc0960 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IRoleService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/IRoleService.kt @@ -1,9 +1,8 @@ package com.synebula.zeus.domain.service.contr.rbac +import com.synebula.gaea.domain.service.Domain import com.synebula.gaea.domain.service.IService -import com.synebula.gaea.domain.service.ServiceDependency import com.synebula.zeus.domain.model.rbac.Role -import com.synebula.zeus.domain.repository.rbac.IRoleRepository -@ServiceDependency(clazz = Role::class, repo = IRoleRepository::class) +@Domain(clazz = Role::class) interface IRoleService : IService \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IInterfaceService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IInterfaceService.kt index f272d3d..9b713d8 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IInterfaceService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IInterfaceService.kt @@ -1,9 +1,8 @@ package com.synebula.zeus.domain.service.contr.rbac.resource +import com.synebula.gaea.domain.service.Domain import com.synebula.gaea.domain.service.IService -import com.synebula.gaea.domain.service.ServiceDependency import com.synebula.zeus.domain.model.rbac.resource.Interface -import com.synebula.zeus.domain.repository.rbac.resource.IInterfaceRepository -@ServiceDependency(clazz = Interface::class, repo = IInterfaceRepository::class) +@Domain(clazz = Interface::class) interface IInterfaceService : IService \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IPageService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IPageService.kt index efb5bbc..5cb9bf2 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IPageService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/IPageService.kt @@ -1,9 +1,8 @@ package com.synebula.zeus.domain.service.contr.rbac.resource +import com.synebula.gaea.domain.service.Domain import com.synebula.gaea.domain.service.IService -import com.synebula.gaea.domain.service.ServiceDependency import com.synebula.zeus.domain.model.rbac.resource.Page -import com.synebula.zeus.domain.repository.rbac.resource.IPageRepository -@ServiceDependency(clazz = Page::class, repo = IPageRepository::class) +@Domain(clazz = Page::class) interface IPageService : IService \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/ISystemService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/ISystemService.kt index d3ca2ad..7f696d1 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/ISystemService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/contr/rbac/resource/ISystemService.kt @@ -1,9 +1,8 @@ package com.synebula.zeus.domain.service.contr.rbac.resource +import com.synebula.gaea.domain.service.Domain import com.synebula.gaea.domain.service.IService -import com.synebula.gaea.domain.service.ServiceDependency import com.synebula.zeus.domain.model.rbac.resource.System -import com.synebula.zeus.domain.repository.rbac.resource.ISystemRepository -@ServiceDependency(clazz = System::class, repo = ISystemRepository::class) +@Domain(clazz = System::class) interface ISystemService : IService \ No newline at end of file diff --git a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt index b6b1f1a..835b33e 100644 --- a/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt +++ b/src/zeus.domain/src/main/kotlin/com/synebula/zeus/domain/service/impl/rbac/UserService.kt @@ -3,22 +3,22 @@ package com.synebula.zeus.domain.service.impl.rbac import com.synebula.gaea.data.message.DataMessage import com.synebula.gaea.data.message.Status import com.synebula.gaea.data.serialization.IObjectMapper +import com.synebula.gaea.domain.repository.IRepositoryFactory import com.synebula.gaea.domain.service.ICommand import com.synebula.gaea.domain.service.Service import com.synebula.gaea.ext.toMd5 import com.synebula.gaea.log.ILogger import com.synebula.zeus.domain.model.rbac.User -import com.synebula.zeus.domain.repository.rbac.IUserRepository import com.synebula.zeus.domain.service.component.IUserNotifier import com.synebula.zeus.domain.service.contr.rbac.IUserService import java.util.* class UserService( - repository: IUserRepository, + factory: IRepositoryFactory, mapper: IObjectMapper, var userNotifier: IUserNotifier?, var logger: ILogger -) : Service(User::class.java, repository, mapper), IUserService { +) : Service(User::class.java, factory.createRepository(User::class.java), mapper), IUserService { // init { // groupService.addBeforeRemoveListener(this.clazz.name) { id -> diff --git a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/contr/IGroupQuery.kt b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/contr/IGroupQuery.kt deleted file mode 100644 index 7afc630..0000000 --- a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/contr/IGroupQuery.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.synebula.zeus.query.contr - -import com.synebula.gaea.query.IQuery -import com.synebula.zeus.query.view.GroupView - -interface IGroupQuery : IQuery \ No newline at end of file diff --git a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/contr/IRoleQuery.kt b/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/contr/IRoleQuery.kt deleted file mode 100644 index bf85b45..0000000 --- a/src/zeus.query/src/main/kotlin/com/synebula/zeus/query/contr/IRoleQuery.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.synebula.zeus.query.contr - -import com.synebula.gaea.query.IQuery -import com.synebula.zeus.query.view.RoleView - -interface IRoleQuery : IQuery \ No newline at end of file