<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>
  </parent>
  <artifactId>lucene-contrib</artifactId>
  <name>Lucene Java Contrib POM</name>
  <version>@version@</version>
  <packaging>pom</packaging>
  <dependencies>
    <dependency>
      <groupId>org.apache.lucene</groupId>
      <artifactId>lucene-core</artifactId>
      <version>@version@</version>
    </dependency>
  </dependencies>
  <properties>
    <commons-logging-version>1.0.4</commons-logging-version>
    <commons-digester-version>1.7</commons-digester-version>
    <commons-collections-version>3.1</commons-collections-version>
    <commons-beanutils-version>1.7.0</commons-beanutils-version>
    <jakarta-regexp-version>1.4</jakarta-regexp-version>
    <icu-version>4.0</icu-version>
  </properties>
</project>
