// Core build file

// We don't define a module dependency on crypto to avoid creating a transitive dependency
def cryptoProject = project(':spring-security-crypto')
def cryptoClasses = cryptoProject.sourceSets.main.output

configurations {
	included

	compile.extendsFrom included

	testCompile.exclude group: 'org.mockito', module: 'mockito-all'
}

dependencies {
	compile springCoreDependency,
			'aopalliance:aopalliance:1.0',
			"org.springframework:spring-aop:$springVersion",
			"org.springframework:spring-beans:$springVersion",
			"org.springframework:spring-context:$springVersion",
			"org.springframework:spring-expression:$springVersion"

	optional "net.sf.ehcache:ehcache:$ehcacheVersion",
			 'javax.annotation:jsr250-api:1.0',
			 "org.aspectj:aspectjrt:$aspectjVersion",
			 "org.springframework:spring-jdbc:$springVersion",
			 "org.springframework:spring-tx:$springVersion"

	included cryptoProject

	testCompile "commons-collections:commons-collections:$commonsCollectionsVersion",
				"org.springframework:spring-test:$springVersion",
				"org.slf4j:jcl-over-slf4j:$slf4jVersion",
				powerMockDependencies

	testRuntime "org.hsqldb:hsqldb:$hsqlVersion"
}

classes.doLast {
	copy {
		from cryptoClasses
		into sourceSets.main.output.classesDir
	}
}

sourceJar.from cryptoProject.sourceSets.main.java

configure(project.tasks.withType(Test)) {
	systemProperties['springSecurityVersion'] = version
	systemProperties['springVersion'] = springVersion
}