diff --git a/.rultor.yml b/.rultor.yml deleted file mode 100644 index 7444c70..0000000 --- a/.rultor.yml +++ /dev/null @@ -1,9 +0,0 @@ -decrypt: - settings.xml: "repo/settings.xml.asc" - pubring.gpg: "repo/pubring.gpg.asc" - secring.gpg: "repo/secring.gpg.asc" -release: - script: | - mvn versions:set "-DnewVersion=${tag}" - git commit -am "${tag}" - mvn clean deploy -Psonatype --settings /home/r/settings.xml \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..c9739cc --- /dev/null +++ b/build.gradle @@ -0,0 +1,105 @@ +allprojects { + apply plugin: 'maven' + apply plugin: 'groovy' + apply plugin: 'maven' + apply plugin: 'signing' + + group = 'org.fix4j' + version = '1.4' +} + +subprojects { + apply plugin: 'java' + sourceCompatibility = 1.7 + targetCompatibility = 1.7 + tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' + } + + tasks.withType(Javadoc) { + options.addStringOption('Xdoclint:none', '-quiet') + } + + repositories { + mavenLocal() + + maven { url "http://repo.maven.apache.org/maven2" } + maven { url "http://repo.marketcetera.org/maven" } + } + + dependencies { + compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.3.0' + compile group: 'org.slf4j', name: 'slf4j-api', version: '1.3.0' + testCompile group: 'junit', name: 'junit', version: '4.11' + testCompile "org.spockframework:spock-core:1.0-groovy-2.4" + // dependencies for using Spock + testCompile "org.hamcrest:hamcrest-core:1.3" // only necessary if Hamcrest matchers are used + testRuntime "cglib:cglib-nodep:3.1" // allows mocking of classes (in addition to interfaces) + testRuntime "org.objenesis:objenesis:2.1" // allows mocking of classes without default constructor (together with CGLIB) + + } + + task javadocJar(type: Jar) { + classifier = 'javadoc' + from javadoc + } + + task sourcesJar(type: Jar) { + classifier = 'sources' + from sourceSets.main.allSource + } + + artifacts { + archives javadocJar, sourcesJar + } + + signing { + sign configurations.archives + } + + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") { + authentication(userName: ossrhUsername, password: ossrhPassword) + } + + pom.project { + name 'Fix4j Assert' + packaging 'jar' + artifactId 'fix4j-assert' + description 'fix4j-assert is a library to assist in testing of applications using FIX protocol' + url 'http://www.fix4j.org' + + scm { + connection 'scm:git:git://github.com/tools4j/groovy-tables.git' + developerConnection 'scm:git:git@github.com:tools4j/fix4j-assert.git' + url 'https://github.com/tools4j/fix4j-assert' + } + + licenses { + license { + name 'GNU General Public License (GPL)' + url 'http://www.gnu.org/licenses/gpl.txt' + } + } + + developers { + developer { + id 'ben' + name 'Ben Warner' + email 'bjwarner@gmail.com' + } + } + } + } + } + } +} + diff --git a/dist/1.4/fix4j-assert-acceptance-1.4.jar b/dist/1.4/fix4j-assert-acceptance-1.4.jar new file mode 100644 index 0000000..faffd21 Binary files /dev/null and b/dist/1.4/fix4j-assert-acceptance-1.4.jar differ diff --git a/dist/1.4/fix4j-assert-all-1.4.jar b/dist/1.4/fix4j-assert-all-1.4.jar new file mode 100644 index 0000000..4bb3665 Binary files /dev/null and b/dist/1.4/fix4j-assert-all-1.4.jar differ diff --git a/dist/1.4/fix4j-assert-codegen-1.4.jar b/dist/1.4/fix4j-assert-codegen-1.4.jar new file mode 100644 index 0000000..b74fe06 Binary files /dev/null and b/dist/1.4/fix4j-assert-codegen-1.4.jar differ diff --git a/dist/1.4/fix4j-assert-core-1.4.jar b/dist/1.4/fix4j-assert-core-1.4.jar new file mode 100644 index 0000000..855f336 Binary files /dev/null and b/dist/1.4/fix4j-assert-core-1.4.jar differ diff --git a/dist/1.4/fix4j-assert-fixspec-50sp2-1.4.jar b/dist/1.4/fix4j-assert-fixspec-50sp2-1.4.jar new file mode 100644 index 0000000..d6acb5c Binary files /dev/null and b/dist/1.4/fix4j-assert-fixspec-50sp2-1.4.jar differ diff --git a/dist/1.4/fix4j-assert-integration-1.4.jar b/dist/1.4/fix4j-assert-integration-1.4.jar new file mode 100644 index 0000000..673a9a2 Binary files /dev/null and b/dist/1.4/fix4j-assert-integration-1.4.jar differ diff --git a/dist/1.4/fix4j-assert-quickfix-1.4.jar b/dist/1.4/fix4j-assert-quickfix-1.4.jar new file mode 100644 index 0000000..9a9fcf6 Binary files /dev/null and b/dist/1.4/fix4j-assert-quickfix-1.4.jar differ diff --git a/dist/1.4/fix4j-assert-testcommon-1.4.jar b/dist/1.4/fix4j-assert-testcommon-1.4.jar new file mode 100644 index 0000000..925ce40 Binary files /dev/null and b/dist/1.4/fix4j-assert-testcommon-1.4.jar differ diff --git a/fix4j-assert-acceptance/build.gradle b/fix4j-assert-acceptance/build.gradle new file mode 100644 index 0000000..95327b1 --- /dev/null +++ b/fix4j-assert-acceptance/build.gradle @@ -0,0 +1,7 @@ + +description = '' +dependencies { + compile project(':fix4j-assert-core') + compile project(':fix4j-assert-all') + compile project(':fix4j-assert-testcommon') +} diff --git a/fix4j-assert-acceptance/pom.xml b/fix4j-assert-acceptance/pom.xml deleted file mode 100644 index 56048f8..0000000 --- a/fix4j-assert-acceptance/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-acceptance - - - - - - org.codehaus.gmaven - gmaven-plugin - - - - - - - org.fix4j - fix4j-assert-core - 1.3 - - - org.fix4j - fix4j-assert-all - 1.3 - - - org.fix4j - fix4j-assert-testcommon - 1.3 - - - diff --git a/fix4j-assert-all/build.gradle b/fix4j-assert-all/build.gradle new file mode 100644 index 0000000..7ab3331 --- /dev/null +++ b/fix4j-assert-all/build.gradle @@ -0,0 +1,15 @@ + +description = '' +dependencies { + compile project(':fix4j-assert-core') + compile project(':fix4j-assert-fixspec-50sp2') + compile project(':fix4j-assert-quickfix') + testCompile(group: 'junit', name: 'junit', version:'4.12') { +exclude(module: 'hamcrest-core') + } + testCompile group: 'org.hamcrest', name: 'hamcrest-core', version:'1.3' + testCompile group: 'org.hamcrest', name: 'hamcrest-library', version:'1.3' + testCompile(group: 'org.mockito', name: 'mockito-core', version:'2.0.31-beta') { +exclude(module: 'hamcrest-core') + } +} diff --git a/fix4j-assert-all/pom.xml b/fix4j-assert-all/pom.xml deleted file mode 100644 index 21a4e72..0000000 --- a/fix4j-assert-all/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-all - - - - org.fix4j - fix4j-assert-core - 1.3 - - - org.fix4j - fix4j-assert-fixspec-50sp2 - 1.3 - - - org.fix4j - fix4j-assert-quickfix - 1.3 - - - - diff --git a/fix4j-assert-codegen/build.gradle b/fix4j-assert-codegen/build.gradle new file mode 100644 index 0000000..853aa24 --- /dev/null +++ b/fix4j-assert-codegen/build.gradle @@ -0,0 +1,5 @@ + +description = '' +dependencies { + compile group: 'org.codehaus.groovy', name: 'groovy-all', version:'2.3.8' +} diff --git a/fix4j-assert-codegen/pom.xml b/fix4j-assert-codegen/pom.xml deleted file mode 100644 index 3c540d2..0000000 --- a/fix4j-assert-codegen/pom.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-codegen - - - - org.codehaus.groovy - groovy-all - 2.3.8 - - - - diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/Asserts.java b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/Asserts.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/Asserts.java rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/Asserts.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/CompositeContentHelper.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/CompositeContentHelper.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/CompositeContentHelper.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/CompositeContentHelper.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FieldClassEnumCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FieldClassEnumCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FieldClassEnumCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FieldClassEnumCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FieldTypeCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FieldTypeCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FieldTypeCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FieldTypeCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FieldTypesEnumCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FieldTypesEnumCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FieldTypesEnumCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FieldTypesEnumCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FixSpecificationClassCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FixSpecificationClassCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/FixSpecificationClassCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/FixSpecificationClassCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/MsgTypeCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/MsgTypeCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/MsgTypeCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/MsgTypeCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/MsgTypesEnumCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/MsgTypesEnumCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/MsgTypesEnumCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/MsgTypesEnumCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/SpecParser.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/SpecParser.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/SpecParser.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/SpecParser.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/StandardHeaderCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/StandardHeaderCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/StandardHeaderCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/StandardHeaderCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/StandardTrailerCreator.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/StandardTrailerCreator.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/StandardTrailerCreator.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/StandardTrailerCreator.groovy diff --git a/fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/Util.groovy b/fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/Util.groovy similarity index 100% rename from fix4j-assert-codegen/src/main/java/org/fix4j/spec/codegen/Util.groovy rename to fix4j-assert-codegen/src/main/groovy/fix4j/spec/codegen/Util.groovy diff --git a/fix4j-assert-core/build.gradle b/fix4j-assert-core/build.gradle new file mode 100644 index 0000000..4215ed4 --- /dev/null +++ b/fix4j-assert-core/build.gradle @@ -0,0 +1,5 @@ + +description = '' +dependencies { + testCompile project(':fix4j-assert-testcommon') +} diff --git a/fix4j-assert-core/pom.xml b/fix4j-assert-core/pom.xml deleted file mode 100644 index 5e62221..0000000 --- a/fix4j-assert-core/pom.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-core - - - - - - org.codehaus.gmaven - gmaven-plugin - - - - - - - org.fix4j - fix4j-assert-testcommon - 1.3 - test - - - diff --git a/fix4j-assert-core/src/main/java/org/fix4j/test/messageflags/SessionLevelRejectMessageFlagRule.java b/fix4j-assert-core/src/main/java/org/fix4j/test/messageflags/SessionLevelRejectMessageFlagRule.java index da9014d..c836619 100644 --- a/fix4j-assert-core/src/main/java/org/fix4j/test/messageflags/SessionLevelRejectMessageFlagRule.java +++ b/fix4j-assert-core/src/main/java/org/fix4j/test/messageflags/SessionLevelRejectMessageFlagRule.java @@ -3,6 +3,7 @@ import org.fix4j.test.expression.FlexibleMessageExpressionParser; import org.fix4j.test.fixmodel.Field; import org.fix4j.test.fixmodel.FixMessage; +import org.fix4j.test.fixspec.FieldType; import org.fix4j.test.fixspec.FixSpecification; import org.fix4j.test.matching.matchers.FixMessageMatcher; import org.fix4j.test.util.Consts; @@ -36,7 +37,12 @@ public MessageFlags getMessageFlags(final FixMessage fixMessage){ if(refTagId != null){ try { int refTagIdInt = Integer.valueOf(refTagId.getValue()); - refTagName = fixSpecification.getFieldTypeByTag(refTagIdInt).getName(); + final FieldType fieldType = fixSpecification.getFieldTypeByTag(refTagIdInt); + if(fieldType != null) { + refTagName = fieldType.getName(); + } else { + refTagName = null; + } } catch(NumberFormatException e){ refTagName = null; } diff --git a/fix4j-assert-examples/build.gradle b/fix4j-assert-examples/build.gradle new file mode 100644 index 0000000..2b84313 --- /dev/null +++ b/fix4j-assert-examples/build.gradle @@ -0,0 +1,33 @@ +apply plugin: 'java' +apply plugin: 'maven' + +/** +NOTE!: this gradle module does NOT have a parent. + +It is designed to be run after a maven release to central has been done as a way to test the release. + +When running the tests, the fix4j artifacts should be downloaded from the central repo. +**/ + +group = 'org.fix4j' +version = '1.0-SNAPSHOT' + +description = 'Module to test a released version of fix4j-assert' + +sourceCompatibility = 1.5 +targetCompatibility = 1.5 +tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' +} + + + +repositories { + + maven { url "http://repo.maven.apache.org/maven2" } +} +dependencies { + compile group: 'org.fix4j', name: 'fix4j-assert-core', version:'1.4' + testCompile group: 'org.fix4j', name: 'fix4j-assert-all', version:'1.4' + testCompile group: 'org.fix4j', name: 'fix4j-assert-testcommon', version:'1.4' +} diff --git a/fix4j-assert-examples/gradle/wrapper/gradle-wrapper.jar b/fix4j-assert-examples/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..11268e5 Binary files /dev/null and b/fix4j-assert-examples/gradle/wrapper/gradle-wrapper.jar differ diff --git a/fix4j-assert-examples/gradle/wrapper/gradle-wrapper.properties b/fix4j-assert-examples/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..6c62dfe --- /dev/null +++ b/fix4j-assert-examples/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Tue Jan 24 06:29:50 GMT 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip diff --git a/fix4j-assert-examples/gradlew b/fix4j-assert-examples/gradlew new file mode 100755 index 0000000..4453cce --- /dev/null +++ b/fix4j-assert-examples/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save ( ) { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/fix4j-assert-examples/gradlew.bat b/fix4j-assert-examples/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/fix4j-assert-examples/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/fix4j-assert-examples/pom.xml b/fix4j-assert-examples/pom.xml deleted file mode 100644 index 9957bf0..0000000 --- a/fix4j-assert-examples/pom.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - 4.0.0 - - - - org.fix4j - fix4j-assert-examples - 1.0-SNAPSHOT - - - - - - org.fix4j - fix4j-assert-core - 1.3 - - - org.fix4j - fix4j-assert-all - 1.3 - test - - - org.fix4j - fix4j-assert-testcommon - 1.3 - test - - - - diff --git a/fix4j-assert-examples/settings.gradle b/fix4j-assert-examples/settings.gradle new file mode 100644 index 0000000..43d56d0 --- /dev/null +++ b/fix4j-assert-examples/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'fix4j-assert-examples' diff --git a/fix4j-assert-examples/src/test/java/org/fix4j/test/examples/clients/MatchingSessionTest.java b/fix4j-assert-examples/src/test/java/org/fix4j/test/examples/clients/MatchingSessionTest.java index 4760126..d0c8441 100644 --- a/fix4j-assert-examples/src/test/java/org/fix4j/test/examples/clients/MatchingSessionTest.java +++ b/fix4j-assert-examples/src/test/java/org/fix4j/test/examples/clients/MatchingSessionTest.java @@ -44,7 +44,7 @@ public void testMatchingSession() { //Create a new session which initiates connection to the server client = helper.createMatchingSession(new FixSessionId("FIX.4.4", "CLIENT_COMP_ID", "SERVER_COMP_ID"), FixConnectionMode.INITIATOR); - //Discard all messges until a Logon message is received + //Discard all messages until a Logon message is received client.discardUntil(MsgTypes.Logon); //Send a MarketDataRequest @@ -55,7 +55,7 @@ public void testMatchingSession() { quote.getField("NoMDEntries[2].MDEntryPx").assertValueEquals(1.12335); //Now send an order..."); - client.send("35=D|38=1000|59=1|100=N|40=1|11=ORD10001|60=20070123-19:01:17|55=AUD/USD|54=1|"); + client.send("35=D|38=1000|59=1|100=N|40=1|11=ORD10001|60=20070123-19:01:17|55=AUD/USD|54=1|9004=asdf"); //Waiting for fill final FixMessage fill = client.discardUntil(MsgTypes.ExecutionReport); diff --git a/fix4j-assert-fixspec-50sp2/build.gradle b/fix4j-assert-fixspec-50sp2/build.gradle new file mode 100644 index 0000000..5f86fac --- /dev/null +++ b/fix4j-assert-fixspec-50sp2/build.gradle @@ -0,0 +1,12 @@ +description = '' +dependencies { + compile project(':fix4j-assert-core') + testCompile(group: 'junit', name: 'junit', version: '4.12') { + exclude(module: 'hamcrest-core') + } + testCompile group: 'org.hamcrest', name: 'hamcrest-core', version: '1.3' + testCompile group: 'org.hamcrest', name: 'hamcrest-library', version: '1.3' + testCompile(group: 'org.mockito', name: 'mockito-core', version: '2.0.31-beta') { + exclude(module: 'hamcrest-core') + } +} diff --git a/fix4j-assert-fixspec-50sp2/pom.xml b/fix4j-assert-fixspec-50sp2/pom.xml deleted file mode 100644 index 132978d..0000000 --- a/fix4j-assert-fixspec-50sp2/pom.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-fixspec-50sp2 - - - - org.fix4j - fix4j-assert-core - 1.3 - - - diff --git a/fix4j-assert-integration/build.gradle b/fix4j-assert-integration/build.gradle new file mode 100644 index 0000000..047b270 --- /dev/null +++ b/fix4j-assert-integration/build.gradle @@ -0,0 +1,7 @@ + +description = '' +dependencies { + compile project(':fix4j-assert-core') + compile project(':fix4j-assert-fixspec-50sp2') + compile project(':fix4j-assert-testcommon') +} diff --git a/fix4j-assert-integration/pom.xml b/fix4j-assert-integration/pom.xml deleted file mode 100644 index c68d217..0000000 --- a/fix4j-assert-integration/pom.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-integration - - - - - - org.codehaus.gmaven - gmaven-plugin - - - - - - - org.fix4j - fix4j-assert-core - 1.3 - - - org.fix4j - fix4j-assert-fixspec-50sp2 - 1.3 - - - org.fix4j - fix4j-assert-testcommon - 1.3 - - - diff --git a/fix4j-assert-quickfix/build.gradle b/fix4j-assert-quickfix/build.gradle new file mode 100644 index 0000000..bacf7f3 --- /dev/null +++ b/fix4j-assert-quickfix/build.gradle @@ -0,0 +1,9 @@ + +description = '' +dependencies { + compile project(':fix4j-assert-core') + compile group: 'org.apache.servicemix.bundles', name: 'org.apache.servicemix.bundles.quickfix', version:'1.5.3_1' + compile group: 'org.apache.mina', name: 'mina-core', version:'1.1.0' + testCompile project(':fix4j-assert-fixspec-50sp2') + testCompile project(':fix4j-assert-testcommon') +} diff --git a/fix4j-assert-quickfix/pom.xml b/fix4j-assert-quickfix/pom.xml deleted file mode 100644 index 4f0dd83..0000000 --- a/fix4j-assert-quickfix/pom.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-quickfix - - - - org.fix4j - fix4j-assert-core - 1.3 - - - org.fix4j - fix4j-assert-fixspec-50sp2 - 1.3 - test - - - org.apache.servicemix.bundles - org.apache.servicemix.bundles.quickfix - 1.5.3_1 - - - org.apache.mina - mina-core - 1.1.0 - - - org.fix4j - fix4j-assert-testcommon - 1.3 - test - - - - - - MarketceteraRepo - http://repo.marketcetera.org/maven - - true - - - - 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 a1dcd1c..8867ae3 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 @@ -16,7 +16,11 @@ public enum QuickFixProperties implements Keyable { USE_DATA_DICTIONARY("fix4j.quickfix.use.data.dictionary"), SOCKET_CONNECT_PORT("fix4j.quickfix.socket.connect.port"), SOCKET_ACCEPT_PORT("fix4j.quickfix.socket.accept.port"), - LOG_HEARTBEATS("fix4j.quickfix.log.heartbeats"); + LOG_HEARTBEATS("fix4j.quickfix.log.heartbeats"), + 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"); 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 dd550c5..80e0451 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 @@ -39,27 +39,32 @@ 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()); settings.setString("TargetCompID", quickfixSessionId.getTargetCompID()); - settings.setString("SocketConnectHost", ApplicationProperties.Singleton.instance().getAsString(QuickFixProperties.SOCKET_CONNECT_HOST, "localhost")); - settings.setString("StartTime", ApplicationProperties.Singleton.instance().getAsString("quickfix.start.time", "00:00:00")); - settings.setString("EndTime", ApplicationProperties.Singleton.instance().getAsString("quickfix.end.time", "00:00:00")); - settings.setString("HeartBtInt", ApplicationProperties.Singleton.instance().getAsString("quickfix.heart.beat.interval", "10")); + settings.setString("SocketConnectHost", properties.getAsString(QuickFixProperties.SOCKET_CONNECT_HOST, "localhost")); + settings.setString("StartTime", properties.getAsString(QuickFixProperties.START_TIME, "00:00:00")); + settings.setString("EndTime", properties.getAsString(QuickFixProperties.END_TIME, "00:00:00")); + settings.setString("HeartBtInt", properties.getAsString(QuickFixProperties.HEART_BEAT_INTERVAL, "10")); settings.setString("BeginString", quickfixSessionId.getBeginString()); - settings.setString("ReconnectInterval", ApplicationProperties.Singleton.instance().getAsString("quickfix.reconnect.interval", "5")); - settings.setString("UseDataDictionary", ApplicationProperties.Singleton.instance().getAsString("quickfix.use.data.dictionary", "Y")); + settings.setString("ReconnectInterval", properties.getAsString(QuickFixProperties.RECONNECT_INTERVAL, "5")); + settings.setString("UseDataDictionary", properties.getAsString(QuickFixProperties.USE_DATA_DICTIONARY, "Y")); + settings.setString("AllowUnknownMsgFields", properties.getAsString(QuickFixProperties.ALLOW_UNKNOWN_MSG_FIELDS, "Y")); + 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")); if(fixConnectionMode == FixConnectionMode.INITIATOR) { - settings.setString(quickfixSessionId, "SocketConnectPort", ApplicationProperties.Singleton.instance().getAsString("quickfix.socket.connect.port", "9880")); + settings.setString(quickfixSessionId, "SocketConnectPort", properties.getAsString(QuickFixProperties.SOCKET_CONNECT_PORT, "9880")); } else if(fixConnectionMode == FixConnectionMode.ACCEPTOR){ - settings.setString(quickfixSessionId, "SocketAcceptPort", ApplicationProperties.Singleton.instance().getAsString("quickfix.socket.accept.port", "9880")); + settings.setString(quickfixSessionId, "SocketAcceptPort", properties.getAsString(QuickFixProperties.SOCKET_ACCEPT_PORT, "9880")); } else { throw new IllegalArgumentException("Unknown mode:" + fixConnectionMode); } - final boolean logHeartbeats = ApplicationProperties.Singleton.instance().getAsBoolean("quickfix.log.heartbeats", true); + final boolean logHeartbeats = properties.getAsBoolean(QuickFixProperties.LOG_HEARTBEATS, true); final MemoryStoreFactory messageStoreFactory = new MemoryStoreFactory(); final ScreenLogFactory logFactory = new ScreenLogFactory(true, true, true, logHeartbeats); final DefaultMessageFactory messageFactory = new DefaultMessageFactory(); diff --git a/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/ToQuickFixMessageConverter.java b/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/ToQuickFixMessageConverter.java index 6b84256..2155a0e 100644 --- a/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/ToQuickFixMessageConverter.java +++ b/fix4j-assert-quickfix/src/main/java/org/fix4j/test/integration/quickfix/ToQuickFixMessageConverter.java @@ -1,5 +1,6 @@ package org.fix4j.test.integration.quickfix; +import org.fix4j.test.fixspec.FieldType; import org.fix4j.test.fixspec.GroupType; import org.fix4j.test.integration.MessageConverter; import org.fix4j.test.fixmodel.Field; @@ -69,7 +70,13 @@ private void addGroupToQuickfixFieldMap(final org.fix4j.test.fixmodel.Group fixT } private void addFieldToQuickfixFieldMap(final Field field, final FieldMap fieldMap) { - final FieldClass fieldClass = fixSpecification.getFieldTypeByTag(field.getTag()).getFieldClass(); + final FieldType fieldType = fixSpecification.getFieldTypeByTag(field.getTag()); + if(fieldType == null){ + fieldMap.setString(field.getTag().getValue(), field.getValue()); + return; + } + + final FieldClass fieldClass = fieldType.getFieldClass(); switch (fieldClass) { case TZTIMESTAMP: diff --git a/fix4j-assert-testcommon/build.gradle b/fix4j-assert-testcommon/build.gradle new file mode 100644 index 0000000..e1c2f28 --- /dev/null +++ b/fix4j-assert-testcommon/build.gradle @@ -0,0 +1,17 @@ + +description = '' +dependencies { + compile(group: 'junit', name: 'junit', version:'4.11') { +exclude(module: 'hamcrest-core') + } + compile group: 'org.codehaus.groovy', name: 'groovy-all', version:'2.3.8' + compile group: 'org.apache.maven.surefire', name: 'surefire-junit4', version:'2.17' + compile(group: 'org.spockframework', name: 'spock-maven', version:'0.7-groovy-2.0') { +exclude(module: 'surefire-junit47') + } + testCompile group: 'org.hamcrest', name: 'hamcrest-core', version:'1.3' + testCompile group: 'org.hamcrest', name: 'hamcrest-library', version:'1.3' + testCompile(group: 'org.mockito', name: 'mockito-core', version:'2.0.31-beta') { +exclude(module: 'hamcrest-core') + } +} diff --git a/fix4j-assert-testcommon/pom.xml b/fix4j-assert-testcommon/pom.xml deleted file mode 100644 index 3d60564..0000000 --- a/fix4j-assert-testcommon/pom.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - fix4j-assert - org.fix4j - 1.3 - - 4.0.0 - - fix4j-assert-testcommon - - - - - - org.codehaus.gmaven - gmaven-plugin - 1.4 - - 2.0 - - - - - compile - testCompile - - - - - - org.codehaus.gmaven.runtime - gmaven-runtime-2.0 - 1.4 - - - org.codehaus.groovy - groovy-all - - - - - org.codehaus.groovy - groovy-all - 2.3.8 - - - - - - - - - junit - junit - 4.11 - - - org.codehaus.groovy - groovy-all - 2.3.8 - - - org.apache.maven.surefire - surefire-junit4 - 2.17 - - - org.spockframework - spock-maven - 0.7-groovy-2.0 - - - org.apache.maven.surefire - surefire-junit47 - - - - - diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..b22e5ef Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..ce15c64 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Jan 23 17:20:39 GMT 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..4453cce --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save ( ) { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/pom.xml b/pom.xml deleted file mode 100644 index a65e3e4..0000000 --- a/pom.xml +++ /dev/null @@ -1,161 +0,0 @@ - - - 4.0.0 - - - com.jcabi - parent - 0.38 - - - org.fix4j - fix4j-assert - pom - 1.3 - - fix4j-assert-core - fix4j-assert-quickfix - fix4j-assert-acceptance - fix4j-assert-codegen - fix4j-assert-fixspec-50sp2 - fix4j-assert-all - fix4j-assert-testcommon - fix4j-assert-integration - - - ${project.groupId}:${project.artifactId} - fix4j-assert is a library to assist in testing of applications using FIX protocol - https://github.com/fix4j/fix4j-assert - - - - GNU General Public License (GPL) - http://www.gnu.org/licenses/gpl.txt - - - - - - Ben Warner - bjwarner@gmail.com - fix4j - http://www.fix4j.org - - - - - https://github.com/fix4j/fix4j-assert - scm:git:git://github.com/fix4j/fix4j-assert.git - scm:git:git@github.com:fix4j/fix4j-assert.git - HEAD - - - - 1.7 - 1.7 - UTF-8 - UTF-8 - - - - - org.slf4j - slf4j-log4j12 - 1.3.0 - - - org.slf4j - slf4j-api - 1.3.0 - - - - - - - org.apache.maven.plugins - maven-surefire-report-plugin - 2.18.1 - - - - - - - - sonatype - - - - maven-javadoc-plugin - - - jcabi-javadoc - package - - jar - - - - - org.fix4j.spec.fix50sp2.fieldtype.* - - - - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.1 - - 1.7 - 1.7 - - - - org.codehaus.gmaven - gmaven-plugin - 1.4 - - 2.0 - - - - - compile - testCompile - - - - - - org.codehaus.gmaven.runtime - gmaven-runtime-2.0 - 1.4 - - - org.codehaus.groovy - groovy-all - - - - - org.codehaus.groovy - groovy-all - 2.3.8 - - - - - - - diff --git a/pubring.gpg.asc b/pubring.gpg.asc deleted file mode 100644 index d098d3f..0000000 --- a/pubring.gpg.asc +++ /dev/null @@ -1,225 +0,0 @@ ------BEGIN PGP MESSAGE----- -Version: GnuPG/MacGPG2 v2.0.18 (Darwin) -Comment: GPGTools - http://gpgtools.org - -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 -=V+s2 ------END PGP MESSAGE----- diff --git a/secring.gpg.asc b/secring.gpg.asc deleted file mode 100644 index 3e2c4ca..0000000 --- a/secring.gpg.asc +++ /dev/null @@ -1,100 +0,0 @@ ------BEGIN PGP MESSAGE----- -Version: GnuPG/MacGPG2 v2.0.18 (Darwin) -Comment: GPGTools - http://gpgtools.org - -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 -=HJPD ------END PGP MESSAGE----- diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..73db7c2 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,18 @@ +rootProject.name = 'fix4j-assert' +include ':fix4j-assert-core' +include ':fix4j-assert-quickfix' +include ':fix4j-assert-acceptance' +include ':fix4j-assert-codegen' +include ':fix4j-assert-fixspec-50sp2' +include ':fix4j-assert-all' +include ':fix4j-assert-testcommon' +include ':fix4j-assert-integration' + +project(':fix4j-assert-core').projectDir = "$rootDir/fix4j-assert-core" as File +project(':fix4j-assert-quickfix').projectDir = "$rootDir/fix4j-assert-quickfix" as File +project(':fix4j-assert-acceptance').projectDir = "$rootDir/fix4j-assert-acceptance" as File +project(':fix4j-assert-codegen').projectDir = "$rootDir/fix4j-assert-codegen" as File +project(':fix4j-assert-fixspec-50sp2').projectDir = "$rootDir/fix4j-assert-fixspec-50sp2" as File +project(':fix4j-assert-all').projectDir = "$rootDir/fix4j-assert-all" as File +project(':fix4j-assert-testcommon').projectDir = "$rootDir/fix4j-assert-testcommon" as File +project(':fix4j-assert-integration').projectDir = "$rootDir/fix4j-assert-integration" as File \ No newline at end of file diff --git a/settings.xml.asc b/settings.xml.asc deleted file mode 100644 index a9627a9..0000000 --- a/settings.xml.asc +++ /dev/null @@ -1,25 +0,0 @@ ------BEGIN PGP MESSAGE----- -Version: GnuPG/MacGPG2 v2.0.18 (Darwin) -Comment: GPGTools - http://gpgtools.org - -hQEMA5qETcGag5w6AQf/Rl7RZumUuI0iR5pF4kfBG/4epfVOrxaUqZbBm9vaJW9+ -VrjyDur/39rGZgZnZTDz5c1RtrJNazL6h+RrYFrDYyNrFxFHyQ9FqHyNv6dJi5GZ -rHkDF/QGfjF0sssZYkXD33ovHJJOURmY0egXMViZWWWaUy2G8yK1EqN+qPQG8lhm -XVucZXPM1WejZV6gPCGNVdedglBugIN/HkHYST86WX8tgozt3B+A0cU4eGdz2Swk -XbiFNkP8OT1Bi+P9q1lal4nsjf7tN3pucpHQx3DGWGUgptt3QEjthu20eB5Ddw5V -6ifCdPACPLeM3eWMMXTKXfm/iMaNXm0U0YA7SdoWX9LpAf6ZlY26pw1+lynhrAfj -CYluosqVfmSPkG63/t6uIQXfvzVkmYxgkBkitgg/Ri2sAdYUWr9SzOPO0NUMoarh -VNtHj5Z85CzUvkhH9xZHsR2Sx/z7wucirpFLmjsdt+uRCeyVO9JL643VJZWyWk1j -+jo4eJoeH3RHcipNq1y9qZgYKWDSrseA+uzJYuUvLJSpSeOKVvnef46ZF61iaAPO -woQV8Gdb5DLOIYE8xy7zoK187Fdak5ZBGljF/y7Xyf4+UPFyUPdklbX0vJ/Yx7cm -rwcvdBgBJFfKk+Z7BSlvmVN2pvbEWJ6WtXL+qkG/Vhe6RJiQMjx/0hvTvZQ5nb5p -2rAmS/eb0dS3oU/1Aj6Z4fzTt7ME/q0ikNoxHyECS7L6QyaQwSOt+Tugc/LElM39 -dRfhFrR7M4d/iYwSVmyGSQOE8SE/hkYrbhF+A76KC4uK12nnnr+prRUEkQnM3NX3 -4ekP9Db5O7lFZcnArLFVlXVCUoOTmlZJ/7mISkXTV8NhLxw63FZUuFdRiJiX11fY -lKmtqJdVK0V/0go+Wg/sbjoLPvmw0nEpPdr7O2t/Wj0iyw/Rx9OPHpTLXsckFQal -dVwSErZBl/d5P4FOv49/qGLdSaCf5no+sJ91qIRv9n4PPwcEhYIZlpNTeYjNzT8E -EYpz10MxzuMJTUCiyiarUThbV3gsKExxnLN5ISnbZVJYLZV3fACjQvHqgyshDqAN -p48a63xxeqWsL1lx1/lJtm3MpKLhCnOgIaW4ojd8Sg6d2ranPkFjWwlqRD82cJq1 -MK4T0iJE73jiPLo1sA== -=S5CD ------END PGP MESSAGE----- diff --git a/todo.txt b/todo.txt deleted file mode 100644 index 0334374..0000000 --- a/todo.txt +++ /dev/null @@ -1,29 +0,0 @@ -00001 DONE When a plain old assertion error occurs in a test, would be good to see the other "reportables" showing their details. Could probably use a @RunWith annotation to pick up on AssertionErrors -00002 DONE TEST THIS: Be able to configure test settings at the start of a test method, or at the start of a test class, or at the start of a JUnit run??. -00003 DONE Consts (applicationProperties) to print out all it's values, and where they are sourced from. -00004 DONE Rename Consts to "Configuration" or "ApplicationProperties" or something. -00005 DONE Add a ApplicationPropertiesSource interface. Implement it for env variables, system variables, defaults, testMethodSettings, testClassSettings, testRunSettings, etc. -00006 DONE ??? Make MatchFailureTextFactory replaceable. -00007 Look at http://java-performance.info/fix-message-processing-writing-a-fix-parser/ -00008 DONE Get rid of all System.out's -00009 Finish mavenenization -00010 Make all tests consistent, i.e. consistently spock or junit -00011 DONE Package restructure/organization -00012 Test coverage -00013 Finish VariousMessageRepresentationsTest - - -FAQ -Do I need to populate header fields when creating a message? -Do tests have to be written in either groovy or junit? - - -
-keyboard-centric bug tracker -continuous integration server -
- -
-keyboard-centric bug tracker -continuous integration server -