Skip to content

Commit d8b718a

Browse files
authored
Merge branch 'master' into patch-1
2 parents c5bf6d4 + 98dd021 commit d8b718a

File tree

96 files changed

+5270
-1780
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

96 files changed

+5270
-1780
lines changed

.devcontainer/devcontainer.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "Java",
3+
"image": "mcr.microsoft.com/devcontainers/base:debian",
4+
"features": {
5+
// Install java.
6+
// See https://github.com/devcontainers/features/tree/main/src/java#options for details.
7+
"ghcr.io/devcontainers/features/java:1": {
8+
"version": "8",
9+
"installGradle": false,
10+
"jdkDistro": "tem"
11+
}
12+
},
13+
14+
"onCreateCommand": "./mvnw install -B -V -Dmaven.javadoc.skip=true -DskipTests -Dmaven.compiler.failOnError=false -PskipBundlePlugin,minimal-fix-latest"
15+
}

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: Bug report
33
about: Create a report to help us improve
44
title: ''
5-
labels: bug
5+
type: Bug
66
assignees: ''
77

88
---

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: Feature request
33
about: Suggest an idea for this project
44
title: ''
5-
labels: enhancement
5+
type: Feature
66
assignees: ''
77

88
---

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ on:
1919
pull_request:
2020
# The branches below must be a subset of the branches above
2121
branches: [ master ]
22-
schedule:
23-
- cron: '39 6 * * 0'
2422

2523
jobs:
2624
analyze:
@@ -37,11 +35,11 @@ jobs:
3735

3836
steps:
3937
- name: Checkout repository
40-
uses: actions/checkout@v4
38+
uses: actions/checkout@v6
4139

4240
# Initializes the CodeQL tools for scanning.
4341
- name: Initialize CodeQL
44-
uses: github/codeql-action/init@v3
42+
uses: github/codeql-action/init@v4
4543
with:
4644
languages: ${{ matrix.language }}
4745
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -65,4 +63,4 @@ jobs:
6563
./mvnw clean package -B -V -e -Pminimal-fix-latest -Dmaven.javadoc.skip=true -Dfindbugs.skip -Dcheckstyle.skip -Dpmd.skip=true -Dspotbugs.skip -Denforcer.skip -DskipTests -Dmaven.test.skip.exec -Dlicense.skip=true -Drat.skip=true -Dspotless.check.skip=true -D"java.util.logging.config.file"="logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
6664
6765
- name: Perform CodeQL Analysis
68-
uses: github/codeql-action/analyze@v3
66+
uses: github/codeql-action/analyze@v4

.github/workflows/junie.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Junie
2+
run-name: Junie run ${{ inputs.run_id }}
3+
4+
permissions:
5+
contents: write
6+
pull-requests: write
7+
8+
on:
9+
workflow_dispatch:
10+
inputs:
11+
run_id:
12+
description: "id of workflow process"
13+
required: true
14+
workflow_params:
15+
description: "stringified params"
16+
required: true
17+
18+
jobs:
19+
call-workflow-passing-data:
20+
uses: jetbrains-junie/junie-workflows/.github/workflows/ej-issue.yml@main
21+
with:
22+
workflow_params: ${{ inputs.workflow_params }}

.github/workflows/maven.yml

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,54 +5,52 @@ on:
55
push:
66
pull_request:
77
types: [reopened, opened, synchronize]
8-
schedule:
9-
- cron: '30 5 * * *'
108

119
jobs:
1210
test:
1311
runs-on: ${{ matrix.os }}
1412
strategy:
1513
matrix:
16-
os: [ubuntu-latest, macOS-13]
17-
java: [8, 11, 17]
14+
os: [ubuntu-latest, macOS-14]
15+
java: [8, 11, 21]
1816
fail-fast: false
1917
max-parallel: 4
2018
name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}
2119

2220
steps:
23-
- uses: actions/checkout@v4
21+
- uses: actions/checkout@v6
2422
- name: Set up JDK
25-
uses: actions/setup-java@v4
23+
uses: actions/setup-java@v5
2624
with:
27-
distribution: 'temurin'
25+
distribution: 'corretto'
2826
java-version: ${{ matrix.java }}
2927
cache: 'maven'
3028
- name: Test with Maven
31-
run: ./mvnw install -B -V -Pminimal-fix-latest -D"java.util.logging.config.file"="./quickfixj-core/src/test/resources/logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
29+
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"
3230

3331
test-windows:
3432
runs-on: ${{ matrix.os }}
3533
strategy:
3634
matrix:
3735
os: [windows-latest]
38-
java: [8, 11, 17]
36+
java: [8, 11, 21]
3937
fail-fast: false
4038
max-parallel: 3
4139
name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}
4240

4341
steps:
44-
- uses: actions/checkout@v4
42+
- uses: actions/checkout@v6
4543
- name: Configure pagefile
46-
uses: al-cheb/configure-pagefile-action@v1.4
44+
uses: al-cheb/configure-pagefile-action@v1.5
4745
with:
4846
minimum-size: 8GB
4947
maximum-size: 16GB
5048
disk-root: "C:"
5149
- name: Set up Windows JDK
52-
uses: actions/setup-java@v4
50+
uses: actions/setup-java@v5
5351
with:
54-
distribution: 'temurin'
52+
distribution: 'corretto'
5553
java-version: ${{ matrix.java }}
5654
cache: 'maven'
5755
- name: Test with Maven on Windows
58-
run: ./mvnw.cmd install -B -V -D"maven.javadoc.skip"="true" -P"skipBundlePlugin,minimal-fix-latest" -D"java.util.logging.config.file"="./quickfixj-core/src/test/resources/logging.properties" -D"http.keepAlive"="false" -D"maven.wagon.http.pool"="false" -D"maven.wagon.httpconnectionManager.ttlSeconds"="120"
56+
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"
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
name: Java SNAPSHOT Release
2+
3+
permissions:
4+
packages: write
5+
6+
on:
7+
workflow_dispatch:
8+
schedule:
9+
- cron: '0 1 * * *'
10+
11+
jobs:
12+
release-snapshot:
13+
if: github.repository == 'quickfix-j/quickfixj'
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v6
17+
- name: Set up JDK
18+
uses: actions/setup-java@v5
19+
with:
20+
distribution: temurin
21+
java-version: 21
22+
cache: maven
23+
24+
- name: Build SNAPSHOT
25+
run: ./mvnw clean package -pl '!quickfixj-distribution' -B -V -D"maven.javadoc.skip"="true" -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"
26+
27+
- name: Delete old packages
28+
continue-on-error: true
29+
uses: SmartsquareGmbH/[email protected]
30+
with:
31+
organization: quickfix-j
32+
type: maven
33+
keep: 0
34+
names: |
35+
org.quickfixj.quickfixj-all
36+
org.quickfixj.quickfixj-base
37+
org.quickfixj.quickfixj-class-pruner-maven-plugin
38+
org.quickfixj.quickfixj-codegenerator
39+
org.quickfixj.quickfixj-core
40+
org.quickfixj.quickfixj-dictgenerator
41+
org.quickfixj.quickfixj-examples
42+
org.quickfixj.quickfixj-examples-banzai
43+
org.quickfixj.quickfixj-examples-executor
44+
org.quickfixj.quickfixj-examples-ordermatch
45+
org.quickfixj.quickfixj-messages
46+
org.quickfixj.quickfixj-messages-all
47+
org.quickfixj.quickfixj-messages-fix40
48+
org.quickfixj.quickfixj-messages-fix41
49+
org.quickfixj.quickfixj-messages-fix42
50+
org.quickfixj.quickfixj-messages-fix43
51+
org.quickfixj.quickfixj-messages-fix44
52+
org.quickfixj.quickfixj-messages-fix50
53+
org.quickfixj.quickfixj-messages-fix50sp1
54+
org.quickfixj.quickfixj-messages-fix50sp2
55+
org.quickfixj.quickfixj-messages-fixlatest
56+
org.quickfixj.quickfixj-messages-fixt11
57+
org.quickfixj.quickfixj-orchestration
58+
org.quickfixj.quickfixj-parent
59+
org.quickfixj.quickfixj-perf-test
60+
org.quickfixj.quickfixj-stress-test
61+
62+
- name: Deploy SNAPSHOT
63+
run: ./mvnw deploy -pl '!quickfixj-distribution' -B -V -Dmaven.install.skip=true -DskipTests -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"
64+
env:
65+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# ignore maven build directories
22
target/
3+
# ignore maven wrapper jar that gets built locally
4+
.mvn/wrapper/maven-wrapper.jar
35
# ignore Eclipse configuration files
46
.project
57
.classpath
@@ -12,3 +14,5 @@ target/
1214
# ignore NetBeans configuration
1315
nb-configuration.xml
1416
*.bak
17+
# ignore vim swap files
18+
*.swp

.junie/guidelines.md

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# QuickFIX/J Project Guidelines
2+
3+
## Project Overview
4+
5+
QuickFIX/J is a full-featured messaging engine for the FIX protocol. It is a 100% Java open source implementation of the popular QuickFIX engine. This document provides guidelines for contributing to and working with the QuickFIX/J project.
6+
7+
## Development Environment
8+
9+
### Prerequisites
10+
11+
- Java JDK 8 or higher
12+
- Maven 3.6.x or higher
13+
- Git
14+
15+
### Setting Up Development Environment
16+
17+
1. Clone the repository:
18+
```
19+
git clone https://github.com/quickfix-j/quickfixj.git
20+
cd quickfixj
21+
```
22+
23+
2. Build the project:
24+
Junie, please make sure to only use JDK 8 for the build and use the following Java options:
25+
```
26+
./mvnw package -Dmaven.javadoc.skip=true -PskipBundlePlugin,minimal-fix-latest -Xms3g -Xmx6g -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500
27+
```
28+
29+
## Coding Standards
30+
31+
### Java Code Style
32+
33+
- Follow standard Java naming conventions
34+
- Use 4 spaces for indentation (no tabs)
35+
- Maximum line length of 120 characters
36+
- Include JavaDoc for all public classes and methods
37+
- Use meaningful variable and method names
38+
39+
### Commit Guidelines
40+
41+
- Write clear, concise commit messages
42+
- Use present tense ("Add feature" not "Added feature")
43+
- Reference issue numbers when applicable
44+
- Keep commits focused on a single logical change
45+
46+
## Pull Request Process
47+
48+
1. Create a feature branch from the main branch
49+
2. Make your changes following the coding standards
50+
3. Add or update tests as necessary
51+
4. Ensure all tests pass with `./mvnw test`
52+
5. Submit a pull request with a clear description of the changes
53+
54+
## Testing Guidelines
55+
56+
- Write unit tests for all new code
57+
- Ensure existing tests pass before submitting changes
58+
- Integration tests should be included for significant features
59+
- Test edge cases and error conditions
60+
61+
## Documentation
62+
63+
- Update documentation for any changed functionality
64+
- Document public APIs with JavaDoc
65+
- Keep README and other documentation up to date
66+
67+
## Issue Reporting
68+
69+
When reporting issues, please include:
70+
71+
- A clear description of the problem
72+
- Steps to reproduce
73+
- Expected vs. actual behavior
74+
- Version information (QuickFIX/J version, Java version, OS)
75+
- Any relevant logs or error messages
76+
77+
## Release Process
78+
79+
- Version numbers follow semantic versioning (MAJOR.MINOR.PATCH)
80+
- Release notes should document all significant changes
81+
- Releases are built and deployed using Maven
82+
83+
## Community Guidelines
84+
85+
- Be respectful and inclusive in all communications
86+
- Help others when possible
87+
- Follow the code of conduct
88+
- Give credit where it's due
89+
90+
## License
91+
92+
QuickFIX/J is licensed under the QuickFIX Software License, Version 1.0. All contributions must be compatible with this license.

.mvn/wrapper/maven-wrapper.properties

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,7 @@
1414
# KIND, either express or implied. See the License for the
1515
# specific language governing permissions and limitations
1616
# under the License.
17-
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
18-
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
17+
#
18+
# NOTE: maven version should also be changed in pom.xml
19+
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip
20+
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar

0 commit comments

Comments
 (0)