<?xml version="1.0" encoding="UTF-8"?>
<!--
   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:

       https://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.
-->
<project
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
  xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <artifactId>avro-parent</artifactId>
    <groupId>org.apache.avro</groupId>
    <version>1.11.2</version>
    <relativePath>../pom.xml</relativePath>
  </parent>

  <artifactId>avro-compiler</artifactId>

  <name>Apache Avro Compiler</name>
  <packaging>bundle</packaging>
  <url>https://avro.apache.org</url>
  <description>Compilers for Avro IDL and Avro Specific Java API</description>

  <properties>
    <main.basedir>${project.parent.parent.basedir}</main.basedir>
    <osgi.import>
      !org.apache.avro.compiler*,
      org.apache.avro*;version="${project.version}",
      org.apache.commons.lang3*,
      *
    </osgi.import>
    <osgi.export>org.apache.avro.compiler*;version="${project.version}"</osgi.export>
  </properties>

  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/main/velocity</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/main/velocity</directory>
      </testResource>
      <testResource>
        <directory>src/test/idl</directory>
      </testResource>
    </testResources>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifestEntries>
              <Automatic-Module-Name>org.apache.avro.compiler</Automatic-Module-Name>
            </manifestEntries>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>prepare-test-jar</id>
            <phase>generate-test-resources</phase>
            <goals>
              <goal>test-jar</goal>
            </goals>
            <configuration>
              <classifier>test-resource</classifier>
              <testClassesDirectory>src/test/idl/putOnClassPath</testClassesDirectory>
              <finalName>putOnClassPath</finalName>
              <outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- Avro generates a parser class with javacc. By default, this looks in src/main/javacc
        and outputs to target/generated-sources/javacc See http://mojo.codehaus.org/javacc-maven-plugin/javacc-mojo.html
        for more info on using this plugin. -->
      <plugin>
        <groupId>org.javacc.plugin</groupId>
        <artifactId>javacc-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>javacc</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>javacc</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <!-- some tests hang if not run in a separate JVM -->
          <forkCount>1</forkCount>
          <reuseForks>false</reuseForks>
          <parallel>none</parallel>
          <systemPropertyVariables>
            <test.idl.dir>${project.basedir}/src/test/idl</test.idl.dir>
          </systemPropertyVariables>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>java</executable>
              <workingDirectory>${java.io.tmpdir}</workingDirectory>
              <classpathScope>test</classpathScope>
              <arguments>
                <argument>-classpath</argument>
                <classpath/>
                <argument>org.apache.avro.compiler.specific.SchemaTask</argument>
                <argument>${project.basedir}/src/test/resources/full_record_v1.avsc</argument>
                <argument>${project.basedir}/src/test/resources/full_record_v2.avsc</argument>
                <argument>${project.basedir}/target/generated-test-sources/javacc</argument>
              </arguments>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <!--
              Special-purpose maven plugins that generate code usually add the generated sources into the project.
              But because the general-purpose exec plugin above generated code, we need to manually add the generated sources.
            -->
            <id>add-test-source</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.basedir}/target/generated-test-sources/javacc</source>
              </sources>
            </configuration>
          </execution>
          <execution>
            <!--
              Special-purpose maven plugins that generate code usually add the generated sources into the project.
              But because the general-purpose exec plugin above generated code, we need to manually add the generated sources.
            -->
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.basedir}/target/generated-sources/javacc</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <versionRange>[1.0,)</versionRange>
                    <goals>
                      <goal>exec</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <execute/>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>


  <dependencies>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>avro</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-text</artifactId>
      <version>${commons-text.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-engine-core</artifactId>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <version>${ant.version}</version>
      <!-- can only be used from within ant -->
      <scope>provided</scope>
    </dependency>
  </dependencies>

</project>
