apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'java-library-distribution'

jar {
	manifest {
		attributes 'Implementation-Title': 'PDF-AS-4 Library', 'JARMANIFEST': 'PDF-AS-LIB'
	}
}

buildscript {
	repositories {
		mavenLocal()
		mavenCentral()
	}
	dependencies { classpath("commons-io:commons-io:2.4") }
}

configurations { 
	generateJavaFromWsdlDeps 
	
	pdfDoclet { extendsFrom compile }
}

task createConf(type: Zip, dependsOn: JavaPlugin.PROCESS_RESOURCES_TASK_NAME) {
	from 'src/configuration'
	archiveName 'config.zip'
	destinationDir new File(projectDir, 'src/main/resources/config')
}

compileJava.dependsOn(createConf)


repositories {
	mavenLocal()
	mavenCentral()
}

dependencies {
	compile project (':pdf-as-common')
	compile group: 'org.apache.httpcomponents', name: 'httpmime', version: '4.3.1'
	compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.3.1'
	compile group: 'org.apache.pdfbox', name: 'pdfbox', version: '1.8.5'
	compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
	compile group: 'commons-io', name: 'commons-io', version: '2.4'
	compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
	compile group: 'org.apache.axis2', name: 'axis2', version: '1.6.2'
	compile group: 'org.apache.axis2', name: 'axis2-jaxws', version: '1.6.2'
	compile group: 'org.apache.axis2', name: 'axis2-transport-local', version: '1.6.2'
	compile group: 'ognl', name: 'ognl', version: '3.0.6'
	compile files('libs/iaik_eccelerate_cms.jar')
	compile files('libs/iaik_eccelerate.jar')
	compile files('libs/iaik_jce.jar')
	compile files('libs/iaik_jce_full.jar')
	compile files('libs/iaik_cms.jar')
	compile group: 'log4j', name: 'log4j', version: '1.2.17'
	compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.5'
	compile group: 'com.google.zxing', name: 'core', version: '2.2'
	compile group: 'com.google.zxing', name: 'javase', version: '2.2'
	testCompile group: 'junit', name: 'junit', version: '4.+'
}

task releases(type: Copy) {
	from jar.outputs
	into rootDir.toString() + "/releases"
	rename '.*.war', 'pdf-as-web.war'
}

task apidocs(type: Javadoc) {
	classpath = configurations.compile
	source = sourceSets.main.allJava
	destinationDir = new File(rootDir.toString() + "/releases/docs/api")
	title = "PDF-AS " + project.pdfasversion + " Documentation"
	options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PUBLIC
	options.charSet = "ISO-8859-1"
	options.author = "Andreas Fitzek"
	options.docTitle = "PDF-AS " + project.pdfasversion + " Documentation"
	options.version = project.pdfasversion
	options.windowTitle = "PDF-AS " + project.pdfasversion + " Library"
	options.header = "<b>PDF-AS " + project.pdfasversion + " Library  " + project.pdfasversion + " [" + project.revision + "]</b>"
	options.use = "true"
	options.links("http://docs.oracle.com/javase/1.5.0/docs/api/")
	include('at/gv/egiz/pdfas/lib/api/**')
}

task fulldocs(type: Javadoc) {
	classpath = configurations.compile
	source = sourceSets.main.allJava
	destinationDir = new File(rootDir.toString() + "/releases/docs/full")
	title = "PDF-AS " + project.pdfasversion + " Documentation"
	options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
	options.charSet = "ISO-8859-1"
	options.author = "Andreas Fitzek"
	options.docTitle = "PDF-AS " + project.pdfasversion + " Documentation"
	options.version = project.pdfasversion
	options.windowTitle = "PDF-AS " + project.pdfasversion + " Library"
	options.header = "<b>PDF-AS " + project.pdfasversion + " Library  " + project.pdfasversion + " [" + project.revision + "]</b>"
	options.use = "true"
	options.links("http://docs.oracle.com/javase/1.5.0/docs/api/")
	include('at/knowcenter/wag/egiz/**')
	include('at/gv/egiz/**')
}

releases.dependsOn apidocs
releases.dependsOn fulldocs

test {
	systemProperties 'property': 'value'
}

distributions {
    main {
        contents {
            from { '../docs' }
	    from('../doc/') {
	       include '*.pdf'
	    } 
        }
    }
}