<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.xmlgraphics</groupId>
  <artifactId>batik</artifactId>
  <version>1.13.0-SNAPSHOT</version>
  <name>${project.groupId}:${project.artifactId}</name>
  <description>XML Graphics Batik</description>
  <packaging>pom</packaging>
  <url>http://xmlgraphics.apache.org/batik/</url>
  <inceptionYear>2000</inceptionYear>

  <properties>
    <checkstyle.version>2.15</checkstyle.version>
    <compiler.version>3.3</compiler.version>
    <findbugs.version>3.0.1</findbugs.version>
    <jar.version>3.1.1</jar.version>
    <java.version>1.7</java.version>
    <junit.version>4.11</junit.version>
    <jython.version>2.7.0</jython.version>
    <org.slf4j.simpleLogger.defaultLogLevel>error</org.slf4j.simpleLogger.defaultLogLevel>
    <project.info.reports.version>2.8</project.info.reports.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <release.version>2.5.2</release.version>
    <rhino.version>1.7.7</rhino.version>
    <surefire.version>2.18.1</surefire.version>
    <xalan.version>2.7.2</xalan.version>
    <xmlapis.version>1.4.01</xmlapis.version>
    <xmlapisext.version>1.3.04</xmlapisext.version>
    <xmlgraphics.commons.version>2.4.0-SNAPSHOT</xmlgraphics.commons.version>
    <jdk.path>${env.JAVA_HOME}</jdk.path>
  </properties>

  <mailingLists>
    <mailingList>
      <name>Batik Users List</name>
      <subscribe>batik-users-subscribe@xmlgraphics.apache.org</subscribe>
      <unsubscribe>batik-users-unsubscribe@xmlgraphics.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/xmlgraphics-batik-users/</archive>
    </mailingList>
    <mailingList>
      <name>Batik Developer List</name>
      <subscribe>batik-dev-subscribe@xmlgraphics.apache.org</subscribe>
      <unsubscribe>batik-dev-unsubscribe@xmlgraphics.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/xmlgraphics-batik-dev/</archive>
    </mailingList>
    <mailingList>
      <name>Batik Commit List</name>
      <subscribe>batik-commits-subscribe@xmlgraphics.apache.org</subscribe>
      <unsubscribe>batik-commits-unsubscribe@xmlgraphics.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/xmlgraphics-batik-commits/</archive>
    </mailingList>
  </mailingLists>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <organization>
    <name>Apache Software Foundation</name>
    <url>http://www.apache.org/</url>
  </organization>

  <modules>
    <module>batik-all</module>
    <module>batik-anim</module>
    <module>batik-awt-util</module>
    <module>batik-bridge</module>
    <module>batik-codec</module>
    <module>batik-constants</module>
    <module>batik-css</module>
    <module>batik-dom</module>
    <module>batik-ext</module>
    <module>batik-extension</module>
    <module>batik-gui-util</module>
    <module>batik-gvt</module>
    <module>batik-i18n</module>
    <module>batik-parser</module>
    <module>batik-rasterizer-ext</module>
    <module>batik-rasterizer</module>
    <module>batik-script</module>
    <module>batik-slideshow</module>
    <module>batik-squiggle-ext</module>
    <module>batik-squiggle</module>
    <module>batik-svg-dom</module>
    <module>batik-svgbrowser</module>
    <module>batik-svggen</module>
    <module>batik-svgpp</module>
    <module>batik-svgrasterizer</module>
    <module>batik-swing</module>
    <module>batik-test</module>
    <module>batik-transcoder</module>
    <module>batik-util</module>
    <module>batik-ttf2svg</module>
    <module>batik-xml</module>
    
    <module>batik-test-old</module>
    <module>batik-test-svg</module>
    <module>batik-test-swing</module>
<!--
    <module>batik-test-util</module>
-->
  </modules>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${compiler.version}</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <executable>${jdk.path}/bin/javac</executable>
            <fork>true</fork>
          <compilerArgs>
            <!-- [TBD] fix deprecation and unchecked warnings
            <arg>-Xlint:deprecation</arg>
            <arg>-Xlint:unchecked</arg>
            -->
          </compilerArgs>
          <showWarnings>false</showWarnings>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${project.info.reports.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${findbugs.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${checkstyle.version}</version>
          <configuration>
            <configLocation>checkstyle.xml</configLocation>
            <violationSeverity>warning</violationSeverity>
            <includeResources>false</includeResources>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  
  <scm>
    <connection>scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/</connection>
    <url>scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/batik/trunk/</url>
    <developerConnection></developerConnection>
  </scm>

  <repositories>
    <repository>
      <id>apache.snapshots.https</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
      </snapshots>
    </repository>
  </repositories>

  <distributionManagement>
    <site>
      <id>${project.artifactId}-site</id>
      <url>${project.baseUri}</url>
    </site>
  </distributionManagement>

</project>
