All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cc.catalysts.gradle.plugins.jaxb.JaxbPlugin.groovy Maven / Gradle / Ivy

The newest version!
package cc.catalysts.gradle.plugins.jaxb

import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.plugins.JavaPlugin
import cc.catalysts.gradle.plugins.jaxb.xsd.XsdPlugin
import cc.catalysts.gradle.plugins.jaxb.wsdl.WsdlPlugin
import cc.catalysts.gradle.plugins.codegen.CodegenTask

/**
 * @author Catalysts GmbH, www.catalysts.cc
 */
public class JaxbPlugin implements Plugin {

    void apply(Project project) {
        project.plugins.apply(JavaPlugin)
		project.task('codegen', type: CodegenTask)
		
        def config = project.configurations.create('jaxb')
        config.visible = false
        config.transitive = false
        config.description = "The JAXB libraries to be used for this project."
		
        project.configurations.compile {
            extendsFrom project.configurations.jaxb
        }
		
		project.ext.jaxbVersion = project.hasProperty("jaxbVersion") ? project.jaxbVersion : '2.1'
		project.ext.jaxbApiVersion = project.hasProperty("jaxbApiVersion") ? project.jaxbApiVersion : '2.1'
		project.ext.axisVersion = project.hasProperty("axisVersion") ? project.axisVersion : '1.4'
		
		project.dependencies {
			jaxb 'com.sun.xml.bind:jaxb-xjc:' + project.jaxbVersion
			jaxb 'com.sun.xml.bind:jaxb-impl:' + project.jaxbVersion
			jaxb 'javax.xml.bind:jaxb-api:' + project.jaxbApiVersion
			jaxb 'axis:axis-ant:' + project.axisVersion
			jaxb 'axis:axis:' + project.axisVersion
		}
		
		def jaxbTask = project.tasks.create("jaxb", JaxbTask)
		jaxbTask.group = GenerateJaxbTask.GENERATE_GROUP
		jaxbTask.description = "Generates code from all JAXB sources."
		
		project.plugins.apply(XsdPlugin)
		project.plugins.apply(WsdlPlugin)
		
		project.extensions.jaxb = new JaxbExtension(project)
    }

    public static boolean dirIsEmpty(File dir) {
        if(!dir.isDirectory()) {
            return true
        }
        String[] files = dir.list()
        return files.length == 0
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy