Move tests/implementations from the Enhancer Services API module to avoid 
cyclic dependencies
---------------------------------------------------------------------------------------------

                 Key: STANBOL-576
                 URL: https://issues.apache.org/jira/browse/STANBOL-576
             Project: Stanbol
          Issue Type: Sub-task
            Reporter: Rupert Westenthaler
            Assignee: Rupert Westenthaler


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).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to