Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

working examples of builds for customisation #1

Open
wants to merge 27 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b6e359e
initial commit to preserve custom session messages work which I will …
david-gibbs-ig May 28, 2024
36a4796
initial commit
david-gibbs-ig May 28, 2024
6f6c16f
Add files via upload
david-gibbs-ig Sep 21, 2024
a8e3ac6
Merge pull request #1 from david-gibbs-ig/david-gibbs-ig-patch-1
david-gibbs-ig Sep 21, 2024
3ee4db9
Update readme.md
david-gibbs-ig Sep 21, 2024
a381b2f
Update readme.md
david-gibbs-ig Sep 21, 2024
79c8f88
Update readme.md
david-gibbs-ig Sep 21, 2024
624f666
Add files via upload
david-gibbs-ig Sep 21, 2024
1c7d067
renamed .github directory that had been deliberately misnamed to allo…
david-gibbs Sep 21, 2024
4ede33b
Merge pull request #2 from david-gibbs-ig/move-github
david-gibbs-ig Sep 21, 2024
5fe93f3
update github actions
david-gibbs-ig Sep 21, 2024
ff72002
correct line 57 github actions
david-gibbs-ig Sep 21, 2024
f444c74
Merge pull request #3 from david-gibbs-ig/update-github-actions
david-gibbs-ig Sep 21, 2024
93f7477
working on maven in github actions
david-gibbs-ig Sep 22, 2024
dd9a72a
Merge pull request #4 from david-gibbs-ig/update-github-actions
david-gibbs-ig Sep 22, 2024
e3c6351
Merge branch 'quickfix-j:main' into main
david-gibbs-ig Oct 18, 2024
5b42b0f
added example of customisation using legacy code gen
david-gibbs Oct 20, 2024
a39cbee
server example runs, before removing FIXT11 example
david-gibbs Oct 20, 2024
b722e7d
clean up temp directories
david-gibbs Oct 20, 2024
13d27f4
interim commit of crudely working version
david-gibbs Oct 21, 2024
47e81e3
added readme for examples and tidied code
david-gibbs Oct 21, 2024
3dc0a0f
Added an example of custom SecurityIdSource codeset
david-gibbs Oct 21, 2024
50f2f3c
Added an example of using the artifact build using legacy quickfixj c…
david-gibbs Oct 21, 2024
7f9e576
refactored project structure
david-gibbs-ig Nov 2, 2024
c21766f
added example of FIX50SP2 message generation from fix orchestra
david-gibbs-ig Nov 3, 2024
0757aed
remove .iml files
david-gibbs-ig Nov 3, 2024
2f0379a
Merge pull request #5 from david-gibbs-ig/fix50sp2-from-orchestra
david-gibbs-ig Nov 3, 2024
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
26 changes: 26 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''

---

**Describe the bug**
A clear and concise description of what the bug is.

**To Reproduce**
Steps to reproduce the behavior.
Or even better, a unit test or reproducer.

**Expected behavior**
A clear and concise description of what you expected to happen.

**system information:**
- OS: [e.g. Linux]
- Java version [e.g. JDK8]
- QFJ Version [e.g. 2.1.1]

**Additional context**
Add any other context about the problem here.
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: QuickFIX/J mailing list
url: https://sourceforge.net/projects/quickfixj/lists/quickfixj-users
about: Please ask usage related questions here.
- name: Stack Overflow
url: https://stackoverflow.com/questions/ask?tags=quickfixj
about: Please ask usage related questions here and tag your question with "quickfixj".
- name: Discussions
url: https://github.com/quickfix-j/quickfixj/discussions
about: Please ask usage related questions here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.

**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.

**Additional context**
Add any other context or screenshots about the feature request here.
16 changes: 16 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: "maven" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"
open-pull-requests-limit: 10
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"
open-pull-requests-limit: 10
58 changes: 58 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Java CI

on:
workflow_dispatch:
push:
pull_request:
types: [reopened, opened, synchronize]
schedule:
- cron: '30 5 * * *'

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macOS-13]
java: [8, 11, 17]
fail-fast: false
max-parallel: 4
name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Test with Maven
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" -Djdk.xml.xpathExprGrpLimit=1024 -Djdk.xml.xpathExprOpLimit=1024

test-windows:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest]
java: [8, 11, 17]
fail-fast: false
max-parallel: 3
name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}

steps:
- uses: actions/checkout@v4
- name: Configure pagefile
uses: al-cheb/[email protected]
with:
minimum-size: 8GB
maximum-size: 16GB
disk-root: "C:"
- name: Set up Windows JDK
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
cache: 'maven'
- name: Test with Maven on Windows
run: ./mvnw 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" -Djdk.xml.xpathExprGrpLimit=1024 -Djdk.xml.xpathExprOpLimit=1024
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**/target/*
**/logs-server/*
.idea
*/*.iml
.sdkmanrc
1 change: 1 addition & 0 deletions .java-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1.8
1 change: 1 addition & 0 deletions .mvn/jvm.config
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
-Xms3g -Xmx6g -Djdk.xml.xpathExprGrpLimit=500 -Djdk.xml.xpathExprOpLimit=500
18 changes: 18 additions & 0 deletions .mvn/wrapper/maven-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar
Binary file added FIXorchestraLogo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
103 changes: 103 additions & 0 deletions legacy-codegen/legacy-codegen-fix50sp2-application-messages/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.quickfixj.custom.examples</groupId>
<artifactId>legacy-codegen-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>

<artifactId>legacy-codegen-fix50sp2-application-messages</artifactId>
<packaging>jar</packaging>

<name>QuickFIX/J custom legacy codegen application messages</name>
<description>Example build of custom FIX application messages using legacy codegen</description>
<url>http://www.quickfixj.org</url>

<properties>
<generator.decimal>true</generator.decimal>
</properties>

<dependencies>
<dependency>
<groupId>org.quickfixj</groupId>
<artifactId>quickfixj-base</artifactId>
</dependency>
<dependency>
<groupId>org.quickfixj</groupId>
<artifactId>quickfixj-messages-fixt11</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.quickfixj</groupId>
<artifactId>quickfixj-codegenerator</artifactId>
<version>${quickfixj.version}</version>
<executions>
<execution>
<id>fix50sp2</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<dictFile>${project.basedir}/src/main/resources/FIX50SP2.modified.xml</dictFile>
<packaging>quickfix.fix50sp2</packaging>
<fieldPackage>quickfix.field</fieldPackage>
<decimal>${generator.decimal}</decimal>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>process-sources</phase>
<goals><goal>add-source</goal></goals>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>*.xml</include>
<include>quickfix/field/*.class</include>
<include>quickfix/fix*/**</include>
</includes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<configuration>
<includes>
<include>*.xml</include>
<include>quickfix/fix*/**</include>
<include>quickfix/field/**</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# QuickFIX/J legacy code generator example

## Description

This style of building custom message packages may provide the greatest compatibility with code the was compiled
against QuickFIX/J 2.3.3 and earlier.

In this example FIX Orchestra build steps are omitted. QuickFIX/J _Fields_ and their enumerated values are generated from the
pre-existing QuickFIX Dictionary rather than the official FIX Trading Community version of FIX Latest.

QuickFIX/J base, core and FIXT1.1 packages can be used with custom Application message packages built with the
legacy code generator. This allows the custom messages packages to be maintained independently of the
QuickFIX/J project.

Note that in this example the Maven co-ordinates for the custom artifact are different from the QuickFIX/J
`groupId` and `artifactId` . The Java package names will be the same as QuickFIX/J.
Only one implementation of the QuickFIX/J packages should be in the classpath at compilation or run time.

Legacy style builds may be useful to avoid having to change references to `static` constants based on the enumerated values
for _Fields_ in legacy QuickFIX Dictionaries; rather than FIX Orchestra `codeset`s.
The names of constants are different in many cases.

Legacy style builds may be convenient if working with existing customised QuickFIX Dictionaries.

## SecurityIDSource

The Field SecurityIDSource is customised as an example. See `src/main/resourcs`

## Optionally Skip javadoc

The build runs a little faster if one skips javadoc generation

`mvn clean install -Dmaven.javadoc.skip=true`
Loading
Loading