<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.    
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>ruta-ep-ide</artifactId>
  <version>2.2.1</version>
  <parent>
    <groupId>org.apache.uima</groupId>
    <artifactId>ruta-parent</artifactId>
    <version>2.2.1</version>
    <relativePath>../ruta-parent/pom.xml</relativePath>
  </parent>
  <properties>
    <uimaScmProject>${project.artifactId}</uimaScmProject>
    <postNoticeText>${uniWueNoticeText}</postNoticeText>
  </properties>
  <name>Apache UIMA Ruta Eclipse: ${project.artifactId}</name>
  <url>${uimaWebsiteUrl}</url>
  <description>Provides the UIMA Ruta development environment for Eclipse</description>
  <dependencies>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>core</artifactId>
      <version>[3.0.1,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>launching</artifactId>
      <version>[3.0.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk.validators</groupId>
      <artifactId>core</artifactId>
      <version>[3.0.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>runtime</artifactId>
      <version>[3.3.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.core</groupId>
      <artifactId>resources</artifactId>
      <version>[3.3.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse</groupId>
      <artifactId>ui</artifactId>
      <version>[3.3.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.swt</groupId>
      <artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
      <version>[3.2.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>preferences</artifactId>
      <version>[3.3.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>app</artifactId>
      <version>[1.3.0,2.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.emf.ecore</groupId>
      <artifactId>xmi</artifactId>
      <version>[2.7.0,3.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>ruta-core</artifactId>
      <version>${project.parent.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jdt</groupId>
      <artifactId>launching</artifactId>
      <version>[3.3.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jdt</groupId>
      <artifactId>core</artifactId>
      <version>[3.3.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.1</version>
    </dependency>
  </dependencies>
  <scm>
    <url>http://svn.apache.org/viewvc/uima/ruta/tags/ruta-2.2.1/ruta-ep-ide</url>
    <connection>scm:svn:http://svn.apache.org/repos/asf/uima/ruta/tags/ruta-2.2.1/ruta-ep-ide</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/uima/ruta/tags/ruta-2.2.1/ruta-ep-ide</developerConnection>
  </scm>
  <build>
    <!-- don't use artifactId as first part of finalName, follow instead the eclipse convention -->
    <finalName>org.apache.uima.ruta.ide_${parsedVersion.osgiVersion}</finalName>
    <resources>
      <resource>
        <directory>.</directory>
        <includes>
          <include>plugin.xml</include>
          <include>plugin.properties</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/main/readme_src</directory>
      </resource>
    </resources>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <executions>
            <execution>
              <id>default-cli</id>
              <configuration>
                <excludes>
                  <exclude>release.properties</exclude> <!-- release generated artifact -->
                  <exclude>marker-file-identifying-*</exclude>
                  <exclude>src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaLexer.tokens</exclude> <!-- grammar tokens -->
                  <exclude>src/main/antlr3/org/apache/uima/ruta/ide/core/parser/RutaParser.tokens</exclude> <!-- grammar tokens -->
                  <exclude>issuesFixed/**</exclude>
                </excludes>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <!-- generate java code for antlr grammars -->
      <plugin>
        <groupId>org.antlr</groupId>
        <artifactId>antlr3-maven-plugin</artifactId>
        <version>3.5.2</version>
        <executions>
          <execution>
            <id>run antlr</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>antlr</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${basedir}/target/generated-sources/antlr3
                </source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <executions>
          <execution>
            <id>uima-bundle</id>
            <configuration>
              <instructions>
                <Bundle-SymbolicName>org.apache.uima.ruta.ide;singleton:=true</Bundle-SymbolicName>
                <Bundle-Activator>org.apache.uima.ruta.ide.RutaIdeCorePlugin</Bundle-Activator>
                <Bundle-RequiredExecutionEnvironment>JavaSE-1.6</Bundle-RequiredExecutionEnvironment>
                <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
                <_nouses>true</_nouses>
                <Export-Package>
                  org.apache.uima.ruta.ide.*
                </Export-Package>
                <Require-Bundle>
                  org.eclipse.core.runtime,
                  org.eclipse.dltk.core;bundle-version="3.0.0",
                  org.eclipse.core.resources,
                  org.eclipse.dltk.launching;bundle-version="3.0.0",
                  org.eclipse.dltk.validators.core;bundle-version="3.0.0",
                  org.eclipse.ui,
                  org.apache.uima.runtime,
                  org.apache.uima.ruta.engine,
                  org.eclipse.search,
                  org.eclipse.debug.ui,
                  org.eclipse.ui.console,
                  org.eclipse.jdt.core,
                  org.eclipse.jdt.debug.ui,
                  org.eclipse.core.variables,
                  org.eclipse.jdt.launching
                </Require-Bundle>
                <!-- <Bundle-ClassPath>.,antlr-runtime-3.4.jar,stringtemplate-3.2.1.jar</Bundle-ClassPath> 
                  !org.eclipse.core.runtime, !org.antlr.runtime, !org.antlr.stringtemplate, * -->
                <Import-Package>
                </Import-Package>
                <Bundle-Localization>plugin</Bundle-Localization>
              </instructions>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>