task wrapper(type: Wrapper) {
  gradleVersion = '2.3'
}

buildscript {
  repositories {
    jcenter()
  }
  dependencies {
    classpath 'com.github.jengelman.gradle.plugins:shadow:1.2.1'
  }
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'com.github.johnrengelman.shadow'

sourceCompatibility = 1.7
targetCompatibility = 1.7

group = 'com.googlesource.gerrit.plugins.rabbitmq'
version = '3.141-SNAPSHOT'

jar {
  manifest {
    attributes(
      'Gerrit-PluginName': project.name,
      'Gerrit-ApiType': apiType,
      'Gerrit-ApiVersion': apiVersion,
      'Gerrit-Module': 'com.googlesource.gerrit.plugins.rabbitmq.Module',
      'Implementation-Vendor': 'rinrinne',
      'Implementation-URL': 'https://github.com/rinrinne/gerrit-rabbitmq-plugin',
      'Implementation-Title': "${apiType} ${project.name}",
      'Implementation-Version' : version,
      'Created-By': 'rinrinne (rinrin.ne@gmail.com)'
    )
  }
}

shadowJar {
  classifier = apiVersion
  mergeServiceFiles {
    exclude 'META-INF/*.DSA'
    exclude 'META-INF/*.RSA'
  }
  dependencies {
    include(dependency('com.rabbitmq:amqp-client'))
    include(dependency('com.google.inject.extensions:guice-multibindings'))
  }
}

repositories {
  mavenLocal()
  mavenCentral()
  maven {
    name = "Gerrit API repository"
    url = "https://gerrit-api.storage.googleapis.com/"
    artifactUrls = [
      "https://gerrit-api.storage.googleapis.com/release/",
      "https://gerrit-api.storage.googleapis.com/snapshot/",
    ]
  }
}

dependencies {
  compile(
    [group: 'com.google.gerrit', name: "gerrit-${apiType}-api", version: apiVersion],
    [group: 'com.google.inject.extensions', name: 'guice-multibindings', version: '4.0-beta5'],
    [group: 'com.google.code.gson', name: 'gson', version: '2.1'],
    [group: 'commons-lang', name: 'commons-lang', version: '2.5'],
    [group: 'commons-codec', name: 'commons-codec', version: '1.4'],
    [group: 'commons-io', name: 'commons-io', version: '1.4'],
    [group: 'com.rabbitmq', name: 'amqp-client', version: '3.5.0'],
  )
}

assemble.dependsOn shadowJar
