/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.
 */

plugins {
  alias(libs.plugins.morethan.jmhreport)
  // generally, you use or have the option to use jmh with a 'fat' jar - currently there
  // are some issues to track down to allow that, but this sets up for it
  // alias(libs.plugins.johnrengelman.shadow)
  id 'java-library'
}

description = 'Solr Benchmark Framework'

//shadowJar {
//  archiveBaseName = 'solr-jmh-benchmarks'
//}

jmhReport {
  jmhResultPath = project.file('build/reports/jmh/result.json')
  jmhReportOutput = project.file('build/reports/jmh')
}

task echoCp {
  doLast {
    print "${(sourceSets.main.runtimeClasspath + sourceSets.main.resources).asPath}"
  }
}

dependencies {
  implementation project(':solr:test-framework')
  implementation project(':solr:core')
  implementation project(':solr:solrj')
  implementation project(':solr:solrj-streaming')

  implementation libs.apache.lucene.core
  implementation libs.commonsio.commonsio
  implementation libs.dropwizard.metrics.core
  implementation libs.apache.commons.math3
  implementation libs.jctools.core
  implementation libs.quicktheories.quicktheories
  implementation libs.openjdk.jmh.core
  implementation libs.slf4j.api
  runtimeOnly libs.lmax.disruptor
  annotationProcessor libs.openjdk.jmh.generatorannprocess
}
