[QFJ-802] mvn message module : cut circular dependancy w/ core + merge sub-modules Created: 16/Jul/14 Updated: 12/Aug/14 |
|
Status: | Open |
Project: | QuickFIX/J |
Component/s: | Build |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | Improvement | Priority: | Minor |
Reporter: | ManuReno | Assignee: | ManuReno |
Resolution: | Unresolved | Votes: | 0 |
Labels: | None |
Attachments: | quickfix.test.acceptance.AcceptanceTestSuite.txt quickfixj-messages-all-jar-before-after.txt quickfixj-messages-all-src-before-after.txt |
Description |
Core module currently depends on resources located in the messages modules (hidden dependancy), while messages module depend on core module (explicit dependancy). The object of the ticket is to check if :
|
Comments |
Comment by Christoph John [ 17/Jul/14 ] |
Hi, we already have QFJ-782 but it does not have very much description. |
Comment by ManuReno [ 20/Jul/14 ] |
I thought about 1 single message module since :
This looks like using the jar quickfixj-msg-fix40.jar would require quickfixj-core.jar (for the Message class) and quickfixj-msg-fix42.jar or later (for the SessionRejectReason class) on its classpath. When trying this I faced a compilation issue : it all the FIX-generated classes couldn't be compiled together in my environment (OOM error during compilation whatever the max heapsize, either on Java6 or Java7 JDK ) when FIX50-SPxx are present. Maybe the message modules should be kept, but while ensuring that the classes used by the generated code are not using back this generated code (namely DataDictionary, DataDictionaryProvider, FieldMap, Message, MessageUtils, SessionID, SessionRejectReasonText classes). |
Comment by ManuReno [ 26/Jul/14 ] |
Difference in the quickfixj-messages-all artifacts before and after the build structure change |
Comment by ManuReno [ 26/Jul/14 ] |
A pull request is available for the change related to this ticket. In attachement of this Jira are listed the differences in the quickfixj-messages-all artifacts that result from the build structure change. It is not possible to use anymore standalone quickfixj-messages-[fix40|fix41|fix42|fix43|fix44].jar files. The mvn artifact structure is now explicitely described in the POMs and the build is also faster. Tests pass on my machine except 2 of them for which it looks there is a race condition (sometimes 4 are failing, sometime 2 or 3...) even after a clean checkout |
Comment by Christoph John [ 07/Aug/14 ] |
Sorry, did not find time to review the pull request yet.
|
Comment by ManuReno [ 12/Aug/14 ] |
Hi Christoph After reviewing all, the potential issue (conflicting field classes) can be worked around if the core module is first on the classpath. |