<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<groupId>org.quickfixj</groupId>
	<artifactId>quickfixj-parent</artifactId>
	<version>3.0.0</version>
	<packaging>pom</packaging>

	<name>QuickFIX/J Parent</name>
	<description>
		The Financial Information eXchange (FIX) protocol is a messaging standard developed
		specifically for the real-time electronic exchange of securities transactions.
		FIX is a public-domain specification owned and maintained by FIX Protocol, Ltd (FPL).
		QuickFIX/J is a full featured messaging engine for the FIX protocol.
		It is a 100% Java open source implementation of the popular C++ QuickFIX engine.
	</description>
	<url>http://www.quickfixj.org</url>

	<licenses>
		<license>
			<name>The QuickFIX Software License, Version 1.0</name>
			<url>http://www.quickfixj.org/documentation/license.html</url>
			<distribution>repo</distribution>
		</license>
	</licenses>


	<scm>
		<connection>scm:git:git://github.com/quickfix-j/quickfixj.git</connection>
		<developerConnection>scm:git:git@github.com:quickfix-j/quickfixj.git</developerConnection>
		<url>https://github.com/quickfix-j/quickfixj/</url>
		<tag>master</tag>
	</scm>

	<developers>
		<developer>
			<id>chrjohn</id>
			<name>Christoph John</name>
		</developer>
	</developers>

	<issueManagement>
		<system>github issues</system>
		<url>https://github.com/quickfix-j/quickfixj/issues</url>
	</issueManagement>

	<modules>
		<module>quickfixj-codegenerator</module>
		<module>quickfixj-dictgenerator</module>
		<module>quickfixj-class-pruner-maven-plugin</module>
		<module>quickfixj-orchestration</module>
		<module>quickfixj-base</module>
		<module>quickfixj-messages</module>
		<module>quickfixj-core</module>
		<module>quickfixj-examples</module>
		<module>quickfixj-all</module>
		<module>quickfixj-distribution</module>
		<module>quickfixj-perf-test</module>
        <module>quickfixj-stress-test</module>
    </modules>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<jdkLevel>1.8</jdkLevel>
		<slf4j.version>2.0.17</slf4j.version>
		<mockito-core.version>4.11.0</mockito-core.version>
		<hamcrest.version>3.0</hamcrest.version>
		<junit.jupiter.version>5.14.3</junit.jupiter.version>
		<maven.compiler.source>8</maven.compiler.source>
		<maven.compiler.target>8</maven.compiler.target>
		<mainClass/>
        <maven.version>3.9.12</maven.version> <!-- please also change version in .mvn/wrapper/maven-wrapper.properties -->
		<maven-libs-version>${maven.version}</maven-libs-version>
		<maven-plugin-api-version>${maven.version}</maven-plugin-api-version>
		<maven-resources-plugin-version>3.4.0</maven-resources-plugin-version>
		<maven-compiler-plugin-version>3.15.0</maven-compiler-plugin-version>
		<maven-jar-plugin-version>3.5.0</maven-jar-plugin-version>
		<maven-surefire-plugin-version>3.5.5</maven-surefire-plugin-version>
		<maven-pmd-plugin-version>3.28.0</maven-pmd-plugin-version>
		<maven-source-plugin-version>3.4.0</maven-source-plugin-version>
		<maven-javadoc-plugin-version>3.12.0</maven-javadoc-plugin-version>
		<maven-shade-plugin-version>3.6.1</maven-shade-plugin-version>
		<maven-assembly-plugin-version>3.8.0</maven-assembly-plugin-version>
		<maven-bundle-plugin-version>5.1.9</maven-bundle-plugin-version>
		<maven-gpg-plugin-version>3.2.8</maven-gpg-plugin-version>
		<maven-deploy-plugin-version>3.1.4</maven-deploy-plugin-version>
		<nexus-staging-maven-plugin-version>1.7.0</nexus-staging-maven-plugin-version>
		<build-helper-maven-plugin-version>3.6.1</build-helper-maven-plugin-version>
		<maven-shared-utils.version>3.4.2</maven-shared-utils.version>
		<file-management.version>3.2.0</file-management.version>
		<maven-plugin-annotations.version>3.15.2</maven-plugin-annotations.version>
		<maven-plugin-testing-harness.version>3.5.1</maven-plugin-testing-harness.version>
		<plantuml-maven-plugin-version>1.2</plantuml-maven-plugin-version>
		<plantuml-version>8059</plantuml-version>
		<xml-maven-plugin-version>1.2.1</xml-maven-plugin-version>
		<fix-orchestra.standard.version>1.5.4</fix-orchestra.standard.version>
		<fix-orchestra.repository.version>1.7.3</fix-orchestra.repository.version>
		<docgen.version>1.6.8</docgen.version>
		<jaxb.version>4.0.5</jaxb.version>
		<apache.mina.version>2.2.4</apache.mina.version>
		<commons.io.version>2.21.0</commons.io.version>
		<orchestra.file>OrchestraFIXLatest.xml</orchestra.file>
		<org.quickfixj.orchestra.tools.version>1.0.3</org.quickfixj.orchestra.tools.version>
		<jaxen.version>2.0.0</jaxen.version>
        <jmh.version>1.37</jmh.version>
        <jcstress.version>0.16</jcstress.version>
        <hsqldb.version>1.8.0.10</hsqldb.version>
	</properties>

   <dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>io.fixprotocol.orchestrations</groupId>
				<artifactId>fix-standard</artifactId>
				<version>${fix-orchestra.standard.version}</version>
			</dependency>
			<dependency>
				<groupId>io.fixprotocol.orchestra</groupId>
				<artifactId>repository</artifactId>
				<version>${fix-orchestra.repository.version}</version>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-engine</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.vintage</groupId>
				<artifactId>junit-vintage-engine</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit.jupiter</groupId>
				<artifactId>junit-jupiter-params</artifactId>
				<version>${junit.jupiter.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<version>${mockito-core.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest</artifactId>
				<version>${hamcrest.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>jakarta.xml.bind</groupId>
				<artifactId>jakarta.xml.bind-api</artifactId>
				<version>${jaxb.version}</version>
			</dependency>
			<dependency>
				<groupId>com.sun.xml.bind</groupId>
				<artifactId>jaxb-impl</artifactId>
				<scope>runtime</scope>
				<version>${jaxb.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.mina</groupId>
				<artifactId>mina-core</artifactId>
				<version>${apache.mina.version}</version>
			</dependency>
			<dependency>
			    <groupId>commons-io</groupId>
			    <artifactId>commons-io</artifactId>
			    <version>${commons.io.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-plugin-api</artifactId>
				<version>${maven-plugin-api-version}</version>
			</dependency>
			<dependency>
			  <groupId>org.apache.maven.shared</groupId>
			  <artifactId>maven-shared-utils</artifactId>
			  <version>${maven-shared-utils.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.maven.shared</groupId>
				<artifactId>file-management</artifactId>
				<version>${file-management.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-core</artifactId>
				<version>${maven-libs-version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-artifact</artifactId>
				<version>${maven-libs-version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-compat</artifactId>
				<version>${maven-libs-version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.maven.plugin-tools</groupId>
				<artifactId>maven-plugin-annotations</artifactId>
				<version>${maven-plugin-annotations.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.maven.plugin-testing</groupId>
				<artifactId>maven-plugin-testing-harness</artifactId>
				<version>${maven-plugin-testing-harness.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.maven</groupId>
				<artifactId>maven-project</artifactId>
				<scope>provided</scope>
				<version>2.2.1</version>
			</dependency>
			<dependency>
				<groupId>org.codehaus.plexus</groupId>
				<artifactId>plexus-utils</artifactId>
				<version>4.0.2</version>
			</dependency>
			<dependency>
				<groupId>org.codehaus.plexus</groupId>
				<artifactId>plexus-xml</artifactId>
				<version>4.0.4</version>
			</dependency>
			<dependency>
				<groupId>com.sleepycat</groupId>
				<artifactId>je</artifactId>
				<version>18.3.12</version>
				<optional>true</optional>
			</dependency>
			<dependency>
				<!-- used by dictgenerator package -->
				<groupId>org.dom4j</groupId>
				<artifactId>dom4j</artifactId>
				<version>2.1.4</version>
				<optional>true</optional>
			</dependency>
			<dependency>
				<!-- required by dom4j at runtime -->
				<groupId>jaxen</groupId>
				<artifactId>jaxen</artifactId>
				<version>${jaxen.version}</version>
				<scope>runtime</scope>
			</dependency>
			<dependency>
				<!-- https://github.com/quickfix-j/quickfixj/discussions/566 -->
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-jdk14</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>${maven-deploy-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${maven-resources-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven-compiler-plugin-version}</version>
					<inherited>true</inherited>
					<configuration>
						<forceLegacyJavacApi>true</forceLegacyJavacApi> <!-- https://bugs.openjdk.java.net/browse/JDK-8216202 -->
						<meminitial>2g</meminitial>
						<maxmem>4g</maxmem>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${maven-jar-plugin-version}</version>
					<configuration>
						<archive>
							<manifest>
								<mainClass>${mainClass}</mainClass>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven-surefire-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-report-plugin</artifactId>
					<version>${maven-surefire-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-pmd-plugin</artifactId>
					<version>${maven-pmd-plugin-version}</version>
					<configuration>
						<targetJdk>${jdkLevel}</targetJdk>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>${maven-source-plugin-version}</version>
					<executions>
						<execution>
							<id>attach-sources</id>
							<phase>package</phase>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven-javadoc-plugin-version}</version>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<goals>
								<goal>jar</goal>
							</goals>
							<configuration>
								<quiet>true</quiet>
								<doclint>none</doclint>
								<maxmemory>5g</maxmemory>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>${maven-shade-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>${maven-assembly-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-gpg-plugin</artifactId>
					<version>${maven-gpg-plugin-version}</version>
					<executions>
						<execution>
							<id>sign-artifacts</id>
							<phase>verify</phase>
							<goals>
								<goal>sign</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.sonatype.plugins</groupId>
					<artifactId>nexus-staging-maven-plugin</artifactId>
					<version>${nexus-staging-maven-plugin-version}</version>
					<extensions>true</extensions>
					<configuration>
						<serverId>ossrh</serverId>
						<nexusUrl>https://ossrh-staging-api.central.sonatype.com</nexusUrl>
						<autoReleaseAfterClose>true</autoReleaseAfterClose>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.felix</groupId>
					<artifactId>maven-bundle-plugin</artifactId>
					<version>${maven-bundle-plugin-version}</version>
					<extensions>true</extensions>
					<executions>
						<!--
							This execution makes sure that the manifest is available
							when the tests are executed
						-->
						<execution>
							<goals>
								<goal>manifest</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>xml-maven-plugin</artifactId>
					<version>${xml-maven-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>build-helper-maven-plugin</artifactId>
					<version>${build-helper-maven-plugin-version}</version>
				</plugin>
				<plugin>
					<groupId>net.sourceforge.plantuml</groupId>
					<artifactId>plantuml</artifactId>
					<version>${plantuml-version}</version>
				</plugin>
				<plugin>
					<groupId>com.github.jeluard</groupId>
					<artifactId>plantuml-maven-plugin</artifactId>
					<version>${plantuml-maven-plugin-version}</version>
					<dependencies>
						<dependency>
							<groupId>net.sourceforge.plantuml</groupId>
							<artifactId>plantuml</artifactId>
						</dependency>
					</dependencies>
				</plugin>
				<plugin>
					<artifactId>maven-invoker-plugin</artifactId>
					<version>3.9.1</version>
				</plugin>
				<plugin>
					<artifactId>maven-plugin-plugin</artifactId>
					<version>3.15.2</version>
				</plugin>
				<plugin>
					<artifactId>maven-install-plugin</artifactId>
					<version>3.1.4</version>
				</plugin>
				<plugin>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.5.0</version>
				</plugin>
				<plugin>
					<groupId>org.quickfixj.orchestra</groupId>
					<artifactId>quickfixj-from-fix-orchestra-code-generator-maven-plugin</artifactId>
					<version>${org.quickfixj.orchestra.tools.version}</version>
				</plugin>
				<plugin>
					<groupId>org.quickfixj.orchestra</groupId>
					<artifactId>quickfixj-from-fix-orchestra-dictionary-generator-maven-plugin</artifactId>
					<version>${org.quickfixj.orchestra.tools.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>3.6.2</version>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<!-- enable bundle packaging -->
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
			</plugin>
			<plugin>
				<!-- run "mvn com.github.jeluard:plantuml-maven-plugin:generate" to generate diagrams in target -->
				<groupId>com.github.jeluard</groupId>
				<artifactId>plantuml-maven-plugin</artifactId>
				<configuration>
					<sourceFiles>
						<directory>${basedir}</directory>
						<includes>
							<include>**/*.puml</include>
						</includes>
					</sourceFiles>
					<outputInSourceDirectory>true</outputInSourceDirectory>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>net.sourceforge.plantuml</groupId>
						<artifactId>plantuml</artifactId>
						<version>${plantuml-version}</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<id>enforce-versions</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<requireMavenVersion>
									<version>${maven.version}</version>
								</requireMavenVersion>
							</rules>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	<profiles>
		<profile>
			<id>skipBundlePlugin</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.felix</groupId>
						<artifactId>maven-bundle-plugin</artifactId>
						<executions>
							<execution>
								<phase/>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>release</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
					</plugin>
					<plugin>
						<groupId>org.sonatype.plugins</groupId>
						<artifactId>nexus-staging-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>sign</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>java-8-compilation</id>
			<activation>
			<jdk>[9,)</jdk>
			</activation>
			<properties>
				<maven.compiler.release>8</maven.compiler.release>
			</properties>
		</profile>
	</profiles>
	<distributionManagement>
		<snapshotRepository>
			<id>github</id>
			<name>GitHub Packages - Snapshots</name>
			<url>https://maven.pkg.github.com/quickfix-j/quickfixj</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>

</project>
