Giter Club home page Giter Club logo

quickfixj-orchestra's Introduction

quickfixj-orchestra

This project contains integrations between FIX Orchestra and QuickFIX.

  • FIX Orchestra is intended to provide a standard and some reference implementation for machine readable rules of engagement between counterparties.

  • QuickFIX is a popular, open-source FIX engine. It has been implemented or ported to several programming languages, including C++, Java, .NET, and golang.

The code is based on prior work by the FTC, see fix-orchestra-quickfix. Accordingly the Apache 2.0 license is applicable.

It was agreed that the code be moved to this repository for the following reasons :

  • to establish curation of the code base and tools for easier customisation of QuickFIX/J for specific Rules of Engagement
  • the code generation is coupled to the QuickFIX/J implementation therefore its "reason to change" is when the QuickFIX/J implementation changes

Modules

quickfixj-orchestra

The parent module is implemented to serve as a parent for potential future QuickFIX/J work based on FIX Orchestra. Two modules from the original FIX Trading Community fix-orchestra-quickfix project are not included in this build as they would introduce a cyclic dependency with the QuickFIX/J project. These modules could be implemented in a separate repository in the future but use quickfixj-orchestra as a parent pom.

quickfixj-from-fix-orchestra-repository

This module provides tools to generate QuickFIX artefacts from an Orchestra repository file.

This includes :

  • QuickFIX Dictionary generation that can be consumed by the C++, Java and .NET versions. Although the QuickFIX data dictionary is not as richly featured as Orchestra, it is hoped that this utility will help with Orchestra adoption.
  • Generation of Field and Message classes for QuickFIX/J directly from an Orchestra file.
  • Mvn plugins to facilitate the above

References

Orchestra specifications specifications for Orchestra in GitHub.

Orchestrations public Orchestra files for service offerings

FIX Standards normative standards documents

License

© Copyright 2016-2020 FIX Protocol Limited

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Participation

Issues may be entered here in GitHub or in a discussion forum on the FIX Trading Community site. In GitHub, anyone may enter issues or pull requests for the next release candidate.

Data Files

Data files in this project under test/resources are strictly for testing and to serve as examples for format. They are non-normative for FIX standards and may not be up to date.

quickfixj-orchestra's People

Contributors

chrjohn avatar david-gibbs-ig avatar donmendelson avatar jacobnorthey-itiviti avatar onurkaraduman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

quickfixj-orchestra's Issues

Errors with generated code for `UTCDateOnly`

          > I have errors like this when building with `full-fix-latest`.

ComplexEventStartDate.java:[22,16] error: incompatible types: String cannot be converted to LocalDate

Any idea what might be wrong? Was this related to the changes you did here: quickfix-j/quickfixj-orchestra#4 ?

@david-gibbs-ig , I think I know where this error comes from. All fields that have a type of UTCDateOnly are affected by this. The reason seems to be these lines of code that I think were added by you. Do you still recall why we need an extra constructor with String?

// added for compatibility with existing QFJ tests
writer.write(String.format("%n%spublic %s(String data) {%n%ssuper(%d, data);%n%s}%n", CodeGeneratorUtil.indent(1), className,
CodeGeneratorUtil.indent(2), fieldId, CodeGeneratorUtil.indent(1)));

You did some (related ?) changes with this PR: #4
I agree that LocalMktTime and LocalMktDate shouldn't be handled by LocalDate/Time since the time zone might not be known. But IMHO UTCDateOnly could be handled by a LocalDate with time zone UTC.

What do you think?

Originally posted by @chrjohn in quickfix-j/quickfixj#460 (comment)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.