[ 
https://issues.apache.org/jira/browse/OAK-3862?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15093860#comment-15093860
 ] 

Francesco Mari commented on OAK-3862:
-------------------------------------

bq. Package all test in oak-core and select those integration test to also run 
in oak-segment with just SegmentFixture. Later we can do same when oak-document 
is carved out. Would that work?

I thought about this suggestion, but I find this solution sub-optimal. Suppose 
you have an {{oak-it}} module containing every integration test in Oak: this 
module needs only to know which implementations to run the tests against. On 
the other hand, suppose we apply your solution: {{oak-segment}} would need to 
have a knowledge about every integration test in {{oak-core}}, with the 
potential of missing some tests if we don't keep this knowledge up to date.

Moreover, I fear that your solution would make {{oak-segment}} a second-class 
citizen: since {{oak-core}} comes before {{oak-segment}} in the Maven build 
plan, no integration test for {{oak-segment}} will be ever run if some 
integration test fails in {{oak-core}}. With a separate {{oak-it}} module, 
instead, integration tests will run simultaneously for every known backend, 
giving a comprehensive report about the status of every known implementation.

> Move integration tests in a different Maven module
> --------------------------------------------------
>
>                 Key: OAK-3862
>                 URL: https://issues.apache.org/jira/browse/OAK-3862
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>            Reporter: Francesco Mari
>            Assignee: Francesco Mari
>             Fix For: 1.4
>
>
> While moving the Segment Store and related packages into its own bundle, I 
> figured out that integration tests contained in {{oak-core}} contribute to a 
> cyclic dependency between the (new) {{oak-segment}} bundle and {{oak-core}}.
> The dependency is due to the usage of {{NodeStoreFixture}} to instantiate 
> different implementations of {{NodeStore}} in a semi-transparent way.
> Tests depending on {{NodeStoreFixture}} are most likely integration tests. A 
> clean solution to this problem would be to move those integration tests into 
> a new Maven module, referencing the API and implementation modules as needed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to