<?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.opennlp</groupId>
		<artifactId>opennlp-sandbox</artifactId>
		<version>2.3.4-SNAPSHOT</version>
	</parent>

	<artifactId>caseditor-corpus-server-plugin</artifactId>
	<version>2.3.4-SNAPSHOT</version>
	<packaging>jar</packaging>
	<name>Apache OpenNLP CasEditor Corpus Server Plugin</name>

	<repositories>
		<repository>
			<id>eclipsePlugins</id>
			<name>Eclipse components</name>
			<layout>default</layout>
			<url>https://repo.eclipse.org</url>

			<releases>
				<updatePolicy>never</updatePolicy>
				<checksumPolicy>fail</checksumPolicy>
			</releases>

			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

	<dependencies>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
		</dependency>

		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-params</artifactId>
		</dependency>

		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
			<version>${jersey-client.version}</version>
		</dependency>

		<dependency>
			<groupId>org.glassfish.jersey.media</groupId>
			<artifactId>jersey-media-json-jettison</artifactId>
			<version>${jersey-server.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.codehaus.jettison</groupId>
					<artifactId>jettison</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.codehaus.jettison</groupId>
			<artifactId>jettison</artifactId>
			<version>${jettison.version}</version>
		</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>${uimaj.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uimaj-tools</artifactId>
			<version>${uimaj.version}</version>
			<scope>compile</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.uima</groupId>
			<artifactId>uimaj-ep-cas-editor</artifactId>
			<version>${uimaj.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.win32.win32</groupId>
			<artifactId>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.3.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>
	</dependencies>

	<build>
		<!-- don't use artifactId as first part of finalName, follow instead the 
			eclipse convention -->
		<finalName>org.apache.opennlp.corpus_server.caseditor_2.1.1</finalName>
		<resources>
			<resource>
				<directory>.</directory>
				<includes>
					<include>plugin.xml</include>
					<include>icons/**/*.*</include>
				</includes>
			</resource>
			<resource>
				<directory>src\main\resources</directory>
			</resource>
		</resources>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>${maven.compiler.source}</source>
					<target>${maven.compiler.target}</target>
				</configuration>
			</plugin>
			<plugin>
			  <artifactId>maven-jar-plugin</artifactId>
			  <configuration>
			    <archive>  
			      <manifestFile>META-INF/MANIFEST.MF</manifestFile>
			    </archive> 
			  </configuration>
			</plugin> 			
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<version>5.1.8</version>
				<executions>
					<execution>
					 	<goals><goal>manifest</goal></goals>
					 	<phase>process-classes</phase>
						<configuration>
							<manifestLocation>META-INF/</manifestLocation>
							<instructions>
								<Bundle-SymbolicName>org.apache.opennlp.corpus_server.caseditor.CorpusServerPlugin;singleton:=true</Bundle-SymbolicName>
								<Bundle-Activator>org.apache.opennlp.corpus_server.caseditor.CorpusServerPlugin</Bundle-Activator>
								<Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
								<Bundle-ActivationPolicy>lazy</Bundle-ActivationPolicy>
								<Export-Package>
								org.apache.opennlp.corpus_server.caseditor.*
								</Export-Package>
								<Require-Bundle>
									org.eclipse.jface.text,
									org.eclipse.text,
									org.eclipse.ui.editors,
									org.eclipse.ui.workbench.texteditor,
									org.eclipse.ui,
									org.eclipse.ui.workbench,
									org.eclipse.core.runtime,
									org.eclipse.core.resources
								</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.codehaus.jettison,
									org.glassfish.jersey.client.config,
									*
								</Import-Package>
							</instructions>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
