<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2012, 2018 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.sourceediting</groupId>
    <artifactId>sourceediting.xml.tests</artifactId>
    <version>3.10.0-SNAPSHOT</version>
  </parent>

  <groupId>org.eclipse.webtools.sourceediting</groupId>
  <artifactId>org.eclipse.wst.xml.tests.encoding</artifactId>
  <version>1.1.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <properties>
    <testSuite>${project.artifactId}</testSuite>
    <testClass>org.eclipse.wst.xml.tests.encoding.EncodingTestSuite</testClass>
  </properties>

  <build>
    <plugins>
    <plugin>
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>target-platform-configuration</artifactId>
    <configuration>
      <dependency-resolution>
         <extraRequirements>
            <requirement>
               <type>eclipse-plugin</type>
               <id>org.eclipse.jdt.core</id>
               <versionRange>0.0.0</versionRange>
            </requirement>
            <requirement>
               <type>eclipse-plugin</type>
               <id>org.eclipse.jst.jsp.core</id>
               <versionRange>0.0.0</versionRange>
            </requirement>
            <requirement>
               <type>eclipse-plugin</type>
               <id>com.ibm.icu</id>
               <versionRange>0.0.0</versionRange>
            </requirement>
          </extraRequirements>
       </dependency-resolution>
     </configuration>
     </plugin>
     </plugins>
  </build> 
</project>
