Add InMemory DAO package to turbo-core; document InMemory vs Spring-backed DAO differences - #88
Draft
liangchenhui with Copilot wants to merge 9 commits into
Draft
Add InMemory DAO package to turbo-core; document InMemory vs Spring-backed DAO differences#88liangchenhui with Copilot wants to merge 9 commits into
liangchenhui with Copilot wants to merge 9 commits into
Conversation
- Create BeanUtil utility class to replace org.springframework.beans.BeanUtils - Create TurboBeanFactory interface to replace DefaultListableBeanFactory - Remove @service, @component, @repository stereotypes from all engine business classes - Replace Spring BeanUtils.copyProperties() with BeanUtil.copyProperties() throughout - Replace ApplicationContext + InitializingBean in ExclusiveGatewayExecutor with @resource List<HookService> + @PostConstruct - Replace org.springframework.util.StringUtils with commons-lang3 in PluginSqlExecutorUtil - Remove unused org.springframework.util.Assert import from CallActivityValidator - Update AbstractPluginManager, DefaultPluginManager, BasePlugin to use TurboBeanFactory - Update PluginConfig with Spring adapter (TurboBeanFactory lambda over DefaultListableBeanFactory) - Add explicit @bean definitions in TurboEngineConfig for all decoupled beans - Fix parallel-plugin: remove Spring stereotypes from executors/validators/services - Replace AsynTaskExecutor Spring ThreadPoolTaskExecutor with standard ThreadPoolExecutor - Add explicit @bean definitions in ParallelPluginConfig for all decoupled beans - Remove redundant @MapperScan from test application classes Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
- AsynTaskExecutor: use field values in initialize(), add Javadoc to queueCapacity setter, fix thread naming, implement virtual thread support via reflection - PluginConfig: try TurboBeanFactory constructor first, fall back to no-arg constructor for backwards compatibility with custom PluginManager implementations Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Decouple turbo process engine from Spring framework
Decouple Turbo flow engine from Spring framework
Mar 3, 2026
Copilot stopped work on behalf of
liangchenhui due to an error
March 3, 2026 10:09
…ing deps as optional, remove Spring imports from non-config classes Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
Copilot
AI
changed the title
Decouple Turbo flow engine from Spring framework
Complete Spring decoupling: remove BOM import and make Spring deps optional
Mar 3, 2026
…plement DAO interfaces Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
…, and impact docs Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
Copilot
AI
changed the title
Complete Spring decoupling: remove BOM import and make Spring deps optional
Decouple Turbo engine from Spring — introduce turbo-core, turbo-spring, turbo-spring-boot-starter
Mar 4, 2026
…guide Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
Copilot
AI
changed the title
Decouple Turbo engine from Spring — introduce turbo-core, turbo-spring, turbo-spring-boot-starter
Decouple Turbo engine from Spring; add turbo-core standalone module + BeanUtil primitive/boxed fix
Mar 4, 2026
…y vs Spring in docs Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
Copilot
AI
changed the title
Decouple Turbo engine from Spring; add turbo-core standalone module + BeanUtil primitive/boxed fix
turbo-core: non-Spring standalone engine usage with InMemory DAOs + BeanUtil primitive/boxed fix
Mar 5, 2026
…session-record.md) Co-authored-by: liangchenhui <30490037+liangchenhui@users.noreply.github.com>
Copilot
AI
changed the title
turbo-core: non-Spring standalone engine usage with InMemory DAOs + BeanUtil primitive/boxed fix
Add InMemory DAO implementations to turbo-core; document InMemory vs Spring-backed DAO differences
Mar 6, 2026
Copilot
AI
changed the title
Add InMemory DAO implementations to turbo-core; document InMemory vs Spring-backed DAO differences
Add InMemory DAO package to turbo-core; document InMemory vs Spring-backed DAO differences
Mar 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The 7 in-memory DAO implementations existed only as private inner classes inside
TurboEngineStandaloneTest, making them unreusable. Users encounteringInMemoryFlowDefinitionDAOalso had no explanation of what it is or how it differs from the Spring/MyBatis-backed version.Changes
turbo-core/.../dao/memory/package — extracts all 7InMemoryXxxDAOclasses into proper production code; each class carries Javadoc with per-method SQL equivalents and a comparison table vs. the Spring counterpart;package-info.javaprovides a package-level overviewTurboEngineStandaloneTest— replaces ~260 lines of inline inner-class DAO stubs with imports from the new packagedocs/standalone-usage.md— adds a dedicated section answering "what is InMemoryDAO and how does it differ from the Spring version": 7-dimension comparison table, side-by-sideinsert/update/selectcode, and a decision guide (Spring / InMemory / custom JDBC)💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.