<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>

	<artifactId>queo-commons-persistence-libdef</artifactId>
	<name>queo commons persistence internal common lib definition</name>
	<description>A Bill Of Materials containing the dependencies that are used internaly</description>
	<packaging>pom</packaging>

	<parent>
		<groupId>com.queomedia.commons.persistence</groupId>
		<artifactId>queo-commons-persistence</artifactId>
		<version>4.8.4</version>
	</parent>

	<properties>
		<hibernate.version>5.6.15.Final</hibernate.version>
		<javassist.version>3.25.0-GA</javassist.version>
		<bytebuddy.version>1.10.1</bytebuddy.version>

		<!--  spring-data.version 2021.2.7 contains: spring-data-commons and spring-data-jpa version 2.7.7 -->
		<spring-data.version>2021.2.7</spring-data.version>
		<slf4j.version>1.7.36</slf4j.version>
		<hamcrest.version>2.2</hamcrest.version>

		<aspectj.version>1.9.19</aspectj.version>

		<jaxb.version>2.3.1</jaxb.version>
		<jaxb.runtime.version>${jaxb.version}</jaxb.runtime.version>

		<jackson.version>2.9.9</jackson.version>
		<jmock.version>2.12.0</jmock.version>
	</properties>


	<dependencyManagement>
		<dependencies>

			<dependency>
				<groupId>com.queomedia.commons.persistence</groupId>
				<artifactId>queo-commons-persistence-bom</artifactId>
				<version>4.8.4</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- queo commons (for main) -->
			<dependency>
				<groupId>com.queomedia</groupId>
				<artifactId>queo-commons-checks</artifactId>
				<version>1.2.4</version>
			</dependency>

			<dependency>
				<groupId>com.queomedia</groupId>
				<artifactId>queo-commons-equals</artifactId>
				<version>1.3.3</version>
			</dependency>

			<dependency>
				<groupId>com.queomedia</groupId>
				<artifactId>queo-commons-exceptions</artifactId>
				<version>1.2.4</version>
			</dependency>

			<!-- apache/jarkarta/... commons -->
			<dependency>
				<groupId>commons-lang</groupId>
				<artifactId>commons-lang</artifactId>
				<version>2.6</version>
			</dependency>
			<dependency>
				<groupId>commons-io</groupId>
				<artifactId>commons-io</artifactId>
				<version>2.11.0</version>
			</dependency>
			<dependency>
				<groupId>commons-collections</groupId>
				<artifactId>commons-collections</artifactId>
				<version>3.2.2</version>
			</dependency>
			<dependency>
				<groupId>commons-beanutils</groupId>
				<artifactId>commons-beanutils</artifactId>
				<version>1.9.4</version>
				<exclusions>
					<exclusion>
						<groupId>commons-logging</groupId>
						<artifactId>commons-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<!-- spring -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-framework-bom</artifactId>
				<version>5.3.25</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.data</groupId>
				<artifactId>spring-data-bom</artifactId>
				<version>${spring-data.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>de.humanfork.springdatajpaextension</groupId>
				<artifactId>spring-data-jpa-extension</artifactId>
				<version>0.4.4</version>
			</dependency>

			<!-- hibernate / jpa -->
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-entitymanager</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-ehcache</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-jpamodelgen</artifactId>
				<version>${hibernate.version}</version>
			</dependency>

			<dependency>
				<groupId>javax.persistence</groupId>
				<artifactId>javax.persistence-api</artifactId>
				<version>2.2</version>
			</dependency>


			<!-- validation -->
			<dependency>
				<groupId>javax.validation</groupId>
				<artifactId>validation-api</artifactId>
				<version>2.0.1.Final</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate.validator</groupId>
				<artifactId>hibernate-validator</artifactId>
				<version>6.2.4.Final</version>
			</dependency>
			<dependency>
				<!--
			   		el-impl is needed for hibernate-validator 5 and 6 
			   		http://stackoverflow.com/questions/19451814/java-lang-noclassdeffounderror-javax-el-propertynotfoundexception-when-i-send-i
			   		else: ClassNotFoundException: com.sun.el.ExpressionFactoryImpl			   		
			   		But is is typical used with scope provided			   		
			   		with hibernate-validator 6.0.7 we use javax.el-api 3.0.0 and with the glassfish implementation 3.0.1-b10
			 	-->
				<groupId>org.glassfish</groupId>
				<artifactId>javax.el</artifactId>
				<version>3.0.1-b10</version>
			</dependency>

			<!-- slf4j -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-nop</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jcl-over-slf4j</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>log4j-over-slf4j</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jul-to-slf4j</artifactId>
				<version>${slf4j.version}</version>
			</dependency>


			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy</artifactId>
				<version>${bytebuddy.version}</version>
			</dependency>

			<dependency>
				<groupId>org.javassist</groupId>
				<artifactId>javassist</artifactId>
				<version>${javassist.version}</version>
			</dependency>

			<!-- activation for jaxb -->
			<dependency>
				<groupId>javax.activiation</groupId>
				<artifactId>javax.activation-api</artifactId>
				<version>1.2.0</version>
			</dependency>
			<!-- jaxb api -->
			<dependency>
				<!-- jaxb api implmentation is: org.glassfish.jaxb:jaxb-runtime -->
				<groupId>javax.xml.bind</groupId>
				<artifactId>jaxb-api</artifactId>
				<version>${jaxb.version}</version>
			</dependency>
			<!-- jaxb impl -->
			<dependency>
				<groupId>org.glassfish.jaxb</groupId>
				<artifactId>jaxb-runtime</artifactId>
				<version>${jaxb.runtime.version}</version>
			</dependency>

			<dependency>
				<groupId>org.aspectj</groupId>
				<artifactId>aspectjrt</artifactId>
				<version>${aspectj.version}</version>
			</dependency>
			<dependency>
				<groupId>org.aspectj</groupId>
				<artifactId>aspectjweaver</artifactId>
				<version>${aspectj.version}</version>
			</dependency>
			<dependency>
				<groupId>org.aspectj</groupId>
				<artifactId>aspectjtools</artifactId>
				<version>${aspectj.version}</version>
			</dependency>

			<!-- jackson -->
			<dependency>
				<groupId>com.fasterxml.jackson</groupId>
				<artifactId>jackson-bom</artifactId>
				<version>${jackson.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			
			<dependency>
				<!-- was part of Java in Java8 but not in Java9+ -->
				<groupId>jakarta.annotation</groupId>
				<artifactId>jakarta.annotation-api</artifactId>
				<version>1.3.5</version>
			</dependency>

			<!-- for test -->
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.13.2</version>
				<exclusions>
					<exclusion>
						<groupId>org.hamcrest</groupId>
						<artifactId>hamcrest-core</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<!-- AssertJ -->
			<dependency>
				<groupId>org.assertj</groupId>
				<artifactId>assertj-core</artifactId>
				<version>3.24.2</version>
				<scope>test</scope>
			</dependency>

			<!-- jmock -->
			<dependency>
				<groupId>org.jmock</groupId>
				<artifactId>jmock</artifactId>
				<version>${jmock.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.hamcrest</groupId>
						<artifactId>hamcrest-library</artifactId>
					</exclusion>
					<exclusion>
						<groupId>com.google.code.findbugs</groupId>
						<artifactId>annotations</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.jmock</groupId>
				<artifactId>jmock-junit4</artifactId>
				<version>${jmock.version}</version>
				<exclusions>
					<exclusion>
						<!-- we use junit:junit -->
						<groupId>junit</groupId>
						<artifactId>junit-dep</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.jmock</groupId>
				<artifactId>jmock-legacy</artifactId>
				<version>${jmock.version}</version>
			</dependency>


			<!-- JSONAssert (uppercase "SON") -->
			<dependency>
				<groupId>org.skyscreamer</groupId>
				<artifactId>jsonassert</artifactId>
				<version>1.5.1</version>
			</dependency>

			<!-- hamcrest -->
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest</artifactId>
				<version>${hamcrest.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hamcrest</groupId>
				<artifactId>hamcrest-library</artifactId>
				<!-- if this dependency is used then in version 2.1 because the dependency contains zero classes 
				     and dependency update problems occur immediately -->
				<version>${hamcrest.version}</version>
			</dependency>

			<dependency>
				<groupId>com.queomedia</groupId>
				<artifactId>queo-commons-asserts</artifactId>
				<version>2.0.2</version>
			</dependency>

			<dependency>
				<groupId>com.h2database</groupId>
				<artifactId>h2</artifactId>
				<version>1.4.196</version>
			</dependency>

		</dependencies>
	</dependencyManagement>

</project>
