<?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.webservices</groupId>
    <artifactId>org.eclipse.webtools.webservices</artifactId>
    <version>3.6.0-SNAPSHOT</version>
    <relativePath>../../</relativePath>
  </parent>

  <groupId>org.eclipse.webtools.webservices</groupId>
  <artifactId>org.eclipse.wst.ws_wsdl15.feature</artifactId>
  <version>1.5.501-SNAPSHOT</version>
  <packaging>eclipse-feature</packaging>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-source-feature-plugin</artifactId>
        <version>${tycho-extras.version}</version>
        <executions>
          <execution>
            <id>source-feature</id>
            <phase>package</phase>
            <goals>
              <goal>source-feature</goal>
            </goals>
            <configuration>
              <excludes>
                  <plugin id="javax.wsdl"/>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
        <version>${tycho.version}</version>
        <executions>
          <execution>
            <id>attach-p2-metadata</id>
            <phase>package</phase>
            <goals>
              <goal>p2-metadata</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
