<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>
	<parent>
		<groupId>org.quickfixj</groupId>
		<artifactId>quickfixj-parent</artifactId>
		<version>3.0.0</version>
	</parent>

	<artifactId>quickfixj-core</artifactId>
	<packaging>bundle</packaging>

	<name>QuickFIX/J Core engine</name>
	<description>The core QuickFIX/J engine</description>
	<url>http://www.quickfixj.org</url>

	<properties>
		<acceptance.tests>**/AcceptanceTestSuite.java</acceptance.tests>
		<mainClass>org.quickfixj.Version</mainClass>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-base</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fixlatest</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix50sp2</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix50sp1</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix50</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix44</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix43</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix42</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix41</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fix40</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.quickfixj</groupId>
			<artifactId>quickfixj-messages-fixt11</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.vintage</groupId>
			<artifactId>junit-vintage-engine</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
            <version>${hsqldb.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>tyrex</groupId>
			<artifactId>tyrex</artifactId>
			<version>1.0.1</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-jdk14</artifactId>
			<version>${slf4j.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.netty</groupId>
			<artifactId>netty-example</artifactId>
			<version>4.2.10.Final</version>
			<scope>test</scope>
		</dependency>
        <dependency>
            <groupId>org.burningwave</groupId>
            <artifactId>tools</artifactId>
            <version>0.27.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
			<groupId>org.apache.mina</groupId>
			<artifactId>mina-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
		</dependency>
		<dependency>
			<groupId>com.sleepycat</groupId>
			<artifactId>je</artifactId>
			<version>18.3.12</version>
			<optional>true</optional>
		</dependency>
		<dependency>
		  <groupId>com.zaxxer</groupId>
		  <artifactId>HikariCP</artifactId>
		  <version>4.0.3</version>
		</dependency>
  </dependencies>


  <build>
		<resources>
		</resources>

		<testResources>
			<testResource>
				<directory>src/test/resources</directory>
			</testResource>
			<testResource>
				<directory>src/main/resources</directory>
			</testResource>
		</testResources>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<includes>
						<include>quickfix/**</include>
						<include>org/**</include>
						<include>quickfix/field/*</include>
						<include>quickfix/field/converter/*</include>
						<include>FIX*.xml</include>
					</includes>
					<excludes>
						<!-- exclude>quickfix/field/*</exclude -->
						<exclude>quickfix/fix*/**</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<configuration>
					<includes>
						<include>quickfix/**</include>
						<include>org/**</include>
						<include>quickfix/field/*</include>
						<include>quickfix/field/converter/*</include>
						<include>FIX*.xml</include>
					</includes>
					<excludes>
						<!-- exclude>quickfix/field/*</exclude -->
						<exclude>quickfix/fix*/**</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
				  <execution>
					  <id>attach-javadocs</id>
					  <goals>
						  <goal>jar</goal>
					  </goals>
					  <configuration>
						  <!-- Uncomment this to skip execution as this module requires more than 9gb memory -->
						  <!-- <skip>true</skip>-->
						  <quiet>true</quiet>
						  <source>8</source>
						  <sourcepath>src/main/java:${project.build.directory}/generated-sources</sourcepath>
					  </configuration>
				  </execution>
				</executions>
		   </plugin>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<configuration>
					<instructions>
						<Export-Package>quickfix,quickfix.*,org.quickfixj,org.quickfixj.*</Export-Package>
						<Private-Package />
					</instructions>
				</configuration>
			</plugin>
		</plugins>

	  <extensions>
		  <!-- required by Netty cross-platform build -->
		  <extension>
			  <groupId>kr.motd.maven</groupId>
			  <artifactId>os-maven-plugin</artifactId>
			  <version>1.7.1</version>
		  </extension>
	  </extensions>
	</build>

	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-report-plugin</artifactId>
				<version>${maven-surefire-plugin-version}</version>
				<reportSets />
				<configuration>
					<showSuccess>true</showSuccess>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>3.6.0</version>
			</plugin>
		</plugins>
	</reporting>

	<profiles>
		<!-- profile for skipping acceptance tests, triggered via -DskipAT=true property -->
		<profile>
			<id>skipAT</id>
			<activation>
				<property>
					<name>skipAT</name>
					<value>true</value>
				</property>
			</activation>
			<properties>
				<acceptance.tests />
			</properties>
		</profile>
		<!-- select different java options on JDK8 for surefire since otherwise the build will fail -->
		<profile>
			<id>surefire-java8</id>
			<activation>
				<jdk>1.8</jdk>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<argLine>
								-Xmx2g -Djava.net.preferIPv4Stack=true
							</argLine>
							<trimStackTrace>false</trimStackTrace>
							<includes>
								<include>**/*Test.java</include>
								<include>${acceptance.tests}</include>
							</includes>
							<excludes>
								<exclude>**/*ForTest.java</exclude>
								<exclude>**/Abstract*Test.java</exclude>
								<exclude>**/AcceptanceTestSuite$*</exclude>
							</excludes>
							<systemPropertyVariables>
								<atest.heartbeat>5</atest.heartbeat>
								<atest.timeout>60000</atest.timeout>
								<atest.reconnectDelay>5</atest.reconnectDelay>
								<atest.skipslow>false</atest.skipslow>
							</systemPropertyVariables>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<!-- surefire for JDK9 and upwards -->
		<profile>
			<id>surefire</id>
			<activation>
				<jdk>[1.9,)</jdk>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<argLine>
								-Xmx2g -Djava.net.preferIPv4Stack=true
								--add-opens java.base/java.lang=ALL-UNNAMED
							</argLine>
							<trimStackTrace>false</trimStackTrace>
							<includes>
								<include>**/*Test.java</include>
								<include>${acceptance.tests}</include>
							</includes>
							<excludes>
								<exclude>**/*ForTest.java</exclude>
								<exclude>**/Abstract*Test.java</exclude>
								<exclude>**/AcceptanceTestSuite$*</exclude>
							</excludes>
							<systemPropertyVariables>
								<atest.heartbeat>5</atest.heartbeat>
								<atest.timeout>60000</atest.timeout>
								<atest.reconnectDelay>5</atest.reconnectDelay>
								<atest.skipslow>false</atest.skipslow>
							</systemPropertyVariables>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
