<!--
  AFTER CHANGING THIS FILE don't forget to issue: ant update-deps
-->
<!DOCTYPE ivy-module [
    <!ENTITY jetty.version "7.6.16.v20140903">
    <!ENTITY slf4j.version "1.6.1">
    <!ENTITY spring.version "2.5.6.SEC03">
]>
<ivy-module version="2.0">
  <info organisation="org.freemarker" module="freemarker">
    <license name="Apache License, Version 2.0" url="http://freemarker.org/docs/app_license.html" />
    <description homepage="http://freemarker.org/">
      FreeMarker is a &quot;template engine&quot;; a generic tool to
      generate text output (anything from HTML to autogenerated source
      code) based on templates.
    </description>
  </info>
  <configurations>
    <conf name="default" extends="runtime" />
    
    <conf name="runtime"
        description="for using FreeMarker under J2SE 1.4+ (no optional dependencies included)"
    />

    <conf name="build.base" extends="default" visibility="private"
        description="for building FreeMarker without dependencies that optinal dependencies"
    />

    <conf name="build.jsp2.0" extends="build.base"
        description="for building FreeMarker with JSP 2.0 support"
    />
    <conf name="build.jsp2.1" extends="build.base"
        description="for building FreeMarker with JSP 2.1 support"
    />

    <conf name="build.jython2.0" extends="build.base"
        description="for building FreeMarker with Jython 2.0 support"
    />
    <conf name="build.jython2.2" extends="build.base"
        description="for building FreeMarker with Jython 2.2 support"
    />
    <conf name="build.jython2.5" extends="build.base"
        description="for building FreeMarker with Jython 2.5 support"
    />
    
    <conf name="test" extends="build.jython2.5"
        description="commons for both building and running the FreeMarker test suite"
    />
    <conf name="build.test" extends="test"
        description="for building FreeMarker test suite"
    />
    <conf name="run.test" extends="test"
        description="for running FreeMarker test suite"
    />

    <conf name="IDE" extends="build.test"
        description="to be used in IDE-s (maybe with the Ivy plugin)"
    />
    
    <conf name="retrotranslate" description="for retro-translation" />
    
    <conf name="parser" extends="default" description="for generating parser" />
    
    <conf name="manual" description="for generating the manual with Docgen" />
    
    <conf name="bnd" description="for creating OSGi bundle" />
    
    <conf name="example.servlet" description="servlet-based examples" />
    <conf name="example.webapp1" extends="example.servlet" />
    <conf name="example.webapp2" extends="example.servlet" />
    <conf name="example.struts-webapp" extends="example.servlet" />
    <conf name="example.ant" />
  </configurations>
  <publications>
    <artifact name="freemarker" type="jar" conf="runtime" ext="jar" />
  </publications>
  <dependencies>
    <!-- build -->
    
    <dependency org="jaxen" name="jaxen" rev="1.0-FCS" conf="build.base->default" />
    <dependency org="saxpath" name="saxpath" rev="1.0-FCS" conf="build.base->default" />
    <dependency org="xalan" name="xalan" rev="2.7.0" conf="build.base->default">
      <!-- The lowerst supported xml-apis version depends on JDK version; prevent any collosion: -->
      <exclude org="xml-apis" module="xml-apis" />
    </dependency>
    <dependency org="dom4j" name="dom4j" rev="1.3" conf="build.base->default" /> <!-- legacy -->
    <dependency org="jdom" name="jdom" rev="1.0b8" conf="build.base->default" /> <!-- legacy -->

    <dependency org="ant" name="ant" rev="1.6.5" conf="build.base->default">
      <!-- The lowerst supported xml-apis version depends on JDK version; prevent any collosion: -->
      <exclude org="xml-apis" module="xml-apis" />
    </dependency>
    
    <dependency org="javax.servlet.jsp" name="jsp-api" rev="2.0" conf="build.jsp2.0->default; example.struts-webapp->default" />
    <dependency org="javax.servlet" name="servlet-api" rev="2.4" conf="build.jsp2.0->default; example.servlet->default" />
    <dependency org="javax.servlet.jsp" name="jsp-api" rev="2.1" conf="build.jsp2.1->default" />
    <dependency org="javax.servlet" name="servlet-api" rev="2.5" conf="build.jsp2.1->default" />
    
    <dependency org="rhino" name="js" rev="1.6R1" conf="build.base->default" />

    <!-- We use Jython 2.1 because there was no 2.0 in central; the relevant methods are the same. -->
    <dependency org="jython" name="jython" rev="2.1" conf="build.jython2.0->default" />
    <dependency org="org.python" name="jython" rev="2.2.1" conf="build.jython2.2->default" />
    <dependency org="org.python" name="jython" rev="2.5.0" conf="build.jython2.5->default" />
    
    <dependency org="avalon-logkit" name="avalon-logkit" rev="2.0" conf="build.base->default" />
    <dependency org="org.slf4j" name="slf4j-api" rev="&slf4j.version;" conf="build.base->default" />
    <dependency org="org.slf4j" name="log4j-over-slf4j" rev="&slf4j.version;" conf="build.base->default" />
    <dependency org="org.slf4j" name="jcl-over-slf4j" rev="&slf4j.version;" conf="build.base->default" />
    <dependency org="commons-logging" name="commons-logging" rev="1.1.1" conf="build.base->default" />
    
    <dependency org="org.zeroturnaround" name="javarebel-sdk" rev="1.2.2" conf="build.base->default" />

    <dependency org="com.google.code.findbugs" name="annotations" rev="3.0.0" conf="build.base->default" />
    
    <!--dependency org="javax.script" name="script-api" rev="1.0" conf="build.base->default" /-->
    <!--dependency org="org.visigoths" name="cavalry" rev="1.0" conf="build.base->default" /-->
    
    <!-- test -->
    
    <!-- Note: Ant doesn't contain junit.jar any more -->
    <dependency org="junit" name="junit" rev="4.12" conf="test->default" />
    <dependency org="org.hamcrest" name="hamcrest-library" rev="1.3" conf="test->default" />

    <dependency org="ch.qos.logback" name="logback-classic" rev="1.1.2" conf="test->default" />

    <dependency org="commons-io" name="commons-io" rev="2.2" conf="test->default" />
    <dependency org="com.google.guava" name="guava-jdk5" rev="17.0" conf="test->default" />

    <dependency org="org.eclipse.jetty" name="jetty-server" rev="&jetty.version;" conf="test->default" />
    <dependency org="org.eclipse.jetty" name="jetty-webapp" rev="&jetty.version;" conf="test->default" />
    <dependency org="org.eclipse.jetty" name="jetty-jsp" rev="&jetty.version;" conf="test->default" />
    <dependency org="org.eclipse.jetty" name="jetty-util" rev="&jetty.version;" conf="test->default" />
    
    <dependency org="displaytag" name="displaytag" rev="1.2" conf="test->default">
      <exclude org="com.lowagie" name="itext" />
      <exclude org="org.slf4j" name="slf4j-log4j12" />
      <exclude org="org.slf4j" name="jcl104-over-slf4j" />
      <exclude org="log4j" name="log4j" />
    </dependency>

    <dependency org="org.springframework" name="spring-core" rev="&spring.version;" conf="test->default">
      <exclude org="commons-logging" name="commons-logging" />
    </dependency>
    <dependency org="org.springframework" name="spring-test" rev="&spring.version;" conf="test->default">
      <exclude org="commons-logging" name="commons-logging" />
    </dependency>

    <!-- docs -->
    
    <dependency org="org.freemarker" name="docgen" rev="2.0-branch-head" conf="manual->default" changing="true" />
    
    <!-- parser -->
    
    <dependency org="net.java.dev.javacc" name="javacc" rev="6.1.2" conf="parser->default" />
    
    <!-- bnd -->
    
    <dependency org="biz.aQute" name="bnd" rev="1.50.0" conf="bnd->default" />
    
    <!-- As the tests *run* on Ant, so it's a provided dependency there. -->
    <exclude org="ant" module="ant" conf="run.test" />
    
    <!-- Ensure that JSP versions don't accidentally hide each-other -->
    
    <conflict org="javax.servlet.jsp" module="jsp-api" manager="strict" />
    
  </dependencies>
</ivy-module>