Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Test with Maven
run: ./mvnw install -B -V -D"maven.javadoc.skip"="true" -P"skipBundlePlugin,minimal-fix-latest" -D"java.util.logging.config.file"="${{github.workspace}}/quickfixj-core/src/test/resources/logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
run: ./mvnw install -B -V -D"maven.javadoc.skip"="true" -P"skipBundlePlugin" -D"java.util.logging.config.file"="${{github.workspace}}/quickfixj-core/src/test/resources/logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"

test-windows:
runs-on: ${{ matrix.os }}
Expand All @@ -63,4 +63,4 @@ jobs:
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Test with Maven on Windows
run: ./mvnw.cmd install -B -V -D"maven.javadoc.skip"="true" -P"skipBundlePlugin,minimal-fix-latest" -D"java.util.logging.config.file"="${{github.workspace}}/quickfixj-core/src/test/resources/logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
run: ./mvnw.cmd install -B -V -D"maven.javadoc.skip"="true" -P"skipBundlePlugin" -D"java.util.logging.config.file"="${{github.workspace}}/quickfixj-core/src/test/resources/logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
5 changes: 3 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ This file provides guidance for automated contributors/agents working in the `qu
## 3) Build instructions (fast/default/full)

- Fast local package (no tests):
- `./mvnw clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin,minimal-fix-latest`
- `./mvnw clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin`
- CI-equivalent validation baseline:
- `./mvnw install -Dmaven.javadoc.skip=true -PskipBundlePlugin,minimal-fix-latest`
- `./mvnw install -Dmaven.javadoc.skip=true -PskipBundlePlugin`
- If OSGi bundle artifacts are required, omit `-PskipBundlePlugin`.
- The `full-fix-latest` profile is active by default and builds the complete FIX Latest specification. The `minimal-fix-latest` profile (used only by CodeQL) overrides this with a reduced orchestra to limit heap usage.

## 4) Module dependency order for targeted `quickfixj-core` work

Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,17 @@ Pull requests are always welcome! Best is if you added a unit test to show that

Fastest: clone the repo and issue the following command.
```
$ mvnw clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin,minimal-fix-latest
$ mvnw clean package -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin
```

Slower: if you only want to skip the acceptance test suite:
```
$ mvnw clean package -Dmaven.javadoc.skip=true -DskipAT=true -PskipBundlePlugin,minimal-fix-latest
$ mvnw clean package -Dmaven.javadoc.skip=true -DskipAT=true -PskipBundlePlugin
```

Slow: if you want to run all tests:
```
$ mvnw clean package -Dmaven.javadoc.skip=true -PskipBundlePlugin,minimal-fix-latest
$ mvnw clean package -Dmaven.javadoc.skip=true -PskipBundlePlugin
```
NB: If you want to use the resulting JARs in an OSGi environment you'll have to omit the `-PskipBundlePlugin` option.

Expand All @@ -62,7 +62,7 @@ When the project is first created, it will not have the generated message classe

If the IDE reports some errors after the compilation with `mvnw clean package`, try to use `mvnw clean install`, like:
```
$ mvnw clean install -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin,minimal-fix-latest
$ mvnw clean install -Dmaven.javadoc.skip=true -DskipTests -PskipBundlePlugin
```

## configuration options
Expand Down
11 changes: 6 additions & 5 deletions quickfixj-messages/quickfixj-messages-all/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,8 @@
of the core module. This is to reduce the size and complexity of the FIX Latest package so that processes such as CodeQL
do not use unreasonable heap size and can successfully run as part of the pull request workflow.
This profile does not produce a coherent orchestration nor a FIX Latest package representing a sensible Rules of Engagement.
It is used only by the CodeQL analysis workflow. For all other builds, the full-fix-latest profile is the default.
-->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
Expand Down Expand Up @@ -89,8 +87,11 @@
</profile>
<profile>
<id>full-fix-latest</id>
<!-- This profile builds the full fix latest specification to testing that a new version of the full specification
does not introduce issues in the core QuickFIX/J build -->
<!-- This profile builds the full fix latest specification to test that a new version of the full specification
does not introduce issues in the core QuickFIX/J build. This is the default profile. -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
Expand Down
7 changes: 5 additions & 2 deletions quickfixj-messages/quickfixj-messages-fixlatest/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,11 @@
<profiles>
<profile>
<id>full-fix-latest</id>
<!-- This profile builds the full fix latest specification to testing that a new version of the full specification
does not introduce issues in the core QuickFIX/J build -->
<!-- This profile builds the full fix latest specification. It is active by default. When minimal-fix-latest
is explicitly activated (e.g. for CodeQL), this profile is automatically deactivated. -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
Expand Down
2 changes: 1 addition & 1 deletion quickfixj-messages/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ One way to start a custom build this is to **copying** this maven module, or onl
* The [quickfixj-orchestration](../quickfixj-orchestration/readme.md) module publishes a QuickFIX/J compatible __FIX Latest__ orchestration as ```org.quickfixj:quickfixj-orchestration```. This can be a starting point for customisation. Please note that this is a complete representation of the FIX Latest specification and results in a very large distribution.The purpose of [FIX Orchestra](https://www.fixtrading.org/standards/fix-orchestra/) is to provide a machine-readable Rules of Engagement. __FIX Latest__ is a very large distribution so customisation is **expected**.
See [quickfixj-orchestration](../quickfixj-orchestration/readme.md) for references to [FIX Trading Community](https://www.fixtrading.org/) tools.
* A custom orchestration dependency should be used in place of the ```org.quickfixj:quickfixj-orchestration``` dependency.
* The ```quickfixj-messages-all``` maven build includes a ```minimal-fix-latest``` profile. The minimal packages include only those Fields, Components and Messages on which tests in the ```quickfixj-core``` module (and some basic compilation verifications) depend. This is done to reduce memory requirements and speed up the build of QuickFIX/J during development of QuickFIX/J itself. The ```minimal-fix-latest``` profile may serve as a very simple example of customising an orchestration using ```xslt```. This profile serves no purpose in a custom build of Messages and Fields. The ```minimal-fix-latest``` is not expected to be useful for building custom orchestrations.
* The ```quickfixj-messages-all``` maven build uses a ```full-fix-latest``` profile by default, which builds the complete FIX Latest specification. A ```minimal-fix-latest``` profile is also provided; it transforms the orchestra file to restrict fields, components, groups and messages to only those used in ```quickfixj-core``` tests, in order to reduce memory requirements. The ```minimal-fix-latest``` profile is used only by the CodeQL analysis workflow. The ```minimal-fix-latest``` profile may serve as a very simple example of customising an orchestration using ```xslt``` but serves no purpose in a custom build of Messages and Fields and is not expected to be useful for building custom orchestrations.

## QuickFIX/J Build Dependencies

Expand Down
4 changes: 2 additions & 2 deletions quickfixj-stress-test/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ $ mvn clean package
Build the stress test module with required dependencies, skipping test execution:

```bash
$ mvn clean package -pl quickfixj-stress-test -am -Dmaven.javadoc.skip=true -DskipTests -DskipAT=true -PskipBundlePlugin,minimal-fix-latest
$ mvn clean package -pl quickfixj-stress-test -am -Dmaven.javadoc.skip=true -DskipTests -DskipAT=true -PskipBundlePlugin
```

**Command Options Explained:**
Expand All @@ -30,7 +30,7 @@ $ mvn clean package -pl quickfixj-stress-test -am -Dmaven.javadoc.skip=true -Dsk
- `-Dmaven.javadoc.skip` - Skip JavaDoc generation
- `-DskipTests` - Skip running unit test cases during build
- `-DskipAT=true` - Skip running acceptance tests
- `-PskipBundlePlugin,minimal-fix-latest` - Skip bundle plugin and use minimal FIX Orchestra code generation
- `-PskipBundlePlugin` - Skip bundle plugin

### Running Tests

Expand Down