<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">
  <!--
    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.
  -->
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-parent</artifactId>
    <version>@version@</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>
  <groupId>org.apache.lucene</groupId>
  <artifactId>lucene-analyzers-uima</artifactId>
  <packaging>jar</packaging>
  <name>Lucene UIMA Analysis Components</name>
  <description>    
    Lucene Integration with UIMA for extracting metadata from arbitrary (text)
    fields and enrich document with features extracted from UIMA types 
    (language, sentences, concepts, named entities, etc.)
  </description>
  <properties>
    <module-directory>lucene/analysis/uima</module-directory>
    <top-level>../../../..</top-level>
    <module-path>${top-level}/${module-directory}</module-path>
  </properties>
  <scm>
    <connection>scm:svn:${vc-anonymous-base-url}/${module-directory}</connection>
    <developerConnection>scm:svn:${vc-dev-base-url}/${module-directory}</developerConnection>
    <url>${vc-browse-base-url}/${module-directory}</url>
  </scm>
  <dependencies>
    <dependency> 
      <!-- lucene-test-framework dependency must be declared before lucene-core -->
      <groupId>${project.groupId}</groupId>
      <artifactId>lucene-test-framework</artifactId>
      <version>${project.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>lucene-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>lucene-analyzers-common</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>Tagger</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>WhitespaceTokenizer</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-core</artifactId>
    </dependency>
  </dependencies>
  <build>
    <sourceDirectory>${module-path}/src/java</sourceDirectory>
    <testSourceDirectory>${module-path}/src/test</testSourceDirectory>
    <resources>
      <resource>
        <directory>${module-path}/src/resources</directory>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>${module-path}/src/test-files</directory>
      </testResource>
    </testResources>
  </build>
</project>
