<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>fop-parent</artifactId>
  <version>2.2</version>
  <name>Apache FOP Parent</name>
  <description>XML Graphics Format Object Processor</description>
  <packaging>pom</packaging>

  <properties>
    <antrun.plugin.version>1.8</antrun.plugin.version>
    <avalon.version>4.3.1</avalon.version>
    <batik.version>1.9</batik.version>
    <build.helper.plugin.version>1.9.1</build.helper.plugin.version>
    <checkstyle.plugin.version>2.14</checkstyle.plugin.version>
    <commons.io.version>1.3.1</commons.io.version>
    <commons.logging.version>1.0.4</commons.logging.version>
    <compiler.plugin.version>3.1</compiler.plugin.version>
    <exec.plugin.version>1.4.0</exec.plugin.version>
    <findbugs.plugin.version>2.5.5</findbugs.plugin.version>
    <jar.plugin.version>2.6</jar.plugin.version>
    <java.version>1.6</java.version>
    <junit.version>4.11</junit.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.info.reports.plugin.version>2.8</project.info.reports.plugin.version>
    <release.plugin.version>2.5.2</release.plugin.version>
    <surefire.plugin.version>2.18.1</surefire.plugin.version>
    <war.plugin.version>2.2</war.plugin.version>
    <xml.plugin.version>1.0.1</xml.plugin.version>
    <xmlgraphics.commons.version>2.2</xmlgraphics.commons.version>
    <xmlunit.version>1.2</xmlunit.version>
    <jdk.path>${env.JAVA_HOME}</jdk.path>
  </properties>

  <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>fop</module>
    <module>fop-core</module>
    <module>fop-events</module>
    <module>fop-sandbox</module>
    <module>fop-servlet</module>
    <module>fop-transcoder</module>
    <module>fop-transcoder-allinone</module>
    <module>fop-util</module>
  </modules>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${checkstyle.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${compiler.plugin.version}</version>
          <configuration>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <executable>${jdk.path}/bin/javac</executable>
            <fork>true</fork>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${jar.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${project.info.reports.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.plugin.version}</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <scm>
    <connection>scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk/</connection>
    <url>scm:svn:https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk/</url>
    <developerConnection></developerConnection>
  </scm>

  <repositories>
    <repository>
      <id>apache.snapshots.https</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>apache.releases.https</id>
      <url>https://repository.apache.org/content/repositories/releases</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>jboss.org</id>
      <url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases/</url>
    </repository>
  </repositories>

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

</project>
