<?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>uimaj-parent</artifactId>
    <version>3.1.1</version>
    <relativePath>../uimaj-parent/pom.xml</relativePath>
  </parent>
  
	<artifactId>uimaj-ep-cas-editor-ide</artifactId>
	<packaging>jar</packaging>
	<name>Apache UIMA Eclipse: ${project.artifactId}</name>
  <description>Allows editing the contents of a saved CAS</description>
  <url>${uimaWebsiteUrl}</url>
  
  <!-- 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:https://github.com/apache/uima-uimaj/uimaj-ep-cas-editor-ide
    </connection>
    <developerConnection>
      scm:git:https://github.com/apache/uima-uimaj/uimaj-ep-cas-editor-ide
    </developerConnection>
    <url>
      https://github.com/apache/uima-uimaj/tree/master/uimaj-ep-cas-editor-ide
    </url>
    <tag>uimaj-3.1.1</tag>
  </scm>
  
  <properties>
    <uimaScmProject>${project.artifactId}</uimaScmProject>
  </properties>
  		
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
      <scope>test</scope>
		</dependency>

		<!-- UIMA dependencies -->
		<!--
			don't depend on the runtime plugin, instead, depend on the parts
			needed
		-->
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uimaj-core</artifactId>
			<version>${project.parent.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uimaj-tools</artifactId>
			<version>${project.parent.version}</version>
			<scope>compile</scope>
		</dependency>
		
		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uimaj-ep-cas-editor</artifactId>
			<version>${project.parent.version}</version>
			<scope>compile</scope>
		</dependency>

		<!-- Eclipse dependencies -->
		<dependency>
			<groupId>org.eclipse.core</groupId>
			<artifactId>runtime</artifactId>
			<version>[3.3.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.core</groupId>
			<artifactId>resources</artifactId>
			<version>[3.3.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>

		<!-- Depending on org.eclipse.ui does not include the SWT dependency -->
		<dependency>
			<groupId>org.eclipse</groupId>
			<artifactId>ui</artifactId>
			<version>[3.3.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.swt</groupId>
			<artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
      <!-- changing the lower version number to 3.2.0, 
           was 3.3.0 
           because only 3.2.0 and 3.2.1 are in 
           repo -->
			<version>[3.2.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.ui</groupId>
			<artifactId>ide</artifactId>
			<version>[3.3.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.ui</groupId>
			<artifactId>views</artifactId>
      <!-- changing the lower version number to 3.2.0, 
        was 3.3.0 
        because only 3.2.0 and 3.2.1 are in 
        repo -->
			<version>[3.2.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.ui.workbench</groupId>
			<artifactId>texteditor</artifactId>
			<version>[3.3.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.jface</groupId>
			<artifactId>text</artifactId>
			<version>[3.3.0.0,4.0.0)</version>
			<scope>provided</scope>
		</dependency>
		
    <!-- https://issues.apache.org/jira/browse/UIMA-3510 -->
    <dependency>
      <groupId>org.eclipse.equinox</groupId>
      <artifactId>app</artifactId>
      <!-- https://issues.apache.org/jira/browse/UIMA-3695
          <version>[1.0.0,1.0.1)</version>
       -->
       <version>[1.2.0,2.0.0)</version>
    </dependency>		
	</dependencies>

	<build>
    <!-- don't use artifactId as first part of finalName, follow instead the eclipse convention -->  
    <finalName>org.apache.uima.caseditor.ide_${parsedVersion.osgiVersion}</finalName>  
    <resources>
      <resource>
        <directory>.</directory>
        <includes>
          <include>plugin.xml</include>
          <include>icons/**/*.*</include>
        </includes>
      </resource>
      <resource>
        <directory>src\main\resources</directory>
      </resource>
    </resources>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.rat</groupId>
          <artifactId>apache-rat-plugin</artifactId>
          <executions>
            <execution>
              <id>default-cli</id>
              <configuration>
                <excludes combine.children="append">
                  <exclude>release.properties</exclude> <!-- release generated artifact -->
                  <exclude>src/test/resources/ManualTests/*</exclude> <!-- test data -->
                  <exclude>marker-file-identifying-*</exclude>
                </excludes>              
              </configuration>
            </execution>
          </executions>
        </plugin>   
      </plugins>
    </pluginManagement>
    	
		<plugins>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
        <executions>
          <execution>
            <id>uima-bundle</id>
            <configuration>
              <instructions>
                <Bundle-SymbolicName>org.apache.uima.caseditor.ide;singleton:=true</Bundle-SymbolicName>
                <Bundle-Activator>org.apache.uima.caseditor.ide.CasEditorIdePlugin</Bundle-Activator>
                <Bundle-RequiredExecutionEnvironment>JavaSE-1.8</Bundle-RequiredExecutionEnvironment>
                <Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
                <Export-Package>
                  org.apache.uima.caseditor.ide.*
                </Export-Package>
                <Require-Bundle>
                  org.eclipse.jface.text,
                  org.eclipse.text,
                  org.eclipse.ui.editors,
                  org.eclipse.ui.workbench.texteditor,
                  org.eclipse.ui.ide,
                  org.eclipse.ui,
                  org.eclipse.ui.workbench,
                  org.eclipse.core.runtime,
                  org.eclipse.core.resources,
                  org.junit4;resolution:=optional
                </Require-Bundle>
                <Import-Package>
                  !org.eclipse.jface.text,
                  !org.eclipse.jface.text.link,
                  !org.eclipse.jface.text.source,
                  !org.eclipse.jface.text.templates,
                  !org.eclipse.ui.texteditor,
                  !org.eclipse.ui,
                  !org.eclipse.ui.actions,
                  !org.eclipse.ui.dialogs,
                  !org.eclipse.ui.model,
                  !org.eclipse.ui.part, 
                  !org.eclipse.core.runtime,
                  !org.osgi.framework,
                  org.apache.uima.caseditor.editor.editview,
                  org.apache.uima.caseditor.editor.fsview,
                  org.apache.uima.caseditor.editor.styleview,
                  *
                </Import-Package>
              </instructions>
            </configuration>
          </execution>
        </executions>
			</plugin>
            
		</plugins>
	</build>
</project>