<?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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.uima</groupId>
    <artifactId>ruta-parent</artifactId>
    <version>3.0.2-SNAPSHOT</version>
    <relativePath>../ruta-parent/pom.xml</relativePath>
  </parent>

  <artifactId>ruta-ep-parent</artifactId>
  <packaging>pom</packaging>
  <name>Apache UIMA Ruta: ${project.artifactId}</name>
  <url>${uimaWebsiteUrl}</url>
  <inceptionYear>2011</inceptionYear>
  <description>The common parent pom for the UIMA Ruta Eclipse Plugins</description>

  <!-- Special inheritance note
    even though the <scm> element that follows is exactly the
    same as those in super poms, it cannot be inherited because
    there is some special code that computes the connection elements
    from the chain of parent poms, if this is omitted.

    Keeping this a bit factored allows cutting/pasting the <scm>
    element, and just changing the following two properties -->
  <scm>
    <connection>scm:git:git://github.com/apache/uima-ruta</connection>
    <developerConnection>scm:git:git@github.com:apache/uima-ruta.git</developerConnection>
    <url>https://github.com/apache/uima-ruta</url>
    <tag>HEAD</tag>
  </scm>

  <properties>
    <dltk.version>[3.0.1,6.0.0)</dltk.version>
  </properties>

  <repositories>
    <!-- Temporary repository that contains osgi bundles like DLTK 5.3. Added to ease building the UIMA 
      Ruta
      Eclipse plugins that depend on bundles, which are not provided by public maven repositories. -->
    <repository>
      <id>averbis-osgi-releases</id>
      <url>https://maven.averbis.com/m2/</url>
    </repository>
  </repositories>


  <dependencies>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>core</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>ui</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>debug</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>annotations</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>launching</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk.core</groupId>
      <artifactId>manipulation</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk.validators</groupId>
      <artifactId>core</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.dltk</groupId>
      <artifactId>console</artifactId>
      <version>${dltk.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.swt.win32.win32</groupId>
      <artifactId>x86_64</artifactId>
      <version>[3.2.0,5.0.0)</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <dependencyManagement>
    <!-- explicit dependencies for mars.1 -->
    <dependencies>
      <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>contenttype</artifactId>
        <version>3.5.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.core</groupId>
        <artifactId>commands</artifactId>
        <version>0.11.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.core</groupId>
        <artifactId>di</artifactId>
        <version>1.5.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.core</groupId>
        <artifactId>services</artifactId>
        <version>2.0.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui</groupId>
        <artifactId>bindings</artifactId>
        <version>0.11.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui</groupId>
        <artifactId>di</artifactId>
        <version>1.1.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui</groupId>
        <artifactId>workbench</artifactId>
        <version>1.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui</groupId>
        <artifactId>workbench3</artifactId>
        <version>0.13.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui.css</groupId>
        <artifactId>core</artifactId>
        <version>0.11.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui.css</groupId>
        <artifactId>swt</artifactId>
        <version>0.12.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui.css.swt</groupId>
        <artifactId>theme</artifactId>
        <version>0.10.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui.model</groupId>
        <artifactId>workbench</artifactId>
        <version>1.1.100</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui.workbench</groupId>
        <artifactId>swt</artifactId>
        <version>0.13.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui.workbench.addons</groupId>
        <artifactId>swt</artifactId>
        <version>1.2.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui.workbench.renderers</groupId>
        <artifactId>swt</artifactId>
        <version>0.13.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.e4.ui</groupId>
        <artifactId>widgets</artifactId>
        <version>1.1.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>ecore</artifactId>
        <version>2.11.1</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf.ecore</groupId>
        <artifactId>change</artifactId>
        <version>2.11.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf.ecore</groupId>
        <artifactId>xmi</artifactId>
        <version>2.11.1</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.equinox</groupId>
        <artifactId>app</artifactId>
        <version>1.3.300</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.equinox</groupId>
        <artifactId>common</artifactId>
        <version>3.7.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.equinox</groupId>
        <artifactId>preferences</artifactId>
        <version>3.5.300</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.core</groupId>
        <artifactId>jobs</artifactId>
        <version>3.7.0</version>
      </dependency>
      <dependency>
        <groupId>org.w3c.css</groupId>
        <artifactId>sac</artifactId>
        <version>1.3.1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>jxpath</artifactId>
        <version>1.3.0</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>3.0.1</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

</project>
