plugins {
  id 'net.consensys.zkevm.kotlin-application-conventions'
  id 'com.github.johnrengelman.shadow' version '7.1.2'
  id 'java-library'
  id "org.openapi.generator" version "7.2.0"
  id "org.jetbrains.kotlin.plugin.serialization" version "${kotlinVersion}"
}

openApiGenerate {
  generatorName.set("java")
  inputSpec.set("$rootDir/testing-tools/app/src/main/specs/swagger.yaml")
  outputDir.set("$buildDir/generated")
  modelPackage.set("net.consensys.zkevm.load.model.swagger")
  configOptions.set([
    dateLibrary: "java8"
  ])
}

application {
  mainClass = 'net.consensys.zkevm.load.ManualLoadTest'
}

dependencies {
  implementation project(':jvm-libs:linea:core:domain-models')
  implementation "org.openapitools:openapi-generator-gradle-plugin:5.4.0"
  implementation 'commons-cli:commons-cli:1.6.0'
  implementation "org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0"
  implementation("org.web3j:core:${libs.versions.web3j.get()}") {
    exclude group: 'org.slf4j', module: 'slf4j-nop'
  }
  implementation 'javax.annotation:javax.annotation-api:1.3.2'

  implementation 'io.swagger.core.v3:swagger-annotations:2.0.0'
  implementation 'com.squareup.okhttp:okhttp:2.7.5'
  implementation 'com.squareup.okhttp:logging-interceptor:2.7.5'
  implementation 'com.google.code.gson:gson:2.8.1'
  implementation 'io.gsonfire:gson-fire:1.8.3'
  implementation 'org.threeten:threetenbp:1.3.5'
  testImplementation "org.junit.jupiter:junit-jupiter"
  testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.2'
  testImplementation 'org.junit.jupiter:junit-jupiter:5.9.2'
  testImplementation "org.jetbrains.kotlin:kotlin-test-junit:${kotlinVersion}"
  implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.1")
}
