133 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Groovy
		
	
	
	
			
		
		
	
	
			133 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Groovy
		
	
	
	
    // Docbook and Javadoc building and uploading tasks
 | 
						|
apply plugin: 'base'
 | 
						|
 | 
						|
task docs {
 | 
						|
    dependsOn 'manual:asciidoctor', 'apidocs', 'guides:asciidoctor'
 | 
						|
}
 | 
						|
 | 
						|
project('manual') {
 | 
						|
    apply plugin: 'base'
 | 
						|
    apply plugin: 'asciidoctor'
 | 
						|
 | 
						|
    ext.expandPlaceholders = ""
 | 
						|
 | 
						|
    asciidoctor {
 | 
						|
        options = [
 | 
						|
          eruby: 'erubis',
 | 
						|
          attributes: [
 | 
						|
              copycss : '',
 | 
						|
              icons : 'font',
 | 
						|
              'source-highlighter': 'prettify',
 | 
						|
              sectanchors : '',
 | 
						|
              toc2: '',
 | 
						|
              idprefix: '',
 | 
						|
              idseparator: '-',
 | 
						|
              doctype: 'book',
 | 
						|
              numbered: '',
 | 
						|
              'spring-security-version' : project.version,
 | 
						|
              'spring-version' : springVersion,
 | 
						|
              'spring4-version' : spring4Version,
 | 
						|
              revnumber : project.version
 | 
						|
          ]
 | 
						|
        ]
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    ext.spec = copySpec {
 | 
						|
        into ('reference/htmlsingle') {
 | 
						|
            from(asciidoctor.outputDir)
 | 
						|
            exclude 'build', 'Guardfile'
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
task apidocs(type: Javadoc) {
 | 
						|
    destinationDir = new File(buildDir, 'apidocs')
 | 
						|
    title = "Spring Security $version API"
 | 
						|
 | 
						|
    source coreModuleProjects.collect { project ->
 | 
						|
        project.sourceSets.main.allJava
 | 
						|
    }
 | 
						|
 | 
						|
    classpath = files(coreModuleProjects.collect { project ->
 | 
						|
        project.sourceSets.main.compileClasspath
 | 
						|
    })
 | 
						|
}
 | 
						|
 | 
						|
apidocs.options.outputLevel = org.gradle.external.javadoc.JavadocOutputLevel.QUIET
 | 
						|
 | 
						|
apidocs.options.links = [
 | 
						|
    "http://static.springframework.org/spring/docs/3.2.x/javadoc-api",
 | 
						|
    "http://static.springsource.org/spring-ldap/docs/1.3.x/apidocs/",
 | 
						|
    "http://download.oracle.com/javase/6/docs/api/"
 | 
						|
]
 | 
						|
 | 
						|
apidocs.options.groups = [
 | 
						|
    'Spring Security Core':[
 | 
						|
        'org.springframework.security.core*',
 | 
						|
        'org.springframework.security.authentication*',
 | 
						|
        'org.springframework.security.access*',
 | 
						|
        'org.springframework.security.remoting*',
 | 
						|
        'org.springframework.security.provisioning*',
 | 
						|
        'org.springframework.security.util*'],
 | 
						|
    'Spring Security Web':['org.springframework.security.web*'],
 | 
						|
    'Spring Security LDAP':['org.springframework.security.ldap*'],
 | 
						|
    'Spring Security Crypto':['org.springframework.security.crypto*'],
 | 
						|
    'Spring Security OpenID':['org.springframework.security.openid*'],
 | 
						|
    'Spring Security CAS':['org.springframework.security.cas*'],
 | 
						|
    'Spring Security ACL':['org.springframework.security.acls*'],
 | 
						|
    'Spring Security Config':['org.springframework.security.config*'],
 | 
						|
    'Spring Security Taglibs':['org.springframework.security.taglibs*'],
 | 
						|
 | 
						|
]
 | 
						|
 | 
						|
ext.apiSpec = copySpec {
 | 
						|
    into('apidocs') {
 | 
						|
        from(apidocs.destinationDir)
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
assemble.dependsOn = [apidocs, 'manual:asciidoctor']
 | 
						|
 | 
						|
task docsZip(type: Zip) {
 | 
						|
    dependsOn docs
 | 
						|
    evaluationDependsOn('guides')
 | 
						|
    group = 'Distribution'
 | 
						|
    baseName = rootProject.name
 | 
						|
    classifier = 'docs'
 | 
						|
    description = "Builds -${classifier} archive containing api and reference " +
 | 
						|
        "for deployment at static.springframework.org/spring-security/site/docs."
 | 
						|
 | 
						|
    with(project(':docs').apiSpec)
 | 
						|
    with(project(':docs:manual').spec)
 | 
						|
    with(project(':docs:guides').spec)
 | 
						|
}
 | 
						|
 | 
						|
task schemaZip(type: Zip) {
 | 
						|
    group = 'Distribution'
 | 
						|
    baseName = rootProject.name
 | 
						|
    classifier = 'schema'
 | 
						|
    description = "Builds -${classifier} archive containing all " +
 | 
						|
        "XSDs for deployment at static.springframework.org/schema."
 | 
						|
 | 
						|
    coreModuleProjects.each { module ->
 | 
						|
        def Properties schemas = new Properties();
 | 
						|
 | 
						|
        module.sourceSets.main.resources.find {
 | 
						|
            it.path.endsWith('META-INF/spring.schemas')
 | 
						|
        }?.withInputStream { schemas.load(it) }
 | 
						|
 | 
						|
        for (def key : schemas.keySet()) {
 | 
						|
            def shortName = key.replaceAll(/http.*schema.(.*).spring-.*/, '$1')
 | 
						|
            assert shortName != key
 | 
						|
            File xsdFile = module.sourceSets.main.resources.find {
 | 
						|
                it.path.endsWith(schemas.get(key))
 | 
						|
            }
 | 
						|
            assert xsdFile != null
 | 
						|
            into (shortName) {
 | 
						|
                from xsdFile.path
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |