ext {
	//spring libs
	springVersion = '5.0.10.RELEASE'
	bootVersion = '2.0.6.RELEASE'
	springDataVersion = '2.0.11.RELEASE'
	springAmqpVersion = '2.1.0.RELEASE'
	springSecurityVersion = '5.0.2.BUILD-SNAPSHOT'
	springBatchVersion = '4.0.0.RELEASE'
	springIntegrationVersion = '5.0.2.BUILD-SNAPSHOT'

	//logging libs
	slf4jVersion = '1.7.25'
	logbackVersion = '1.2.3'

	groovyVersion = '2.4.5'
	guavaVersion = '21.0'

	aspectjVersion = '1.8.13'
	derbyVersion = '10.13.1.1'
	dbcpVersion = '2.1'
	mysqlVersion = '6.0.6'
	h2Version = '2.0.206'
	jodaVersion = '2.9.9'
	utVersion = '6.0.1.GA'
	javaxValidationVersion = '2.0.0.Beta2'
	javaElVersion = '3.0.1-b04'
	glasshfishELVersion = '2.2.1-b05'
	jmsVersion = '2.0'
	artemisVersion = '2.4.0'
	hornetqVersion = '2.4.0.Final'
	castorVersion = '1.4.1'
	jacksonVersion = '2.9.0'
	httpclientVersion = '4.5.3'
	poiVersion = '4.1.2'
	tilesVersion = '3.0.7'
	bootstrapVersion = '3.3.7-1'
	thymeSecurityVersion = '3.0.2.RELEASE'
	jQueryVersion = '3.2.1'
	twsVersion = '9.0.0.M22'
	annotationApiVersion = '1.3.2'

	//persistency libraries
	hibernateVersion = '5.6.5.Final'
	hibernateJpaVersion = '1.0.2.Final'
	hibernateValidatorVersion = '5.4.3.Final' //6.0.0.Beta2
	atomikosVersion = '4.0.4'

	//testing libs
	mockitoVersion = '2.0.2-beta'
	junitVersion = '4.12'
	hamcrestVersion = '1.3'
	dbunitVersion = '2.7.2'
	junit5Version = '5.3.1'

	spring = [
			context           : "org.springframework:spring-context:$springVersion",
			webmvc            : "org.springframework:spring-webmvc:$springVersion",
			aop               : "org.springframework:spring-aop:$springVersion",
			aspects           : "org.springframework:spring-aspects:$springVersion",
			tx                : "org.springframework:spring-tx:$springVersion",
			jdbc              : "org.springframework:spring-jdbc:$springVersion",
			contextSupport    : "org.springframework:spring-context-support:$springVersion",
			orm               : "org.springframework:spring-orm:$springVersion",
			data              : "org.springframework.data:spring-data-jpa:$springDataVersion",
			test              : "org.springframework:spring-test:$springVersion",
			jms               : "org.springframework:spring-jms:$springVersion",
			oxm               : "org.springframework:spring-oxm:$springVersion",
			securityWeb       : "org.springframework.security:spring-security-web:$springSecurityVersion",
			securityConfig    : "org.springframework.security:spring-security-config:$springSecurityVersion",
			securityTaglibs   : "org.springframework.security:spring-security-taglibs:$springSecurityVersion",
			rabbit            : "org.springframework.amqp:spring-rabbit:$springAmqpVersion",
			springSecurityTest: "org.springframework.security:spring-security-test:$springSecurityVersion",
			webSocket         : "org.springframework:spring-websocket:$springVersion",
			messaging         : "org.springframework:spring-messaging:$springVersion",
			batchCore         : "org.springframework.batch:spring-batch-core:$springBatchVersion",
			batchIntegration  : "org.springframework.batch:spring-batch-integration:$springBatchVersion",
			integrationFile   : "org.springframework.integration:spring-integration-file:$springIntegrationVersion",
			webflux           : "org.springframework:spring-webflux:$springVersion",
			annotationApi	  : "javax.annotation:javax.annotation-api:$annotationApiVersion"

	]

	hibernate = [
			validator  : "org.hibernate:hibernate-validator:$hibernateValidatorVersion",
			jpaModelGen: "org.hibernate:hibernate-jpamodelgen:$hibernateVersion",
			ehcache    : "org.hibernate:hibernate-ehcache:$hibernateVersion",
			em         : "org.hibernate:hibernate-entitymanager:$hibernateVersion",
			core       : "org.hibernate:hibernate-core:$hibernateVersion",
			envers     : "org.hibernate:hibernate-envers:$hibernateVersion",
			jpaApi     : "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:$hibernateJpaVersion",
			querydslapt: "com.mysema.querydsl:querydsl-apt:2.7.1",
			tx         : "com.atomikos:transactions-hibernate4:$atomikosVersion"
	]


	boot = [
			springBootPlugin: "org.springframework.boot:spring-boot-gradle-plugin:$bootVersion",
			starter         : "org.springframework.boot:spring-boot-starter:$bootVersion",
			starterWeb      : "org.springframework.boot:spring-boot-starter-web:$bootVersion",
			actuator        : "org.springframework.boot:spring-boot-starter-actuator:$bootVersion",
			starterTest     : "org.springframework.boot:spring-boot-starter-test:$bootVersion",
			starterAop      : "org.springframework.boot:spring-boot-starter-aop:$bootVersion",
			starterJdbc     : "org.springframework.boot:spring-boot-starter-jdbc:$bootVersion",
			starterJpa      : "org.springframework.boot:spring-boot-starter-data-jpa:$bootVersion",
			starterJta      : "org.springframework.boot:spring-boot-starter-jta-atomikos:$bootVersion",
			starterJms      : "org.springframework.boot:spring-boot-starter-artemis:$bootVersion",
			starterRabbitmq : "org.springframework.boot:spring-boot-starter-amqp:$bootVersion",
			starterThyme    : "org.springframework.boot:spring-boot-starter-thymeleaf:$bootVersion",
			starterSecurity : "org.springframework.boot:spring-boot-starter-security:$bootVersion",
			starterBatch    : "org.springframework.boot:spring-boot-starter-batch:$bootVersion",
			starterWebflux  : "org.springframework.boot:spring-boot-starter-webflux:$bootVersion"

	]

	testing = [
			junit       : "junit:junit:$junitVersion",
			junit5Engine: "org.junit.jupiter:junit-jupiter-engine:$junit5Version",
			junit5Runner: "org.junit.platform:junit-platform-runner:1.0.0-M4",
			mockito     : "org.mockito:mockito-all:$mockitoVersion",
			easymock    : "org.easymock:easymock:3.4",
			jmock       : "org.jmock:jmock:2.8.2",
			hamcrestCore: "org.hamcrest:hamcrest-core:$hamcrestVersion",
			hamcrestLib : "org.hamcrest:hamcrest-library:$hamcrestVersion",
			dbunit      : "org.dbunit:dbunit:$dbunitVersion"
	]


	misc = [
			slf4jJcl       : "org.slf4j:jcl-over-slf4j:$slf4jVersion",
			logback        : "ch.qos.logback:logback-classic:$logbackVersion",
			groovy         : "org.codehaus.groovy:groovy-all:$groovyVersion",
			inject         : "javax.inject:javax.inject:1",
			validation     : "javax.validation:validation-api:$javaxValidationVersion",
			aspectjweaver  : "org.aspectj:aspectjweaver:$aspectjVersion",
			aspectjrt      : "org.aspectj:aspectjrt:$aspectjVersion",
			lang3          : "org.apache.commons:commons-lang3:3.5",
			guava          : "com.google.guava:guava:$guavaVersion",
			joda           : "joda-time:joda-time:$jodaVersion",
			usertype       : "org.jadira.usertype:usertype.core:$utVersion",
			artemis        : "org.apache.activemq:artemis-jms-server:$artemisVersion",
			javaEl         : "javax.el:javax.el-api:$javaElVersion",
			glassfishEl    : "org.glassfish.web:el-impl:$glasshfishELVersion",
			jms            : "javax.jms:javax.jms-api:$jmsVersion",
			artemisClient  : "org.apache.activemq:artemis-jms-client:$artemisVersion",
			artemisServer  : "org.apache.activemq:artemis-jms-server:$artemisVersion",
			hornetq        : "org.hornetq:hornetq-jms-client:$hornetqVersion",
			castor         : "org.codehaus.castor:castor-xml:$castorVersion",
			jacksonDatabind: "com.fasterxml.jackson.core:jackson-databind:$jacksonVersion",
			poi            : "org.apache.poi:poi:$poiVersion",
			io             : "commons-io:commons-io:2.7",
	]

	web = [
			tiles        : "org.apache.tiles:tiles-jsp:$tilesVersion",
			jstl         : "jstl:jstl:1.2",
			bootstrap    : "org.webjars:bootstrap:$bootstrapVersion",
			jQuery       : "org.webjars:jquery:$jQueryVersion",
			thymeSecurity: "org.thymeleaf.extras:thymeleaf-extras-springsecurity4:$thymeSecurityVersion",
			tomcatWsApi  : "org.apache.tomcat:tomcat-websocket-api:$twsVersion",
			tomcatWsEmbed: "org.apache.tomcat.embed:tomcat-embed-websocket:$twsVersion",
			httpclient   : "org.apache.httpcomponents:httpclient:$httpclientVersion",
			websocket    : "javax.websocket:javax.websocket-api:1.1",
			servlet      : "javax:javaee-web-api:7.0",
	]

	react = [
			projReactorIpc: "io.projectreactor.ipc:reactor-netty:0.7.15.RELEASE",
			tomcatEmbedded: "org.apache.tomcat.embed:tomcat-embed-core:9.0.0.M25",
	]

	db = [
			mysql : "mysql:mysql-connector-java:$mysqlVersion",
			derby : "org.apache.derby:derby:$derbyVersion",
			dbcp2 : "org.apache.commons:commons-dbcp2:$dbcpVersion",
			dbcp  : "commons-dbcp:commons-dbcp:1.4",
			h2    : "com.h2database:h2:$h2Version",
			hsqldb: "org.hsqldb:hsqldb:2.4.0"
	]
}

subprojects {
	version '5.0-SNAPSHOT'

	repositories {
		mavenLocal()
		mavenCentral()
		maven { url "http://repo.spring.io/release" }
		maven { url "http://repo.spring.io/snapshot" }
		maven { url "https://repo.spring.io/libs-snapshot" }
		maven { url "http://repo.spring.io/milestone" }
		maven { url "https://repo.spring.io/libs-milestone" }
	}

	dependencies {
		spring.annotationApi
	}
}

tasks.withType(JavaCompile) {
	options.encoding = "UTF-8"
}