<?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.15.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>org.eclipse.jdt.compiler.apt</artifactId>
  <version>1.3.800-SNAPSHOT</version>
  <packaging>eclipse-plugin</packaging>

  <build>
    <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <compilerArgs>
              <args>-endorseddirs</args>
              <args>${basedir}/lib</args>
            </compilerArgs>
            <!-- Use this form for Tycho 23 or greater -->
            <log>xml</log>
            <logDirectory>${project.build.directory}/compilelogs</logDirectory>
            <showWarnings>true</showWarnings>
            <excludeResources>
              <exclude>**/package.html</exclude>
            </excludeResources>
            <useProjectSettings>false</useProjectSettings>
          </configuration>
        </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
		<configuration>
			<archive>
				<addMavenDescriptor>false</addMavenDescriptor>
			</archive>
		</configuration>
        <executions>
          <execution>
            <id>natives</id>
            <phase>process-classes</phase>
            <configuration>
				<archive>
					<addMavenDescriptor>false</addMavenDescriptor>
				</archive>
              <target>

                <path id="ecj.id">
                  <fileset dir="${basedir}/../org.eclipse.jdt.core/target/">
                    <include name="org.eclipse.jdt.core-*-SNAPSHOT-batch-compiler.jar"/>
                  </fileset>
                </path> 

                <property name="ecj.file" refid="ecj.id"/>

                <echo message="UPDATE ${ecj.file}"/>

                <property name="unjarDestBin" value="${basedir}/tempbin"/>
                <mkdir dir="${unjarDestBin}"/>

                <unjar src="${ecj.file}" dest="${unjarDestBin}"/>

                <zip destfile="${ecj.file}" update="true">
                  <!-- old stuff -->
                  <fileset dir="${unjarDestBin}"/>	
                  <!-- new stuff: this plugin classes are here -->
                  <fileset dir="${basedir}/target/classes">
                    <include name="**/*"/>
                  </fileset>
                  <fileset dir="${basedir}">
                    <include name="META-INF/services/**"/>
                  </fileset>
                </zip>
                <delete dir="${unjarDestBin}" failonerror="false"/>

                <!-- no source bundle for ecj, as jdt.core pom.xml does not generate it -->

              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
    <profiles>
	  <profile>
	    <id>eclipse-sign</id>
	    <build>
		    <plugins>
			    <plugin>
			      <artifactId>maven-antrun-plugin</artifactId>
			      <configuration>
			        <archive>
					  <addMavenDescriptor>false</addMavenDescriptor>
				    </archive>
			      </configuration>
			      <executions>
			        <execution>
			          <id>sign-ecj</id>
			          <phase>package</phase>
			          <configuration>
						<archive>
						  <addMavenDescriptor>false</addMavenDescriptor>
						</archive>
			            <target>
			              <exec dir="${basedir}/../org.eclipse.jdt.core/target/" executable="curl">
			                   <arg value="--output"/>
			                   <arg value="org.eclipse.jdt.core-3.21.0-SNAPSHOT-batch-compiler.jar"/>
			                   <arg value="--form"/>
			                   <arg value="file=@org.eclipse.jdt.core-3.21.0-SNAPSHOT-batch-compiler.jar"/>
			                   <arg value="--silent"/>
			                   <arg value="--show-error"/>
			                   <arg value="--fail"/>
			                   <arg value="http://build.eclipse.org:31338/sign"/>
			              </exec>
			            </target>
			          </configuration>
			          <goals>
			            <goal>run</goal>
			          </goals>
			        </execution>
			      </executions>
			    </plugin>
		    </plugins>
	    </build>
	  </profile>
  </profiles>
  
</project>
