<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (c) 2012 BSI Business Systems Integration AG.
   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v10.html

  Contributors:
     Stephan Leicht Vogt - 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.scout.sdk</groupId>
    <artifactId>org.eclipse.scout.sdk.parent</artifactId>
    <version>4.0.0-SNAPSHOT</version>
    <relativePath>../org.eclipse.scout.sdk.parent</relativePath>
  </parent>

  <groupId>org.eclipse.scout.sdk.rap.feature</groupId>
  <artifactId>org.eclipse.scout.sdk.rap</artifactId>
  <packaging>eclipse-feature</packaging>

  <name>Eclipse Scout RAP SDK Feature</name>

  <build>
	<pluginManagement>
	  <plugins>
		<plugin>
		  <groupId>org.eclipse.tycho</groupId>
	      <artifactId>tycho-packaging-plugin</artifactId>
		  <version>${tycho.version}</version>
		  <configuration>
		    <strictBinIncludes>false</strictBinIncludes>
			<format>yyyyMMdd-HHmm</format>
			<timestampProvider>default</timestampProvider>
		  </configuration>
	  	</plugin>
	  </plugins>
	</pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-source-feature-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <id>source-feature</id>
            <goals>
              <goal>source-feature</goal>
            </goals>
<!--             <configuration> -->
<!--               <excludes> -->
<!--                 <plugin id="org.eclipse.scout.sdk.feature.about" /> -->
<!--                 <plugin id="org.apache.derby.jdbc_1053.fragment" /> -->
<!--                 <plugin id="org.apache.derby.jdbc_1082.fragment" /> -->
<!--               </excludes> -->
<!--             </configuration> -->
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-plugin</artifactId>
        <executions>
          <execution>
            <id>attached-p2-metadata</id>
            <phase>package</phase>
            <goals>
              <goal>p2-metadata</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
