<?xml version="1.0" encoding="UTF-8"?>
<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.rap</groupId>
    <artifactId>org.eclipse.rap.examples.parent.parent</artifactId>
    <version>2.2.0-SNAPSHOT</version>
    <relativePath>../../parent/parent</relativePath>
  </parent>

  <artifactId>org.eclipse.rap.examples.workbenchdemo.product</artifactId>
  <packaging>eclipse-repository</packaging>

  <properties>
    <war-filename>workbenchdemo</war-filename>
  </properties>

  <build>
    <plugins>
      <!-- Configure the p2 director -->
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-p2-director-plugin</artifactId>
        <version>${tycho-version}</version>
        <executions>
          <execution>
            <id>materialize-products</id>
            <goals>
              <goal>materialize-products</goal>
            </goals>
          </execution>
          <execution>
            <id>archive-products</id>
            <goals>
              <goal>archive-products</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <!-- Remove javax.servlet from the bundles.info -->
      <plugin>
        <groupId>com.google.code.maven-replacer-plugin</groupId>
        <artifactId>maven-replacer-plugin</artifactId>
        <version>${replacer-version}</version>
        <executions>
          <execution>
            <phase>verify</phase>
            <goals>
              <goal>replace</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <file>target/products/${project.artifactId}/linux/gtk/x86_64/configuration/config.ini</file>
          <replacements>
            <replacement>
              <token>osgi.bundles=</token>
              <value>osgi.bundles=org.eclipse.equinox.servletbridge.extensionbundle,</value>
            </replacement>
            <replacement>
              <token>reference\\:file\\:javax.servlet.*?jar@4,</token>
              <value></value>
            </replacement>
          </replacements>
          <regexFlags>
            <regexFlag>CASE_INSENSITIVE</regexFlag>
            <regexFlag>UNIX_LINES</regexFlag>
          </regexFlags>
        </configuration>
      </plugin>

      <!-- Configure the assembly plugin to zip the war file -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>${assembly-version}</version>
        <configuration>
          <descriptors>
            <descriptor>assembly.xml</descriptor>
          </descriptors>
          <!-- Configure the war's filename -->
          <finalName>${war-filename}</finalName>
          <appendAssemblyId>false</appendAssemblyId>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>verify</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>
