plugins {
	id "java-library"
	id "maven-publish"
	id "io.spring.compatibility-test" version "${compatibilityTestPluginVersion}"
	id "org.springframework.ws.conventions"
	id "org.springframework.ws.optional-dependencies"
}

description = "Spring WS Security"

dependencies {
	api(project(":spring-ws-core"))
	api(project(":spring-xml"))
	api("org.apache.santuario:xmlsec")
	api("org.apache.wss4j:wss4j-ws-security-dom") {
		exclude(group: "org.apache.geronimo.javamail", module: "geronimo-javamail_1.4_mail")
		exclude(group: "org.cryptacular", module: "cryptacular")
	}
	api("org.jvnet.staxex:stax-ex")
	api("org.slf4j:slf4j-api")
	api("org.springframework:spring-beans")
	api("org.springframework:spring-tx")
	api("org.springframework.security:spring-security-core")

	optional("com.sun.xml.messaging.saaj:saaj-impl")
	optional("org.apache.ws.commons.axiom:axiom-impl") {
		exclude(group: "commons-logging", module: "commons-logging")
	}
	optional("org.apache.ws.commons.axiom:axiom-legacy-attachments") {
		exclude(group: "commons-logging", module: "commons-logging")
	}

	testImplementation("org.apache.logging.log4j:log4j-core")
	testImplementation("org.apache.logging.log4j:log4j-slf4j2-impl")
	testImplementation("org.assertj:assertj-core")
	testImplementation("org.easymock:easymock")
	testImplementation("org.junit.jupiter:junit-jupiter")
	testImplementation("org.mockito:mockito-core")
	testImplementation("org.springframework:spring-test")
}

compatibilityTest {
	dependency("WSS4J") { wss4j ->
		wss4j.groupId = "org.apache.wss4"
		wss4j.versions = ["2.0.+", "3.0.+"]
	}
}

