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

dependencies {
    compile '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:3.2',
                "org.springframework:spring-test:$springVersion",
                "org.slf4j:jcl-over-slf4j:$slf4jVersion",
                powerMockDependencies

    testRuntime "hsqldb:hsqldb:$hsqlVersion",
                "cglib:cglib-nodep:$cglibVersion"
}

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

sourceJar.from cryptoProject.sourceSets.main.java

test {
    systemProperties['springSecurityVersion'] = version
    systemProperties['springVersion'] = springVersion
}