import org.elasticsearch.gradle.VersionProperties
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: <path to Elasticsearch checkout>/../elasticsearch-extra/x-pack-elasticsearch')
}

subprojects {
  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')
          }
        }
      }
    }
  }
}

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']
    additionalLicense 'ESCON', 'Elasticsearch Confidential', 'ELASTICSEARCH CONFIDENTIAL'
  }
  ext.projectSubstitutions += [ "org.elasticsearch.plugin:x-pack-api:${version}": ':x-pack-elasticsearch:plugin' ]
}