<?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.19.0-SNAPSHOT</version>
  </parent>
  <groupId>org.eclipse.jdt</groupId>
  <artifactId>org.eclipse.jdt.compiler.tool</artifactId>
  <version>1.2.1100-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>update-ecj</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}/../org.eclipse.jdt.core/target/jdtCompilerAdapter.jar-classes">
                    <include name="**/*"/>
                  </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>
			              <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"/>
			              <exec dir="${basedir}/../org.eclipse.jdt.core/target/" executable="curl">
			                   <arg value="--output"/>
			                   <arg value="${ecj.file}"/>
			                   <arg value="--form"/>
			                   <arg value="file=@${ecj.file}"/>
			                   <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>
