/*
 * Copyright Thoughtworks, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

description = 'GoCD Model Contract for (de)Serializing GoCD data structures'

dependencies {
  implementation project(':base')
  implementation project(':config:config-api')
  implementation project.deps.gson
  implementation project.deps.commonsLang3
  annotationProcessor project.deps.lombok
  compileOnly project.deps.lombok
  compileOnly project.deps.jetBrainsAnnotations

  testImplementation project.deps.mockitoJunit5
  testImplementation project.deps.junit5Api
  testRuntimeOnly project.deps.junit5Engine
  testRuntimeOnly project.deps.junit5PlatformLauncher
  testImplementation project.deps.assertJ
}

tasks.register('sourcesJar', Jar) {
  dependsOn classes
  archiveClassifier = 'sources'
  from sourceSets.main.allSource
}

javadoc {
  title = 'GoCD Plugin Config Repo Contract'
  options {
    windowTitle = 'GoCD Plugin Config Repo Contract'
    docTitle = 'GoCD Plugin Config Repo Contract'
    header = 'GoCD Plugin Config Repo Contract'
    bottom = "Copyright &copy; Thoughtworks, Inc. GoCD Version: ${project.version}"

    addBooleanOption('Xdoclint:-missing', true)
  }
}

tasks.register('javadocJar', Jar) {
  dependsOn javadoc
  archiveClassifier = 'javadoc'
  from javadoc.destinationDir
}

assemble.dependsOn sourcesJar, javadocJar
