<!--
   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.    
-->
<ivy-module version="2.0"  xmlns:maven="http://ant.apache.org/ivy/maven">
  <info organisation="org.apache.solr" module="core"/>
  
  <configurations defaultconfmapping="compile->master;compile.hadoop->master;test->master;test.DfsMiniCluster->master;test.MiniKdc->master">
    <!-- artifacts in the "compile" and "compile.hadoop" configurations will go into solr/core/lib/ -->
    <conf name="compile" transitive="false"/>
    <conf name="compile.hadoop" transitive="false"/>
    <!-- artifacts in the "test", "test.DfsMiniCluster", and "test.MiniKdc" configuration will go into solr/core/test-lib/ -->
    <conf name="test" transitive="false"/>
    <conf name="test.DfsMiniCluster" transitive="false"/>
    <conf name="test.MiniKdc" transitive="false"/>
  </configurations>

  <dependencies>
    <dependency org="commons-codec" name="commons-codec" rev="${/commons-codec/commons-codec}" conf="compile"/>
    <dependency org="commons-fileupload" name="commons-fileupload" rev="${/commons-fileupload/commons-fileupload}" conf="compile"/>
    <dependency org="commons-cli" name="commons-cli" rev="${/commons-cli/commons-cli}" conf="compile"/>
    <dependency org="commons-lang" name="commons-lang" rev="${/commons-lang/commons-lang}" conf="compile"/>
    <dependency org="com.google.guava" name="guava" rev="${/com.google.guava/guava}" conf="compile"/>
    <dependency org="com.spatial4j" name="spatial4j" rev="${/com.spatial4j/spatial4j}" conf="compile"/>
    <dependency org="org.antlr" name="antlr-runtime" rev="${/org.antlr/antlr-runtime}" conf="compile"/>
    <dependency org="org.apache.commons" name="commons-math3" rev="${/org.apache.commons/commons-math3}" conf="test"/>
    <dependency org="org.ow2.asm" name="asm" rev="${/org.ow2.asm/asm}" conf="compile"/>
    <dependency org="org.ow2.asm" name="asm-commons" rev="${/org.ow2.asm/asm-commons}" conf="compile"/>
    <dependency org="org.restlet.jee" name="org.restlet" rev="${/org.restlet.jee/org.restlet}" conf="compile"/>
    <dependency org="org.restlet.jee" name="org.restlet.ext.servlet" rev="${/org.restlet.jee/org.restlet.ext.servlet}" conf="compile"/>
    <dependency org="joda-time" name="joda-time" rev="${/joda-time/joda-time}" conf="compile"/>
    <dependency org="dom4j" name="dom4j" rev="${/dom4j/dom4j}" conf="compile"/>
    <dependency org="com.carrotsearch" name="hppc" rev="${/com.carrotsearch/hppc}" conf="compile"/>
    <dependency org="log4j" name="log4j" rev="${/log4j/log4j}" conf="compile"/>
    <dependency org="org.slf4j" name="slf4j-log4j12" rev="${/org.slf4j/slf4j-log4j12}" conf="compile"/>

    <dependency org="org.easymock" name="easymock" rev="${/org.easymock/easymock}" conf="test"/>
    <dependency org="cglib" name="cglib-nodep" rev="${/cglib/cglib-nodep}" conf="test"/>
    <dependency org="org.objenesis" name="objenesis" rev="${/org.objenesis/objenesis}" conf="test"/>
    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="${/org.slf4j/jcl-over-slf4j}" conf="test"/>

    <dependency org="com.fasterxml.jackson.core" name="jackson-core" rev="${/com.fasterxml.jackson.core/jackson-core}" conf="compile"/>
    <dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="${/com.fasterxml.jackson.core/jackson-databind}" conf="test"/>
    <dependency org="com.fasterxml.jackson.core" name="jackson-annotations" rev="${/com.fasterxml.jackson.core/jackson-annotations}" conf="test"/>
    <dependency org="com.fasterxml.jackson.dataformat" name="jackson-dataformat-smile" rev="${/com.fasterxml.jackson.dataformat/jackson-dataformat-smile}" conf="compile"/>


    <dependency org="org.apache.hadoop" name="hadoop-common" rev="${/org.apache.hadoop/hadoop-common}" conf="compile.hadoop"/>
    <!--
      hadoop-hdfs, hadoop-annotations and hadoop-auth are runtime dependencies,
      so even though they are not compile-time dependencies, they are included
      here as such so that they are included in the runtime distribution.
     -->
    <dependency org="org.apache.hadoop" name="hadoop-hdfs" rev="${/org.apache.hadoop/hadoop-hdfs}" conf="compile.hadoop"/>
    <dependency org="org.apache.hadoop" name="hadoop-annotations" rev="${/org.apache.hadoop/hadoop-annotations}" conf="compile.hadoop"/>
    <dependency org="org.apache.hadoop" name="hadoop-auth" rev="${/org.apache.hadoop/hadoop-auth}" conf="compile.hadoop"/>
    <dependency org="commons-configuration" name="commons-configuration" rev="${/commons-configuration/commons-configuration}" conf="compile.hadoop"/>
    <dependency org="commons-collections" name="commons-collections" rev="${/commons-collections/commons-collections}" conf="compile.hadoop"/>
    
    <dependency org="com.google.protobuf" name="protobuf-java" rev="${/com.google.protobuf/protobuf-java}" conf="compile.hadoop"/>
    <dependency org="com.github.ben-manes.caffeine" name="caffeine" rev="${/com.github.ben-manes.caffeine/caffeine}" conf="compile.hadoop"/>
    <dependency org="org.htrace" name="htrace-core" rev="${/org.htrace/htrace-core}" conf="compile.hadoop"/>
    
    <!-- Hadoop DfsMiniCluster Dependencies-->
    <dependency org="org.apache.hadoop" name="hadoop-common" rev="${/org.apache.hadoop/hadoop-common}" conf="test.DfsMiniCluster">
      <artifact name="hadoop-common" type="test" ext="jar" maven:classifier="tests" />
    </dependency>
    <dependency org="org.apache.hadoop" name="hadoop-hdfs" rev="${/org.apache.hadoop/hadoop-hdfs}" conf="test.DfsMiniCluster">
      <artifact name="hadoop-hdfs" type="test" ext="jar" maven:classifier="tests" />
    </dependency>
    <dependency org="org.mortbay.jetty" name="jetty" rev="${/org.mortbay.jetty/jetty}" conf="test.DfsMiniCluster"/>
    <dependency org="org.mortbay.jetty" name="jetty-util" rev="${/org.mortbay.jetty/jetty-util}" conf="test.DfsMiniCluster"/>
    <dependency org="com.sun.jersey" name="jersey-core" rev="${/com.sun.jersey/jersey-core}" conf="test.DfsMiniCluster"/>
    <dependency org="com.sun.jersey" name="jersey-server" rev="${/com.sun.jersey/jersey-server}" conf="test.DfsMiniCluster"/>
    <dependency org="commons-collections" name="commons-collections" rev="${/commons-collections/commons-collections}" conf="test.DfsMiniCluster"/>

    <!-- Hadoop MiniKdc Dependencies-->
    <dependency org="org.apache.hadoop" name="hadoop-minikdc" rev="${/org.apache.hadoop/hadoop-minikdc}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-core" rev="${/org.apache.directory.server/apacheds-core}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-core-api" rev="${/org.apache.directory.server/apacheds-core-api}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-core-avl" rev="${/org.apache.directory.server/apacheds-core-avl}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-core-shared" rev="${/org.apache.directory.server/apacheds-core-shared}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptor-kerberos" rev="${/org.apache.directory.server/apacheds-interceptor-kerberos}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-admin" rev="${/org.apache.directory.server/apacheds-interceptors-admin}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-authn" rev="${/org.apache.directory.server/apacheds-interceptors-authn}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-authz" rev="${/org.apache.directory.server/apacheds-interceptors-authz}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-changelog" rev="${/org.apache.directory.server/apacheds-interceptors-changelog}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-collective" rev="${/org.apache.directory.server/apacheds-interceptors-collective}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-event" rev="${/org.apache.directory.server/apacheds-interceptors-event}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-exception" rev="${/org.apache.directory.server/apacheds-interceptors-exception}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-journal" rev="${/org.apache.directory.server/apacheds-interceptors-journal}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-normalization" rev="${/org.apache.directory.server/apacheds-interceptors-normalization}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-operational" rev="${/org.apache.directory.server/apacheds-interceptors-operational}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-referral" rev="${/org.apache.directory.server/apacheds-interceptors-referral}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-schema" rev="${/org.apache.directory.server/apacheds-interceptors-schema}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-subtree" rev="${/org.apache.directory.server/apacheds-interceptors-subtree}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-interceptors-trigger" rev="${/org.apache.directory.server/apacheds-interceptors-trigger}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-i18n" rev="${/org.apache.directory.server/apacheds-i18n}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-jdbm-partition" rev="${/org.apache.directory.server/apacheds-jdbm-partition}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-kerberos-codec" rev="${/org.apache.directory.server/apacheds-kerberos-codec}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-ldif-partition" rev="${/org.apache.directory.server/apacheds-ldif-partition}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-mavibot-partition" rev="${/org.apache.directory.server/apacheds-mavibot-partition}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-protocol-kerberos" rev="${/org.apache.directory.server/apacheds-protocol-kerberos}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-protocol-ldap" rev="${/org.apache.directory.server/apacheds-protocol-ldap}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-protocol-shared" rev="${/org.apache.directory.server/apacheds-protocol-shared}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.server" name="apacheds-xdbm-partition" rev="${/org.apache.directory.server/apacheds-xdbm-partition}" conf="test.MiniKdc"/>

    <dependency org="org.apache.directory.api" name="api-all" rev="${/org.apache.directory.api/api-all}" conf="test.MiniKdc"/>
    <dependency org="org.apache.directory.jdbm" name="apacheds-jdbm1" rev="${/org.apache.directory.jdbm/apacheds-jdbm1}" conf="test.MiniKdc"/>
    <dependency org="org.apache.mina" name="mina-core" rev="${/org.apache.mina/mina-core}" conf="test.MiniKdc"/>
    <dependency org="org.bouncycastle" name="bcprov-jdk15" rev="${/org.bouncycastle/bcprov-jdk15}" conf="test.MiniKdc"/>
    <dependency org="antlr" name="antlr" rev="${/antlr/antlr}" conf="test.MiniKdc"/>
    <dependency org="net.sf.ehcache" name="ehcache-core" rev="${/net.sf.ehcache/ehcache-core}" conf="test.MiniKdc"/>

    <!-- StatsComponents percentiles Dependencies-->
    <dependency org="com.tdunning" name="t-digest" rev="${/com.tdunning/t-digest}" conf="compile->*"/>
    <!-- SQL Parser -->

    <dependency org="com.facebook.presto" name="presto-parser" rev="${/com.facebook.presto/presto-parser}"/>
    <dependency org="org.antlr" name="antlr4-runtime" rev="${/org.antlr/antlr4-runtime}"/>
    <dependency org="io.airlift" name="slice" rev="${/io.airlift/slice}"/>

    <!-- StatsComponents HLL Dependencies-->
    <dependency org="net.agkn" name="hll" rev="${/net.agkn/hll}" conf="compile->*"/>
    <dependency org="it.unimi.dsi" name="fastutil" rev="${/it.unimi.dsi/fastutil}" conf="compile->*"/>

    <exclude org="*" ext="*" matcher="regexp" type="${ivy.exclude.types}"/> 
  </dependencies>
</ivy-module>
