diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index a8a0cf4ea..3241209e5 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -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 }}
@@ -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"
diff --git a/AGENTS.md b/AGENTS.md
index 52a6264cc..94ada311e 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -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
diff --git a/README.md b/README.md
index c7c7cdfbb..94b8b6bf0 100644
--- a/README.md
+++ b/README.md
@@ -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.
@@ -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
diff --git a/quickfixj-messages/quickfixj-messages-all/pom.xml b/quickfixj-messages/quickfixj-messages-all/pom.xml
index cc18b3634..c22c758f1 100644
--- a/quickfixj-messages/quickfixj-messages-all/pom.xml
+++ b/quickfixj-messages/quickfixj-messages-all/pom.xml
@@ -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.
-->
-
- true
-
@@ -89,8 +87,11 @@
full-fix-latest
-
+
+
+ true
+
diff --git a/quickfixj-messages/quickfixj-messages-fixlatest/pom.xml b/quickfixj-messages/quickfixj-messages-fixlatest/pom.xml
index 794f9cde9..93cc4aa5f 100644
--- a/quickfixj-messages/quickfixj-messages-fixlatest/pom.xml
+++ b/quickfixj-messages/quickfixj-messages-fixlatest/pom.xml
@@ -66,8 +66,11 @@
full-fix-latest
-
+
+
+ true
+
diff --git a/quickfixj-messages/readme.md b/quickfixj-messages/readme.md
index 22a5ed0bc..576006786 100644
--- a/quickfixj-messages/readme.md
+++ b/quickfixj-messages/readme.md
@@ -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
diff --git a/quickfixj-stress-test/README.md b/quickfixj-stress-test/README.md
index a04571c00..8bf3d375b 100644
--- a/quickfixj-stress-test/README.md
+++ b/quickfixj-stress-test/README.md
@@ -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:**
@@ -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