Closed killagu closed 1 month ago
The changes include significant updates across multiple files, primarily focusing on the introduction of multi-instance prototype handling within the application. Key modifications involve the addition of new classes, methods, and properties to manage multi-instance dependencies, as well as updates to existing methods to accommodate these new functionalities. Configuration files for various modules have also been created or updated to support the new structure, enhancing the application's modular capabilities.
File Path | Change Summary |
---|---|
core/metadata/src/impl/LoadUnitMultiInstanceProtoHook.ts |
Converted multiInstanceClazzSet to a static property, modified preCreate method, added setAllClassList and clear static methods. |
core/metadata/src/impl/ModuleLoadUnit.ts |
Introduced MultiInstanceProtoNode class, updated ModuleGraph to handle both ProtoNode and MultiInstanceProtoNode , refactored loadClazz to doLoadClazz . |
core/metadata/src/model/AppGraph.ts |
Added properQualifiers to InstanceClazzMeta , modified dependency handling in AppGraph , added getClazzList method. |
core/metadata/test/AppGraph.test.ts |
Added a test case for multi-instance injection functionality. |
core/metadata/test/LoadUnit.test.ts |
Introduced lifecycle management for LoadUnitMultiInstanceProtoHook , added a test case for multi-instance injection. |
core/metadata/test/fixtures/modules/app-multi-inject-multi/... |
Created multiple new files for modules (App , App2 , BizManager , Secret ), added configuration files (module.yml , package.json ). |
core/types/core-decorator/model/EggMultiInstancePrototypeInfo.ts |
Added properQualifiers property to ObjectInfo interface. |
core/types/core-decorator/model/EggPrototypeInfo.ts |
Added properQualifiers property to EggPrototypeInfo interface. |
plugin/dal/lib/DataSource.ts |
Injected TransactionalAOP into DataSourceDelegate class. |
plugin/tegg/app.ts |
Added call to LoadUnitMultiInstanceProtoHook.clear() in lifecycle management. |
plugin/tegg/lib/EggModuleLoader.ts |
Imported LoadUnitMultiInstanceProtoHook and set class list from appGraph . |
plugin/tegg/test/MultiInstanceInjectMultiInstance.test.ts |
Established tests for dynamic injection of multiple instances. |
plugin/tegg/test/fixtures/apps/app-multi-inject-multi/... |
Created multiple new files for modules and configurations related to multi-instance injection. |
plugin/tegg/test/fixtures/apps/app-multi-inject-multi/config/... |
Introduced configuration files for application settings and plugin management. |
standalone/standalone/src/EggModuleLoader.ts |
Added import for LoadUnitMultiInstanceProtoHook and set class list from appGraph . |
🐇 In the meadow, changes bloom,
Multi-instances make room,
Classes dance and methods play,
New configurations lead the way.
With each hop, the code takes flight,
A rabbit's cheer for code's delight! 🌼
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Checklist
npm test
passesAffected core subsystem(s)
Description of change
Summary by CodeRabbit
New Features
MultiInstanceProtoNode
,BizManager
,Secret
,App
,App2
) to facilitate dependency injection and configuration management.Bug Fixes
Tests
Documentation