Skip to content

Create well-known properties under quickfixj.server.config  #96

Description

@ggershaw

Currently, you need to provide the a string which has all default and session level settings in the quickfixj.server.configString property. This doesn't allow you to leverage boot's ability to override yaml properties and violates DRY.

You would need to provide the same value with slight differences for each env (dev, uat, prod)

In the below proposed approach, DRY is respected and we leverage boot's ability to override the sessions property.

The proposed properties are under
'''
quickfixj:
server:
config:
''''

Proposed properties are:

  1. default property which is a string. The dev would put all the default settings here in 1 single string. This property should be populated in application.yaml and should not be overridden in application-uat.yml etc to respect DRY
  2. sessions property which is a list of the individual session level settings. This property would be overridden in application-uat.yml etc. Session level sessions tend to change for each env so this doesn't violate DRY.
    -- create well known properties for the typical session level quickfixj properties
    -- create a catch all map property named additionalSessionSettings for venue specific settings that we just add to the session and assume the dev knows what they are doing

Proposed example
'''
quickfixj:
server:
config:
default: defaultSettings
sessions:
-
name: -- used in code to identify the session's settings
beginString: FIXT.1.1
targetCompId: Venue1
socketConnectHost: someip
socketConnectPort: 9876
additionalSessionSettings:
setting1: value
setting2: value2

        -
            name: venue2
            beginString: FIXT.1.1
            targetCompId: VenueCompId
            socketConnectHost: someip
            socketConnectPort: 9876

---------------------------------
Additionally,

Initiator or Acceptor is determined by 
quickfixj:
  client:
vs.
quickfixj:
  server:

Don't need it in the configString. Violates DRY and could cause bug/confusion if they have diff values.
    ConnectionType=initiator

-----------------------------

Finally, I believe quickfixjserver property should be renamed quickfixj unless this property is only for the server. I'm not clear on that.

management:
  health:
    quickfixjserver:
      enabled: true

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions