quickfix-j / quickfixj

QuickFIX/J is a full featured messaging engine for the FIX protocol. - This is the official project repository.
http://www.quickfixj.org
Other
964 stars 617 forks source link

Support for FIX Latest #317

Closed david-gibbs-ig closed 11 months ago

david-gibbs-ig commented 4 years ago

It would be good for QFJ to support FIX Latest from FTC. If this is done by means of a dependency on the published FIX Latest Repository (Orchestration).

I would suggest that FIXLatest be added as an additional module to preserve backward compatibility of the existing FIX50sp2 module.

This would also provide a ready means for users to depend on their customized repositories instead of the base-line FIX Standard.

The FIX Latest repo includes some extension packs that break the QFJ build so code generated for messages in the new FIX50sp2Latest needs to be slightly different. The problem is where components and fields have the same name. As Java does not overload based on return type the method name for components must change. For backward compatibility this should not be applied to messages for prior versions of the standard.

I will provide an example build. See the branch here : https://github.com/david-gibbs-ig/quickfixj/tree/fix-orchestra This above is a work in progress,

david-gibbs-ig commented 4 years ago

To see how this might work, you can check this branch https://github.com/david-gibbs-ig/quickfixj/tree/fix-orchestra. I have added some readmes in an attempt to explain the changes. I can't get it to build on Travis as the "travis_wait" directive does not seem to have any effect and the build times out.

david-gibbs-ig commented 4 years ago

This link provided for context : https://www.fixtrading.org/fix-online-specification-updated-to-fix-latest/

david-gibbs-ig commented 4 years ago

Hi the build for the branch https://github.com/david-gibbs-ig/quickfixj/tree/fix-orchestra now works for Java 8, it just will never work in Travis because it takes 1.5 hours. Are you in the process of migrating to git actions ?

JThoennes commented 3 years ago

@chrjohn Do you have any plans to release this? Cheers, Jörg

chrjohn commented 3 years ago

Not in the next version, will be 3.0.0 most probably.

JThoennes commented 3 years ago

@chrjohn

Not in the next version, will be 3.0.0 most probably. Do you have any concrete plans for version 3? What it will contain and when you expect it to arrive?

chrjohn commented 3 years ago

No concrete plans at the moment. Currently trying to get 2.2.1 (as I think about it, it should probably be called 2.3.0) out of the door.

What 3.0.0 will contain: up to now this: https://github.com/quickfix-j/quickfixj/milestone/10 It is loosely planned that 3.0.0 will also contain support for FIX Orchestra as far as validation is concerned, i.e. directly validate against an Orchestra file.

chrjohn commented 3 years ago

Hi @david-gibbs-ig , I want to take a look at this in the near future. What do you think about building the FIXLatest classes and dictionary in an external module outside of QFJ and pull it in as a dependency? I think we realized here https://github.com/quickfix-j/quickfixj/pull/333 that the build with the QFJ code generator is too slow. Thanks, Chris.

david-gibbs-ig commented 3 years ago

Hi Christophe,

Apologies I have been working flat out for weeks, I think that the way ahead may be to use the FTC code generation which is faster. We can start with doing this for FIX latest only to make sure it is OK. I got part way there but was blocked by a problem, I will revisit this and reply to you soon.

DAVID GIBBS Technology Architect

IG, Cannon Bridge House 25 Dowgate Hill, London, EC4R 2YA D: +442075730697 | T: +442078960011 www.ig.com

45 YEARS OF TRADING INDICES | SHARES | FOREX COMMODITIES From: Christoph John @.> Sent: 12 April 2021 11:33 To: quickfix-j/quickfixj @.> Cc: David Gibbs @.>; Mention @.> Subject: Re: [quickfix-j/quickfixj] Support for FIX Latest (#317)

[EXTERNAL] This message originated outside of IG.

Hi @david-gibbs-ighttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fdavid-gibbs-ig&data=04%7C01%7CDavid.Gibbs%40ig.com%7C5ea2e1e981064d97237508d8fd9e58ac%7C4b4cca9cedaf42f38e219070c5d9d76b%7C0%7C0%7C637538203823379882%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=HRqUxFLVbF8uCuHX4NFGcwbd2AhT8VEeO1pDPLVCGdM%3D&reserved=0 , I want to take a look at this in the near future. What do you think about building the FIXLatest classes and dictionary in an external module outside of QFJ and pull it in as a dependency? I think we realized here #333https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fquickfix-j%2Fquickfixj%2Fpull%2F333&data=04%7C01%7CDavid.Gibbs%40ig.com%7C5ea2e1e981064d97237508d8fd9e58ac%7C4b4cca9cedaf42f38e219070c5d9d76b%7C0%7C0%7C637538203823389878%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=OknNZ5EsHdl%2FuoFBQZQP%2BFf%2F6UBwrua6ReyFKrYyOrw%3D&reserved=0 that the build with the QFJ code generator is too slow. Thanks, Chris.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fquickfix-j%2Fquickfixj%2Fissues%2F317%23issuecomment-817696319&data=04%7C01%7CDavid.Gibbs%40ig.com%7C5ea2e1e981064d97237508d8fd9e58ac%7C4b4cca9cedaf42f38e219070c5d9d76b%7C0%7C0%7C637538203823389878%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=qfxjNWdyya95fOLaPqxIObPQPxbbbI0kKqBBH3%2FfmMs%3D&reserved=0, or unsubscribehttps://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHCIBNTHLOM6YDXEEZCN2O3TILD5LANCNFSM4SMUYZOA&data=04%7C01%7CDavid.Gibbs%40ig.com%7C5ea2e1e981064d97237508d8fd9e58ac%7C4b4cca9cedaf42f38e219070c5d9d76b%7C0%7C0%7C637538203823399873%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=5dQigZm7US%2FlqJKTX6f7zfJaTj0esSGUwhFTKshAQIA%3D&reserved=0.

The information contained in this email is strictly confidential and for the use of the addressee only, unless otherwise indicated. If you are not the intended recipient, please do not read, copy, use or disclose to others this message or any attachment. Please also notify the sender by replying to this email or by telephone (+44 (0)20 7896 0011) and then delete the email and any copies of it. Opinions, conclusions (etc) that do not relate to the official business of this company shall be understood as neither given nor endorsed by it. IG Group Holdings plc is a company registered in England and Wales under number 04677092. VAT registration number 761 2978 07. Registered Office: Cannon Bridge House, 25 Dowgate Hill, London EC4R 2YA. Listed on the London Stock Exchange. Its subsidiaries IG Markets Limited and IG Index Limited are authorised and regulated by the Financial Conduct Authority (IG Markets Limited FCA registration number 195355 and IG Index Limited FCA registration number 114059). IG Europe GmbH is authorised and regulated by the Bundesanstalt für Finanzdienstleistungsaufsicht (BaFin registration number 148759) and the Deutsche Bundesbank. The Swedish branches of IG Markets Ltd and IG Europe GmbH are regulated by the Finansinspektionen.-

david-gibbs-ig commented 2 years ago

Please see https://github.com/quickfix-j/quickfixj/pull/457.