// Ldap build file

dependencies {
	compile project(':spring-security-core'),
			springCoreDependency,
			"org.springframework:spring-beans:$springVersion",
			"org.springframework:spring-context:$springVersion",
			"org.springframework:spring-tx:$springVersion"

	optional "org.apache.directory.server:apacheds-core:$apacheDsVersion",
			 "org.apache.directory.server:apacheds-core-entry:$apacheDsVersion",
			 "org.apache.directory.server:apacheds-protocol-shared:$apacheDsVersion",
			 "org.apache.directory.server:apacheds-protocol-ldap:$apacheDsVersion",
			 "org.apache.directory.server:apacheds-server-jndi:$apacheDsVersion",
			 'org.apache.directory.shared:shared-ldap:0.9.15',
			 'ldapsdk:ldapsdk:4.1',
			 'com.unboundid:unboundid-ldapsdk:4.0.8'

	compile ("org.springframework.ldap:spring-ldap-core:$springLdapVersion") {
		exclude(group: 'commons-logging', module: 'commons-logging')
		exclude(group: 'org.springframework', module: 'spring-core')
		exclude(group: 'org.springframework', module: 'spring-tx')
		exclude(group: 'org.springframework', module: 'spring-beans')
		exclude(group: 'org.springframework.data', module: 'spring-data-commons')
	}

	testCompile "org.slf4j:slf4j-api:$slf4jVersion",
				"org.slf4j:jcl-over-slf4j:$slf4jVersion"
}

integrationTest {
	include('**/ApacheDSServerIntegrationTests.class', '**/ApacheDSEmbeddedLdifTests.class',
		'**/LdapUserDetailsManagerModifyPasswordTests.class')
//	  exclude('**/OpenLDAPIntegrationTestSuite.class')
	maxParallelForks = 1
}

// Runs a server for running the integration tests against (from an IDE, for example)
task(ldapServer, dependsOn: 'integrationTestClasses', type: JavaExec) {
	classpath = sourceSets.integrationTest.runtimeClasspath
	main = 'org.springframework.security.ldap.ApacheDSServerIntegrationTests'
}

