From 0bb08c94f01d50087801d013476ae1ed7b82274f Mon Sep 17 00:00:00 2001 From: Michail Prusakov Date: Thu, 14 May 2020 12:13:37 +0100 Subject: [PATCH] Fixing the build and adding an ability to pass arbitrary parameters to quickfix --- .gitignore | 3 +++ build.gradle | 2 +- .../java/org/fix4j/test/DefaultContextFactory.java | 13 ++++++++++++- fix4j-assert-fixspec-50sp2/build.gradle | 4 +++- .../integration/quickfix/QuickFixProperties.java | 3 ++- .../quickfix/QuickFixTestSessionFactory.java | 13 +++++++++++-- 6 files changed, 32 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 06ef99b..682dd02 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ **/target *.iml **/.idea/* +**/build +*/src/generated +.gradle \ No newline at end of file diff --git a/build.gradle b/build.gradle index 07b8ed6..dee41d2 100644 --- a/build.gradle +++ b/build.gradle @@ -31,7 +31,7 @@ subprojects { repositories { mavenLocal() - maven { url "http://repo.maven.apache.org/maven2" } + maven { url "https://repo.maven.apache.org/maven2" } maven { url "http://repo.marketcetera.org/maven" } } diff --git a/fix4j-assert-all/src/main/java/org/fix4j/test/DefaultContextFactory.java b/fix4j-assert-all/src/main/java/org/fix4j/test/DefaultContextFactory.java index 853e5c8..6044fb7 100644 --- a/fix4j-assert-all/src/main/java/org/fix4j/test/DefaultContextFactory.java +++ b/fix4j-assert-all/src/main/java/org/fix4j/test/DefaultContextFactory.java @@ -7,6 +7,7 @@ import org.fix4j.test.properties.ApplicationProperties; import org.fix4j.test.session.AbstractContextFactory; +import java.util.Collections; import java.util.Map; import java.util.Properties; @@ -17,12 +18,22 @@ */ public class DefaultContextFactory extends AbstractContextFactory { + private final ApplicationProperties properties; + private final Map additionalQuickFixProperties; + public DefaultContextFactory() { + this(ApplicationProperties.Singleton.instance(), Collections.emptyMap()); + } + + public DefaultContextFactory(final ApplicationProperties properties, + final Map additionalQuickFixProperties) { super(FixSpec.INSTANCE); + this.properties = properties; + this.additionalQuickFixProperties = additionalQuickFixProperties; } @Override protected FixEngineSessionFactory createFixEngineSessionFactory(final FixSpecification fixSpecification) { - return new QuickFixTestSessionFactory(fixSpecification); + return new QuickFixTestSessionFactory(fixSpecification, properties, additionalQuickFixProperties); } } diff --git a/fix4j-assert-fixspec-50sp2/build.gradle b/fix4j-assert-fixspec-50sp2/build.gradle index 6ada514..8876e21 100644 --- a/fix4j-assert-fixspec-50sp2/build.gradle +++ b/fix4j-assert-fixspec-50sp2/build.gradle @@ -22,8 +22,10 @@ task genMain( type: JavaExec ) { classpath = sourceSets.codegen.runtimeClasspath args = ['/FIX50SP2.xml', 'org.fix4j.spec.fix50sp2'] final File javaWorkingDir = new File("${projectDir}/src/generated/java/org/fix4j/spec/fix50sp2/") - javaWorkingDir.mkdirs() workingDir = javaWorkingDir.absolutePath + doFirst { + javaWorkingDir.mkdirs() + } } clean.doFirst { diff --git a/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixProperties.java b/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixProperties.java index 8867ae3..f208daa 100644 --- a/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixProperties.java +++ b/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixProperties.java @@ -20,7 +20,8 @@ public enum QuickFixProperties implements Keyable { ALLOW_UNKNOWN_MSG_FIELDS("fix4j.quickfix.allow.unknown.msg.fields"), VALIDATE_FIELDS_OUT_OF_ORDER("fix4j.quickfix.validate.fields.out.of.order"), VALIDATE_FIELDS_HAVE_VALUES("fix4j.quickfix.validate.fields.have.values"), - VALIDATE_USER_DEFINED_FIELDS("fix4j.quickfix.validate.user.defined.fields"); + VALIDATE_USER_DEFINED_FIELDS("fix4j.quickfix.validate.user.defined.fields"), + RESET_ON_LOGON("fix4j.quickfix.reset.on.logon"); private final String key; diff --git a/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixTestSessionFactory.java b/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixTestSessionFactory.java index 80e0451..e8373b5 100644 --- a/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixTestSessionFactory.java +++ b/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/QuickFixTestSessionFactory.java @@ -17,6 +17,8 @@ import quickfix.SocketAcceptor; import quickfix.SocketInitiator; +import java.util.Map; + /** * User: ben * Date: 20/08/2014 @@ -24,9 +26,15 @@ */ public class QuickFixTestSessionFactory implements FixEngineSessionFactory { private final FixSpecification fixSpecification; + private final ApplicationProperties properties; + private final Map additionalQuickFixProperties; - public QuickFixTestSessionFactory(final FixSpecification fixSpecification) { + public QuickFixTestSessionFactory(final FixSpecification fixSpecification, + final ApplicationProperties properties, + final Map additionalQuickFixProperties) { this.fixSpecification = fixSpecification; + this.properties = properties; + this.additionalQuickFixProperties = additionalQuickFixProperties; } @Override @@ -39,7 +47,6 @@ public FixEngineSession createSession(final FixSessionId sessionId, final FixCon private Connector create(final SessionID quickfixSessionId, final QuickFixApplication app, final FixConnectionMode fixConnectionMode){ try { - final ApplicationProperties properties = ApplicationProperties.Singleton.instance(); final SessionSettings settings = new SessionSettings(); settings.setString("ConnectionType", (fixConnectionMode == FixConnectionMode.INITIATOR ? "initiator": "acceptor")); settings.setString("SenderCompID", quickfixSessionId.getSenderCompID()); @@ -55,6 +62,8 @@ private Connector create(final SessionID quickfixSessionId, final QuickFixApplic settings.setString("ValidateFieldsOutOfOrder", properties.getAsString(QuickFixProperties.VALIDATE_FIELDS_OUT_OF_ORDER, "N")); settings.setString("ValidateFieldsHaveValues", properties.getAsString(QuickFixProperties.VALIDATE_FIELDS_HAVE_VALUES, "N")); settings.setString("ValidateUserDefinedFields", properties.getAsString(QuickFixProperties.VALIDATE_USER_DEFINED_FIELDS, "N")); + settings.setString("ResetOnLogon", properties.getAsString(QuickFixProperties.RESET_ON_LOGON, "N")); + settings.set(additionalQuickFixProperties); if(fixConnectionMode == FixConnectionMode.INITIATOR) { settings.setString(quickfixSessionId, "SocketConnectPort", properties.getAsString(QuickFixProperties.SOCKET_CONNECT_PORT, "9880"));