Skip to main content
aboutsummaryrefslogblamecommitdiffstats
blob: 7206bccea557ab1aa5a982d55351ec075aa7fd2b (plain) (tree)
1
2
3
4
5
6
7
8
9
                                      
    
                                                         


                                                                             
                                                   
 
               



                                               
   



                                                                                                     
                                    
                                
                                                  
                                    
                            
      





                                                                                   
     
                 
                        
                  
              


                                                                                       
                                
                                                                              
                                                            
                                                             
                            
                                                    






                                                               
                                      
        











                                                                                
       

                                                       
 
 
                                                 
                                                                                                        
       
                                        
 
                                                             
 
          
                                                                               

                                                                                
       
                                                                                                  
    
                                                                                                 
 

                                                                                                   
                                                                                                                                        

                                                                                                                                        
                                                                                                       
       
                                                                                                  
 
                                                                                                            
 
                                                                                               
                                                                                                                     
 
                                                                      
                                                                                                       
                                                            

        


                                                                                       
       
                                                                                                           
 
        
                                                                                                         
                  
                                                                           

                                                                      
       
                                                                                                            
 



                                                                                                   
                                                                                           
                                                                                                                 
 

                                                                                                              

        

                                                                                        
       
                                                                                               
 
        


                                                                              

                                                                            
        


                                                                 
       
                                                                                         
 

                                                         
                                                                                   
                                                                                                                                 
 












                                                                                                   
                                   
               
 









                                             











                                                                                 
                      
 
                                                                                                      
                                                                         
                      
                              
                                           
                
                               

                 
                               
                  
                       
 



                                    
                               




                               
                      


                                          
                             
                  
                       
                      









                                         








                                    
                       

             
              




                                                   



                                                              


                                                                                                          


                                            
                                                          
                                                

                       



                            


                                 



                                  




                                  
                         

                            
                                 



                             


                                 

                        


                                                    




                                                          








                                        
              

                                                       








                                                                                     
                                            

                            
                     















                                                                           

                     
              
            





                                                                                         
           

                                                      
                                   








                                     
                                          





                                      












                                                                                              
                                                                





                                         
              


                      


                                                                
                                             
                         
                                                                  






                                             
                          

                 

                                                      
                                  

                 







                                                                

                        
                                                

                                                   
                         
                         
                         







                                                          
                                                       

                                                                
                 
                           
                                                          

                                                                               
                                             


                                                
                                                          
                          




                                                         



                                                                
                                                 
                         


                                                           
                                                 
                         
                         
                         
                                                
                                                       
                         
                     
                                        
                          
                                                                                                   


                                       
                     
                                                            
                      
                                                          






                                                                 
                          




                                                        
                         
                                                     

                                                                                                                                                     




                                                      
                         
                                                           


                                                            
                                                            
                          





                                                           





                                                             




                                                  
                                                  

                                  
                                             

                                   



                                                      
                                                                               

                          

                                                     
                                                        
                                  


                                                     
                                                     
                                  


                                                     
                                                         
                                  

                 

                                                   
                                  
                 


                       
            
            
                          
                  
                                                                           






                                                                                             
                                                                 
             
                                                                   
                                                                                              
                                                                                                   


                                                                 
                                         

                                                                     

                                                                                    
                                                                                                            

                                                                                                            
                                                                             
                                                                                                                     


                    
                                             
                                                                                              




                            
                                       





                                                                
                  

                                                                                                            
                                                                

                                                                                   
           
                                                                                                             
                   

                    
                          





                                           
                           






                                                                  
                                                                    

                            


                                                          
                                               





                                          
                                     


                          


                                                             
                                                     





                                   
                                     

                          

                                                                                     
                  


                                                                                                                                                                      
                 
                                                   
                            
                   


                                                          
                                               





                                     
                                     


                          









                                                    
                                     








                                                          








                                                                  
                                                                    

                            


                                                          
                                               








                                          


                                                          
                                               








                                     



















                                                          











                                                                                                       
                                                                   
                                                                                                            







                                     














                                            
             







                                                        
                                                          



                               








                                                                
              


                             


                                               



                   















                                                                                     

                                                            





                                          







































                                                                                                                    


                          
                  

              





















                                                                       
                                                                           

                                













                                                                                                                                                       





                                

                                                                  
                                               



                                          
                                                



                                                 






                                                            

















                                                                                                         
                                                                                                    
                                                
                                                                                 







                                                  
                                                   











                                                                        




                                                                                        

                                                      
                                




                                                                                        









                                                      
 






































                                                                               
                           


                                                                   


                                                     

                                   
                            



                   




                                                                                                
                                                                                                     
                                   







                                                                                   
                                    














                                            

             





                                                          
                                    
                           
                                                    







                                                                                  
































                                                                             


























                                                                        













                                        



















                                                                                                   
             


                                                                                                          
          
<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2021 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
  https://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
  Igor Fedorenko - initial implementation
  Thanh Ha - improvements and maintenance
  David Williams - improvements and maintenance
  Lars Vogel - Bug 442042
-->
<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>
  <groupId>org.eclipse</groupId>
  <artifactId>eclipse-platform-parent</artifactId>
  <version>4.19.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <!--
    See maven-enforcer-plugin configuration to actually break the build if
    run with older maven.
    prerequisites section is kept for now as even if it doesn't break the build, it
    is used by other plugins like versions-maven-plugin which check and warn
    for using plugins with older than they require Maven version.
    If version number changed in one place, be sure to change in the other.
  -->
  <prerequisites>
    <maven>3.6.3</maven>
  </prerequisites>
  <properties>
    <!-- As of Tycho 0.22, skipTests takes priority, if maven.test.skip also specified,
      with different value. See https://bugs.eclipse.org/442976.
      During production builds, we run with -DskipTests=true -->
    <skipTests>false</skipTests>
    <maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
    <macSigner.forceContinue>false</macSigner.forceContinue>
    <buildTimestamp>${maven.build.timestamp}</buildTimestamp>
    <buildType>I</buildType>
    <buildId>${buildType}${buildTimestamp}</buildId>
     <!--
      releaseName should match the yearly "release train" name.
      For example, "Mars", "Mars.1", "Luna SR2", etc.
      It will show up in "about box",
      such as Version: Mars (4.5), for main features.
      See bug 328139.
    -->
    <releaseName>2021-03</releaseName>
    <!--
      The releaseNumbers below, for SDK and Platform, might be
      thought of as the "marketing number" or "branding number",
      and in fact are used in the branding bundle of the corresponding products.
      In practice, the SDK number and Platform number are always the same,
      though in theory they would not always have to be ... so we'll use
      separate numbers. Also in practice, they are almost always the same as
      or nearly the same as the "product feature" numbers, but for example, for
      the initial release, some prefer we not use the trailing zero, but instead
      merely "4.5, instead of 4.5.0". And, hypothetically, there might be a time
      in the future when the platform for a new release was "merely service",
      but we'd still want the "marketing number" to be increased to reflect
      "a new yearly release".
    -->
    <releaseNumberSDK>4.19</releaseNumberSDK>
    <releaseNumberPlatform>4.19</releaseNumberPlatform>


	<!-- using released version (normal case)
	     when upgrading make sure you change pom-version-updater version in build-functions.shsource
    -->
    <tycho.version>2.2.0</tycho.version>

    <cbi-plugins.version>1.1.8-SNAPSHOT</cbi-plugins.version>

    <!--  
      The tycho-eclipserun-plugin will create its instance of Eclipse from this
      'eclipiserun-repo' repository, such as for computing .api-descriptions and
      generating API Tools reports.
    -->
    <eclipserun-repo>https://download.eclipse.org/eclipse/updates/4.19-I-builds/</eclipserun-repo>
    
    <comparator.repo>https://download.eclipse.org/eclipse/updates/4.19-I-builds</comparator.repo>

    <!--
      NOTE: this EMF and ECF URL must match exactly what is in the eclipse-sdk-prereqs.target file.
      We use it (the EMF repo and ECF repo) not only for resolving pre-reqs during the build, but also in 'repository' POM for mirroring
      a copy of the EMF features and ECF features into our own repository. This is required since we merely "require" EMF (not "include"
      it).
      And, of course, in the PDE target file, the URL is expected to be the actual URL, not a variable.
    -->
    <emf-repo.url>https://download.eclipse.org/modeling/emf/emf/builds/release/2.25</emf-repo.url>

    <ecf-repo.url>https://download.eclipse.org/rt/ecf/3.14.19/site.p2/3.14.19.v20210101-2239/</ecf-repo.url>

    <!-- only used when Tycho snapshot repo is enabled in <pluginRepositories> further down -->
    <tycho-snapshot-repo.url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</tycho-snapshot-repo.url>

    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <cbi-jdt-repo.url>https://repo.eclipse.org/content/repositories/eclipse-staging/</cbi-jdt-repo.url>
    <cbi-ecj-version>3.25.0.v20210223-0522</cbi-ecj-version>

    <!--
      Production bundles are produced by ignoring the compiler warnings specified
      by ${code.ignoredWarnings} (see further down).
      Good citizens don't override those default settings for their production bundles.
    -->
    <code.ignoredWarnings>-warn:-deprecation,unavoidableGenericProblems,warningToken</code.ignoredWarnings>

    <!--
      Test bundles may override the list of ignored warnings by setting this at the top of their pom.xml:
      <properties>
      <code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
      </properties>
      Good citizens use those default settings for their test bundles.
    -->
    <tests.ignoredWarnings>-warn:-deprecation,raw,unchecked,discouraged,warningToken</tests.ignoredWarnings>

    <!--
      repo for released versions of CBI. Note, we intentionally use as specific a repo as possible.
      See bug 471835.
    -->
    <eclipse-repo.url>https://repo.eclipse.org/content/repositories/cbi/</eclipse-repo.url>
    <cbi-snapshots-repo.url>https://repo.eclipse.org/content/repositories/cbi-snapshots/</cbi-snapshots-repo.url>

    <cbi-releases-repo.url>https://repo.eclipse.org/content/repositories/cbi-releases/</cbi-releases-repo.url>


    <!--
      This eclipse-p2-repo.url is specifically for the build-individual-bundles profile.
      See that profile for longer comment.
    -->
    <eclipse-p2-repo.url>This_URL_set_in_build-individual-bundles_profile</eclipse-p2-repo.url>

    <!--
      If configuration is not specified at all, in signing plugin, the default
      is 'false' (do not exclude inner jars, that is inner jars are signed).
    -->
    <defaultSigning-excludeInnerJars>false</defaultSigning-excludeInnerJars>

    <!--
      Valid options: error, warning, and ignore
      jgit.dirtyWorkingTree checking was added as of Tycho 0.19.0
      see: https://bugs.eclipse.org/419030
    -->
    <jgit.dirtyWorkingTree-platformDefault>ignore</jgit.dirtyWorkingTree-platformDefault>

    <qualifier.format>'v'yyyyMMdd-HHmm</qualifier.format>

    <compare-version-with-baselines.skip>true</compare-version-with-baselines.skip>
    <previous-release.baseline>https://download.eclipse.org/eclipse/updates/4.18/R-4.18-202012021800/</previous-release.baseline>

    <!--
      Declaration of properties that contribute to the arg line for the tycho-surefire-plugin.
      The properties are declared empty by default and are overridden by automatic activation
      of the profiles 'macos' and 'jdk9-or-newer' or specific configuration in modules.
    -->
    <!-- any additional surefire args; to be defined by a test-plugin -->
    <surefire.testArgLine></surefire.testArgLine>
    <!-- platform/OS specific JVM args -->
    <surefire.platformSystemProperties></surefire.platformSystemProperties>
    <!-- properties related to Java modules on Java 9+ -->
    <surefire.moduleProperties></surefire.moduleProperties>
    <!-- system specific JVM args; if needed provided by system properties to the build command -->
    <surefire.systemProperties></surefire.systemProperties>
    <java.version>11</java.version>
  </properties>

  <organization>
    <name>Eclipse Foundation</name>
    <url>https://www.eclipse.org/</url>
  </organization>

  <issueManagement>
    <system>Bugzilla</system>
    <url>https://bugs.eclipse.org/bugs/</url>
  </issueManagement>

  <distributionManagement>
    <repository>
      <id>repo.eclipse.org</id>
      <name>Eclipse Repository - Releases</name>
      <url>https://repo.eclipse.org/content/repositories/eclipse-releases/</url>
    </repository>
    <snapshotRepository>
      <id>repo.eclipse.org</id>
      <name>Eclipse Repository - Snapshots</name>
      <url>https://repo.eclipse.org/content/repositories/eclipse-snapshots/</url>
    </snapshotRepository>
  </distributionManagement>
  <pluginRepositories>

    <!-- Released Tycho versions are available on maven central, which is now mirrored to Eclipse.org.
         The tycho-snapshot-repo is only needed when using snapshots. -->
    <pluginRepository>
      <id>tycho-snapshots</id>
      <url>${tycho-snapshot-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>

    <pluginRepository>
      <id>cbi-jdt</id>
      <url>${cbi-jdt-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>cbi-snapshots</id>
      <url>${cbi-snapshots-repo.url}</url>
      <snapshots>
      <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>cbi-releases</id>
      <url>${cbi-releases-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
    <pluginRepository>
      <id>eclipse</id>
      <url>${eclipse-repo.url}</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-maven-plugin</artifactId>
        <version>${tycho.version}</version>
        <extensions>true</extensions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <!-- https://bugs.eclipse.org/bugs/show_bug.cgi?id=453757
            <resolveWithExecutionEnvironmentConstraints>false</resolveWithExecutionEnvironmentConstraints>
          -->
          <target>
            <artifact>
              <groupId>org.eclipse</groupId>
              <artifactId>eclipse-sdk-prereqs</artifactId>
              <version>4.19.0-SNAPSHOT</version>
            </artifact>
          </target>
          <environments>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>ppc64le</arch>
            </environment>
             <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>aarch64</arch>
            </environment>
            <environment>
              <os>win32</os>
              <ws>win32</ws>
              <arch>x86_64</arch>
            </environment>
            <environment>
              <os>macosx</os>
              <ws>cocoa</ws>
              <arch>x86_64</arch>
            </environment>
          </environments>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <configuration>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <executions>
          <execution>
            <id>plugin-source</id>
            <goals>
              <goal>plugin-source</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>filter-resources</id>
            <goals>
              <goal>resources</goal>
            </goals>
            <phase>process-resources</phase>
            <configuration>
              <outputDirectory>${project.build.directory}/resources</outputDirectory>
              <escapeString>\</escapeString>
            </configuration>
          </execution>
          <execution>
            <id>saveproperties</id>
            <configuration>
              <outputDirectory>${project.build.directory}</outputDirectory>
              <overwrite>true</overwrite>
              <resources>
                <resource>
                  <directory>saveproperties</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <!--
          This maven-enforcer-plugin configuration to actually break the build if
          run with older maven.
          prerequisites section is kept for now as even if it doesn't break the build, it
          is used by other plugins like versions-maven-plugin which check and warn
          for using plugins with older than they require Maven version.
          If version number changed in one place, be sure to change in the other.
        -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>3.0.0-M3</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.5.4</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
       <groupId>org.eclipse.tycho.extras</groupId>
       <artifactId>tycho-p2-extras-plugin</artifactId>
       <version>${tycho.version}</version>
       <executions>
         <execution> <!-- Checks versions are properly bumped from one stream to the other -->
           <id>compare-attached-artifacts-with-release</id>
           <goals>
             <goal>compare-version-with-baselines</goal>
           </goals>
           <configuration>
             <skip>${compare-version-with-baselines.skip}</skip>
             <baselines>
               <baseline>${previous-release.baseline}</baseline>
             </baselines>
             <comparator>zip</comparator>
           </configuration>
         </execution>
       </executions>
     </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho.extras</groupId>
          <artifactId>tycho-eclipserun-plugin</artifactId>
          <!-- this is actually present in any 0.14+ version -->
          <version>${tycho.version}</version>
          <configuration>
            <executionEnvironment>JavaSE-11</executionEnvironment>
            <repositories>
              <repository>
                <id>eclipse</id>
                <layout>p2</layout>
                <url>${eclipserun-repo}</url>
              </repository>
            </repositories>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>target-platform-configuration</artifactId>
          <version>${tycho.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-compiler-plugin</artifactId>
          <version>${tycho.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.jdt</groupId>
              <artifactId>ecj</artifactId>
              <version>${cbi-ecj-version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <compilerArgs>
              <args>${code.ignoredWarnings}</args>
              <args>-verbose</args>
              <args>-inlineJSR</args>
              <args>-enableJavadoc</args>
              <args>-encoding</args>
              <args>${project.build.sourceEncoding}</args>
              <args>-proceedOnError</args>
              <!-- Use this form, for Tycho 22 or less.
                <args>-log</args>
                <args>${project.build.directory}/@dot.xml</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>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-packaging-plugin</artifactId>
          <version>${tycho.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-buildtimestamp-jgit</artifactId>
              <version>${tycho.version}</version>
            </dependency>
            <dependency>
              <groupId>org.eclipse.tycho.extras</groupId>
              <artifactId>tycho-sourceref-jgit</artifactId>
              <version>${tycho.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <format>${qualifier.format}</format>
            <timestampProvider>jgit</timestampProvider>
            <jgit.ignore>
              pom.xml
              .polyglot.build.properties
            </jgit.ignore>
            <jgit.dirtyWorkingTree>${jgit.dirtyWorkingTree-platformDefault}</jgit.dirtyWorkingTree>
            <sourceReferences>
              <generate>true</generate>
            </sourceReferences>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <additionalFileSets combine.children="append">
              <fileSet>
                <directory>${project.build.directory}</directory>
                <includes>
                  <include>.api_description</include>
                </includes>
              </fileSet>
            </additionalFileSets>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-surefire-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <enableAssertions>true</enableAssertions>
            <argLine>${surefire.testArgLine} ${surefire.platformSystemProperties} ${surefire.systemProperties} ${surefire.moduleProperties}</argLine>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-source-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <distinctSourceRoots>true</distinctSourceRoots>
            <archive>
              <addMavenDescriptor>false</addMavenDescriptor>
            </archive>
            <reuseBrandingPlugin>false</reuseBrandingPlugin>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-director-plugin</artifactId>
          <version>${tycho.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-repository-plugin</artifactId>
          <version>${tycho.version}</version>
        </plugin>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-p2-plugin</artifactId>
          <version>${tycho.version}</version>
          <configuration>
            <baselineMode>warn</baselineMode>
            <baselineReplace>all</baselineReplace>
            <baselineRepositories>
              <repository>
                <url>${comparator.repo}</url>
              </repository>
            </baselineRepositories>
            <ignoredPatterns>
              <pattern>META-INF/ECLIPSE_.RSA</pattern>
              <pattern>META-INF/ECLIPSE_.SF</pattern>
            </ignoredPatterns>
            <generateDownloadStatsProperty>true</generateDownloadStatsProperty>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>3.3.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>xml-maven-plugin</artifactId>
          <version>1.0.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
   <profile>
      <id>java16patch</id>
      <properties>
        <qualifier.format>'v'yyyyMMdd-HHmm'_BETA_JAVA16'</qualifier.format>
 
        <featureToPatch>org.eclipse.jdt</featureToPatch>
        <featureToPatchPDE>org.eclipse.pde</featureToPatchPDE>

        <!--
          For future versions, in addition to changing this value of "featureToPatchVersion",
          the same value needs to be edited in
          .../java16patch/org.eclipse.jdt.java16patch/feature.xml
          and
          .../java16patch/org.eclipse.jdt-feature-dummy/feature.xml
          and it of course, must "match" what ever version was produced by the build specified
          a few lines below, as the eclipse-p2-repo-java16patch p2 repository, as well as the lower
          bound, in 'versionRangeForPatch'.
 
          Also, when new patch created, should update the wiki at
          https://wiki.eclipse.org/Java16
        -->
        <!-- This needs the version of the feature to be patched. -->
        <featureToPatchVersion>3.18.700.v20210224-1800</featureToPatchVersion>
        <featureToPatchVersionPDE>3.14.700.v20210224-1800</featureToPatchVersionPDE>
        <!-- Can specify an exact range here, or something of a loose range, depending on what's needed. -->
        <versionRangeForPatch>[3.18.700.v20210224-1800,3.18.749.v20210429-1800)</versionRangeForPatch>
        <versionRangeForPatchPDE>[3.14.700.v20210224-1800,3.14.749.v20210429-1800)</versionRangeForPatchPDE>
        <!-- Comment this line when a patch is required on top of I-build -->
        <comparator.repo>https://download.eclipse.org/eclipse/updates/4.19-I-builds/I20210224-1800/</comparator.repo>
      </properties>
      <repositories>
       <repository>
         <id>eclipse-p2-repo-java16patch</id>
         <url>https://download.eclipse.org/eclipse/updates/4.19-I-builds/I20210224-1800/</url>
         <layout>p2</layout>
       </repository>
     </repositories>
   </profile>
   <profile>
      <id>build-individual-bundles</id>
      <activation>
        <property>
          <!-- Enable if aggregatorBuild property is not set -->
          <name>!aggregatorBuild</name>
        </property>
      </activation>
      <properties>
        <!--
          This eclipse-p2-repo.url is specifically for the build individual bundles profile and Gerrit jobs.
          Default is set to I-builds for main development cycle.
          For maintenance streams should always be "M-builds".
          Ideally, this value would be provided by the environment, see bug 489789.
        -->
        <eclipse-p2-repo.url>https://download.eclipse.org/eclipse/updates/4.19-I-builds</eclipse-p2-repo.url>
      </properties>
      <repositories>
        <repository>
          <id>eclipse</id>
          <url>${eclipse-p2-repo.url}</url>
          <layout>p2</layout>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>eclipse-sign</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho.version}</version>
            <configuration>
              <includePackedArtifacts>false</includePackedArtifacts>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>${cbi-plugins.version}</version>
            <executions>
              <execution>
                <id>sign</id>
                <goals>
                  <goal>sign</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <excludeInnerJars>${defaultSigning-excludeInnerJars}</excludeInnerJars>
              <!--
               The default timeout is 0 seconds which means "wait forever": https://www.eclipse.org/cbi/sitedocs/eclipse-jarsigner-plugin/sign-mojo.html#timeoutMillis
               We don't want to wait until the build finally aborts, so, setting a timeout (see bug 507369).
               Increasing timeout from 60000 to 120000 (see bug 544823).
              -->
              <timeoutMillis>120000</timeoutMillis>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>p2-metadata</id>
                <goals>
                  <goal>p2-metadata</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
            <configuration>
              <defaultP2Metadata>false</defaultP2Metadata>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>eclipse-pack</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>target-platform-configuration</artifactId>
            <version>${tycho.version}</version>
            <configuration>
              <includePackedArtifacts>false</includePackedArtifacts>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200a-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>pack200-normalize</id>
                <goals>
                  <goal>normalize</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-pack200b-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>pack200-pack</id>
                <goals>
                  <goal>pack</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>p2-metadata</id>
                <goals>
                  <goal>p2-metadata</goal>
                </goals>
                <phase>package</phase>
              </execution>
            </executions>
            <configuration>
              <defaultP2Metadata>false</defaultP2Metadata>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>bree-libs</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>tycho-compiler-plugin</artifactId>
              <version>${tycho.version}</version>
              <configuration>
                <!--
                  this tells Tycho to use JRE libraries that match bundle runtime execution environment
                  https://wiki.eclipse.org/Tycho/Release_Notes/0.14
                  TODO provide CBI-specific wiki that explains how to setup BREE libraries and toolchain.xml
                -->
                <useJDK>BREE</useJDK>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>partial-build</id>
      <activation>
        <property>
          <name>eclipse-sdk-repo.url</name>
        </property>
      </activation>
      <repositories>
        <repository>
          <id>eclipse-sdk-repo</id>
          <url>${eclipse-sdk-repo.url}</url>
          <layout>p2</layout>
        </repository>
      </repositories>
    </profile>
    <profile>
      <id>default-toolsjar</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <file>
          <exists>${java.home}/../lib/tools.jar</exists>
        </file>
      </activation>
      <properties>
        <toolsjar>${java.home}/../lib/tools.jar</toolsjar>
      </properties>
    </profile>
    <profile>
      <id>missing-toolsjar</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <file>
          <exists>${java.home}/../Classes/classes.jar</exists>
        </file>
      </activation>
      <properties>
        <toolsjar>${java.home}/../Classes/classes.jar</toolsjar>
      </properties>
    </profile>
    <profile>
      <id>api-generation</id>
      <activation>
        <property>
          <name>!longnotexistingproperty</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-cbi-plugin</artifactId>
            <version>${cbi-plugins.version}</version>
            <executions>
              <execution>
                <!--
                    Default lifecycle phase: 'GENERATE_SOURCES'
                    See https://maven.apache.org/ref/3.5.4/maven-core/lifecycles.html
                -->
                <goals>
                  <goal>generate-api-build-xml</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-eclipserun-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>eclipse-run</goal>
                </goals>
                <phase>compile</phase>
                <configuration>
                  <!-- actual indexer call -->
                  <appArgLine>-data target/apibuild-workspace -application org.eclipse.ant.core.antRunner -buildfile
                    target/.apibuild.xml</appArgLine>
                  <dependencies>
                    <!-- list of bundles that we need -->
                    <dependency>
                      <artifactId>org.eclipse.ant.core</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.apache.ant</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.pde.api.tools</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.pde.build</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.pde.core</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.equinox.launcher</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.osgi.compatibility.state</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                    <dependency>
                      <artifactId>javax.annotation</artifactId>
                      <type>eclipse-plugin</type>
                    </dependency>
                  </dependencies>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
       <id>api-check</id>
       <activation>
         <activeByDefault>false</activeByDefault>
       </activation>
       <build>
         <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>check-skip-api-analysis</id>
                <phase>verify</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <skip>${skipAPIAnalysis}</skip>
                  <exportAntProperties>true</exportAntProperties>
                  <target>
                    <condition property="skipAPIAnalysis" value="true">
                      <not>
                        <available file="${basedir}/META-INF/MANIFEST.MF"/>
                      </not>
                    </condition>
                    <echo file="${project.build.directory}/${project.artifactId}-apiBaseline.target">
                      <![CDATA[
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="${project.artifactId}-apiBaseline" sequenceNumber="1">
	<locations>
		<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
			<repository location="${previous-release.baseline}"/>
			<unit id="${project.artifactId}" version="0.0.0"/>
		</location>
	</locations>
</target>
                      ]]>
                    </echo>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-dependency-tools-plugin</artifactId>
            <version>${tycho.version}</version>
            <executions>
              <execution>
                <id>list-dependencies</id>
                <goals>
                  <goal>list-dependencies</goal>
                </goals>
                <phase>verify</phase>
                <configuration>
                  <skip>${skipAPIAnalysis}</skip>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho.extras</groupId>
            <artifactId>tycho-eclipserun-plugin</artifactId>
            <executions>
              <execution>
                <id>api-analysis</id>
                <goals>
                  <goal>eclipse-run</goal>
                </goals>
                <phase>verify</phase>
                <configuration>
                  <skip>${skipAPIAnalysis}</skip>
                  <applicationsArgs>
                    <!-- need to set workspace to a dir that's not a child of the project --> 
                    <arg>-data</arg>
                    <args>${project.basedir}/../target/${project.artifactId}-apiAnalyzer-workspace</args>
                    <args>-application</args>
                    <args>org.eclipse.pde.api.tools.apiAnalyzer</args>
                    <args>-project</args>
                    <args>${project.basedir}</args>
                    <args>-baseline</args>
                    <args>${project.build.directory}/${project.artifactId}-apiBaseline.target</args>
                    <args>-dependencyList</args>
                    <args>${project.build.directory}/dependencies-list.txt</args>
                    <args>-failOnError</args>
                  </applicationsArgs>
                  <jvmArgs>
                  	<jvmArg>-Xmx2048M</jvmArg>
                  </jvmArgs>
                  <repositories>
                    <repository>
                      <layout>p2</layout>
                      <url>${comparator.repo}</url>
                    </repository>
                  </repositories>
                  <dependencies>
                    <dependency>
                      <artifactId>org.eclipse.pde.api.tools</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>javax.annotation</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.equinox.p2.transport.ecf</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.ecf.provider.filetransfer.ssl</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.equinox.p2.touchpoint.natives</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                    <dependency>
                      <artifactId>org.eclipse.osgi.compatibility.state</artifactId>
                      <type>p2-installable-unit</type>
                    </dependency>
                  </dependencies>
                </configuration>
              </execution>
            </executions>
          </plugin>
         </plugins>
      </build>
    </profile>

    <profile>
      <id>update-branding-plugins-about.mappings</id>
      <activation>
        <file>
          <exists>${basedir}/about.mappings</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
              <execution>
                <id>process-about.mappings</id>
                <phase>prepare-package</phase>
                <configuration>
                  <outputDirectory>${project.build.directory}</outputDirectory>
                  <overwrite>true</overwrite>
                  <resources>
                    <resource>
                      <directory>${basedir}</directory>
                      <includes>
                        <include>about.mappings</include>
                      </includes>
                      <filtering>true</filtering>
                    </resource>
                  </resources>
                </configuration>
                <goals>
                  <goal>copy-resources</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-packaging-plugin</artifactId>
            <version>${tycho.version}</version>
            <configuration>
              <additionalFileSets>
                <fileSet>
                  <directory>${project.build.directory}</directory>
                  <includes>
                    <include>about.mappings</include>
                  </includes>
                </fileSet>
              </additionalFileSets>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>coverage</id>
      <properties>
        <!-- Since we append output of various tests, write to a common folder besides tests -->
        <!-- it's recommended to override that to an absolute value in specific Hudson configurations
          and Sonar integration -->
        <jacoco.destFile>${project.basedir}/../target/jacoco.exec</jacoco.destFile>
        <sonar.jacoco.reportPath>${jacoco.destFile}</sonar.jacoco.reportPath>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.6</version>
            <executions>
              <execution>
                <id>jacoco-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <append>true</append>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>spotbugs</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.github.spotbugs</groupId>
            <artifactId>spotbugs-maven-plugin</artifactId>
            <version>4.1.4</version>
            <configuration>
              <targetJDK>${java.version}</targetJDK>
              <xmlOutput>true</xmlOutput>
              <effort>Max</effort>
              <maxHeap>2000</maxHeap>
              <threshold>medium</threshold>
              <failOnError>false</failOnError>
              <excludeFilterFile>spotbugs/spotbugs-exclude.xml</excludeFilterFile>
            </configuration>
            <executions>
              <execution>
                <id>analyze-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>pmd</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-pmd-plugin</artifactId>
            <version>3.13.0</version>
            <configuration>
            <!-- PMD options -->
              <targetJDK>${java.version}</targetJDK>
              <aggregate>true</aggregate>
              <failOnViolation>false</failOnViolation>
              <format>xml</format>
              <rulesets><ruleset>pmd/eclipse_ruleset.xml</ruleset></rulesets>
            <!-- CPD options -->
              <minimumTokens>100</minimumTokens>
              <ignoreIdentifiers>true</ignoreIdentifiers>
            </configuration>
            <executions>
              <execution>
                <id>analyze-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>checkstyle</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>3.1.1</version>
            <configuration>
              <consoleOutput>true</consoleOutput>
              <failsOnError>false</failsOnError>
              <configLocation>checkstyle/checkstyle.xml</configLocation>
            </configuration>
            <executions>
              <execution>
                <id>analyze-compile</id>
                <phase>compile</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>macos</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <surefire.platformSystemProperties>-XstartOnFirstThread</surefire.platformSystemProperties>
      </properties>
    </profile>

    <profile>
      <id>jdk9-or-newer</id>
      <activation>
        <jdk>[9,)</jdk>
      </activation>
      <properties>
        <surefire.moduleProperties>--add-modules=ALL-SYSTEM</surefire.moduleProperties>
      </properties>
    </profile>
  </profiles>
  <scm>
    <connection>scm:git:https://git.eclipse.org/r/platform/eclipse.platform.releng.aggregator</connection>
  </scm>
</project>

Back to the top