<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2013 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:
    Thanh Ha (Eclipse Foundation) - initial implementation
-->

<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>
    <groupId>org.eclipse.webtools.javaee</groupId>
    <artifactId>javaee.tests</artifactId>
    <version>3.6.0-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.webtools.javaee</groupId>
  <artifactId>org.eclipse.jst.jee.tests</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  
  <!-- Do not sign inner jars, see bug 274743 - Some unit tests are sensitive to details of build -->
  <profiles>
   <profile>
     <id>eclipse-sign</id>
     <build>
       <plugins>
         <plugin>
           <groupId>org.eclipse.cbi.maven.plugins</groupId>
           <artifactId>eclipse-jarsigner-plugin</artifactId>
           <version>${cbi-plugins.version}</version>
           <executions>
             <execution>
               <id>sign</id>
               <phase>verify</phase>
               <goals>
                 <goal>sign</goal>
               </goals>
               <configuration>
                 <excludeInnerJars>true</excludeInnerJars>
               </configuration>
             </execution>
           </executions>
         </plugin>
       </plugins>
     </build>
   </profile>
 </profiles>
  
</project>
