import org.elasticsearch.gradle.BuildPlugin import org.elasticsearch.gradle.plugin.PluginBuildPlugin import org.elasticsearch.gradle.Version import org.elasticsearch.gradle.precommit.LicenseHeadersTask if (project.projectDir.name != 'x-pack-elasticsearch') { throw new GradleException('You must checkout x-pack-elasticsearch in the following directory: /../elasticsearch-extra/x-pack-elasticsearch') } task wrapper(type: Wrapper) Project xpackRootProject = project subprojects { group = 'org.elasticsearch.plugin' ext.xpackRootProject = xpackRootProject ext.xpackProject = { String projectName -> xpackRootProject.project(projectName) } // helper method to find the path to a module ext.xpackModule = { String moduleName -> xpackProject("plugin:${moduleName}").path } plugins.withType(MavenPublishPlugin).whenPluginAdded { publishing { publications { // add license information to generated poms all { pom.withXml { XmlProvider xml -> Node node = xml.asNode() Node license = node.appendNode('licenses').appendNode('license') license.appendNode('name', 'Elastic Commercial Software End User License Agreement') license.appendNode('url', 'https://www.elastic.co/eula/') license.appendNode('distribution', 'repo') Node developer = node.appendNode('developers').appendNode('developer') developer.appendNode('name', 'Elastic') developer.appendNode('url', 'http://www.elastic.co') } } } } } plugins.withType(BuildPlugin).whenPluginAdded { project.licenseFile = xpackRootProject.file('LICENSE.txt') project.noticeFile = xpackRootProject.file('NOTICE.txt') } plugins.withType(PluginBuildPlugin).whenPluginAdded { project.esplugin.licenseFile = xpackRootProject.file('LICENSE.txt') project.esplugin.noticeFile = xpackRootProject.file('NOTICE.txt') } } File checkstyleSuppressions = file('dev-tools/checkstyle_suppressions.xml') subprojects { tasks.withType(Checkstyle) { inputs.file(checkstyleSuppressions) // Use x-pack-elasticsearch specific suppressions file rather than the open source one. configProperties = [ suppressions: checkstyleSuppressions ] } tasks.withType(LicenseHeadersTask.class) { approvedLicenses = ['Elasticsearch Confidential', 'Generated'] additionalLicense 'ESCON', 'Elasticsearch Confidential', 'ELASTICSEARCH CONFIDENTIAL' } ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-core:${version}": xpackModule('core')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-deprecation:${version}": xpackModule('deprecation')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-graph:${version}": xpackModule('graph')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-logstash:${version}": xpackModule('logstash')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-ml:${version}": xpackModule('ml')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-monitoring:${version}": xpackModule('monitoring')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-security:${version}": xpackModule('security')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-upgrade:${version}": xpackModule('upgrade')] ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-watcher:${version}": xpackModule('watcher')] bwcVersions.snapshotProjectNames.each { snapshotName -> Version snapshot = bwcVersions.getSnapshotForProject(snapshotName) if (snapshot != null && snapshot.onOrAfter("6.3.0")) { String snapshotProject = ":x-pack-elasticsearch:plugin:bwc:${snapshotName}" project(snapshotProject).ext.bwcVersion = snapshot ext.projectSubstitutions["org.elasticsearch.plugin:x-pack:${snapshot}"] = snapshotProject } } }