Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.9.0-incubating
-
None
Description
Currently the Enhancer Services API module contains
- API definitions
- Helper classes (utilities)
- Abstract implementations of defined interfaces
- In-memory ContentItem/Blob implementation
- RdfEntities (simple Java InvocationHander based RDF facade)
- Unit Tests for contentItems
Creating a Test module for the Enhancer will cause a cyclic dependency between the Services API module and the new test module, because the the Test module will require the enhancer services API and the services API will have a test score dependency on the new test module to validate the in-memory ContentItem/Blob implementation.
Because of that the In-memory ContentItem/Blob implementation must be moved to an other module.
Here the suggestion is to create a new "org.apache.stanbol.enhancer.core" module that contains:
- In-memory ContentItem/Blob and ContentItemFactory (see also
STANBOL-573) - File based COntentItem/Blob and ContentItemFactory (see also
STANBOL-574) - EnhancementEngineManagerImpl: currently in its own module, but as this is anyway expected (required) to be available this would fit nicely in a core module
- ChainManagerImpl: same as for the EnhancementEngineManager
In addition the RdfEntities need also to be moved away from the Serivces API module as the unit tests of those component requires an ContentItem implementation. Because RdfEntities are not widely used by the Stanbol Enhancer I would prefer to move this to an own module that is (by default) not included in the Stanbol Launcher configuration.
Finally I would suggest to move the "Abstract implementations" to an different package as the "Helper classes", because helpers are also interesting for users that want to use the Enhancer API while the "Abstract implementations" are only useful for people that want to extend the Stanbol Enhancer (e.g. implementing an Engine or a new kind of ContentItem).