Details
-
Type:
Refactoring
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 3.3.0
-
Component/s: Framework Core
-
Labels:None
Description
Currently, CachingController combines two functionalities: pooling of processing component instances and, optionally, caching of the processed data. While the latter is disabled by default, the dependency on ehcache still exists.
The refactoring introduces the following changes:
1. Component life cycle management is implemented at one single place, in the Controller class. Caching, pooling and further customizations are possible using the IProcessingComponentManager interface.
2. As a consequence of the above, IController, SimpleController and CachingController become deprecated. Until removed, SimpleController and CachingController are implemented using delegation to the appropriately configured Controller
3. ControllerFactory is available for creating typical configuration of the Controller.
4. Controller does not alter the processing attributes map provided on the input, so the map can now be immutable. The results are available (as previously) in the returned ProcessingResult.
5. ControllerUtils is package-private now.
6. Heavily refactored unit tests cover all combinations of controller configurations.
Implemented in trunk.