<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2019 Eclipse Foundation and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Igor Fedorenko - initial implementation
-->
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>eclipse.jdt.core</artifactId>
    <groupId>eclipse.jdt.core</groupId>
    <version>4.13.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>org.eclipse.jdt.core</artifactId>
  <version>3.19.0-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

  <properties>
    <defaultSigning-excludeInnerJars>true</defaultSigning-excludeInnerJars>
    <code.ignoredWarnings>-warn:+fieldHiding,-unavoidableGenericProblems</code.ignoredWarnings>
  </properties>

  <build>
    <plugins>
    <plugin>
		<artifactId>maven-antrun-plugin</artifactId>
		<executions>
			<execution>
				<phase>prepare-package</phase>
				<configuration>
					<tasks>
						<replace token="bundle_qualifier," value="${buildQualifier}," dir="${project.build.directory}/classes">
							<include name="org/eclipse/jdt/internal/compiler/batch/messages.properties"/>
						</replace>
						<replace token="bundle_version" value="${unqualifiedVersion}" dir="${project.build.directory}/classes">
							<include name="org/eclipse/jdt/internal/compiler/batch/messages.properties"/>
						</replace>
					</tasks>
				</configuration>
				<goals>
					<goal>run</goal>
				</goals>
			</execution>
		</executions>
	  </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-batch-compiler-source</id>
            <phase>package</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${project.build.directory}/scripts/source</outputDirectory>
              <resources>
                <resource>
                  <directory>${project.basedir}/scripts/source</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-custom-bundle-plugin</artifactId>
        <version>${tycho-extras.version}</version>
        <executions>
          <execution>
            <id>antadapter</id>
            <phase>package</phase>
            <goals>
              <goal>custom-bundle</goal>
            </goals>
			<configuration>
				<archive>
					<addMavenDescriptor>false</addMavenDescriptor>
				</archive>
              <bundleLocation>${project.basedir}/scripts/antadapter</bundleLocation>
              <classifier>antadapter</classifier>
              <fileSets>
                <fileSet>
                  <directory>${project.build.directory}/jdtCompilerAdapter.jar-classes</directory>
                  <excludes>
                    <exclude>org/eclipse/jdt/core/CheckDebugAttributes*.*</exclude>
                    <exclude>org/eclipse/jdt/core/BuildJarIndex*.*</exclude>
                  </excludes>
                </fileSet>
              </fileSets>
            </configuration>
          </execution>
          <execution>
            <id>batch-compiler-src</id>
            <phase>package</phase>
            <goals>
              <goal>custom-bundle</goal>
            </goals>
            <configuration>
				<archive>
					<addMavenDescriptor>false</addMavenDescriptor>
				</archive>
              <bundleLocation>${project.build.directory}/scripts/source</bundleLocation>
              <classifier>batch-compiler-src</classifier>
              <fileSets>
                <fileSet>
                  <directory>${project.basedir}/batch</directory>
                </fileSet>
                <fileSet>
                  <directory>${project.basedir}/compiler</directory>
                </fileSet>
                <fileSet>
                  <directory>${project.basedir}/antadapter</directory>
                  <excludes>
				    <exclude>org/eclipse/jdt/core/CheckDebugAttributes.java</exclude>
					<exclude>org/eclipse/jdt/core/BuildJarIndex.java</exclude>
                  </excludes>
                </fileSet>
				<fileSet>
                  <directory>${project.basedir}/../org.eclipse.jdt.compiler.tool/src</directory>
                </fileSet>
				<fileSet>
                  <directory>${project.basedir}/../org.eclipse.jdt.compiler.apt/src</directory>
                </fileSet>
				<fileSet>
                  <directory>${project.basedir}/scripts</directory>
                  <includes>
				    <include>about.html</include>
					<include>build.xml</include>
					<include>ecj.1</include>
                  </includes>
                </fileSet>
                <fileSet>
                  <directory>${project.basedir}</directory>
                  <includes>
                    <include>scripts/binary/**</include>
                  </includes>
                </fileSet>
              </fileSets>
            </configuration>
          </execution>
          <execution>
            <id>batch-compiler</id>
            <phase>package</phase>
            <goals>
              <goal>custom-bundle</goal>
            </goals>
            <configuration>
				<archive>
					<addMavenDescriptor>false</addMavenDescriptor>
				</archive>
              <bundleLocation>${project.basedir}/scripts/binary</bundleLocation>
              <classifier>batch-compiler</classifier>
              <fileSets>
                <fileSet>
                  <directory>${project.build.directory}/jdtCompilerAdapter.jar-classes</directory>
                  <includes>
				    <include>META-INF/eclipse.inf</include>
                  </includes>
                </fileSet>
				<fileSet>
                  <directory>${project.basedir}/scripts</directory>
                  <includes>
				    <include>about.html</include>
				    <include>ecj.1</include>
                  </includes>
                </fileSet>
                <fileSet>
                  <directory>${project.build.directory}/classes</directory>
                  <includes>
                    <include>org/eclipse/jdt/internal/compiler/**</include>
                    <include>org/eclipse/jdt/core/compiler/**</include>
                  </includes>
                  <excludes>
                    <exclude>**/package.htm*</exclude>
                    <exclude>org/eclipse/jdt/core/compiler/CompilationParticipant*.class</exclude>
                    <exclude>org/eclipse/jdt/core/compiler/BuildContext.class</exclude>
                    <exclude>org/eclipse/jdt/core/compiler/IScanner.class</exclude>
                    <exclude>org/eclipse/jdt/core/compiler/ITerminalSymbols*.class</exclude>
                    <exclude>org/eclipse/jdt/core/compiler/ReconcileContext*.class</exclude>
                    <exclude>org/eclipse/jdt/internal/compiler/DocumentElementParser*.class</exclude>
                    <exclude>org/eclipse/jdt/internal/compiler/IDocumentElementRequestor.class</exclude>
                    <exclude>org/eclipse/jdt/internal/compiler/ISourceElementRequestor*.class</exclude>
                    <exclude>org/eclipse/jdt/internal/compiler/SourceElementParser*.class</exclude>
                    <exclude>org/eclipse/jdt/internal/compiler/SourceElementRequestorAdapter*.class</exclude>
                    <exclude>org/eclipse/jdt/internal/compiler/SourceJavadocParser*.class</exclude>
                    <exclude>org/eclipse/jdt/internal/compiler/parser/SourceTypeConverter*.class</exclude>
                  </excludes>
                </fileSet>
              </fileSets>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
        <version>${tycho.version}</version>
        <configuration>
          <baselineMode>warn</baselineMode>
          <baselineReplace>common</baselineReplace>
        </configuration>
        <executions>
          <execution>
            <id>attached-p2-metadata</id>
            <phase>package</phase>
            <goals>
              <goal>p2-metadata</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
