<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-solr-grandparent</artifactId>
    <version>@version@</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <groupId>org.apache.lucene</groupId>
  <artifactId>lucene-parent</artifactId>
  <packaging>pom</packaging>
  <name>Lucene parent POM</name>
  <description>Lucene parent POM</description>
  <properties>
    <module-directory>lucene</module-directory>
  </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>
  <modules>
    <module>core</module>
    <module>codecs</module>
    <module>test-framework</module>
    <module>analysis</module>
    <module>benchmark</module>
    <module>classification</module>
    <module>demo</module>
    <module>facet</module>
    <module>grouping</module>
    <module>highlighter</module>
    <module>join</module>
    <module>memory</module>
    <module>misc</module>
    <module>queries</module>
    <module>queryparser</module>
    <module>replicator</module>
    <module>sandbox</module>
    <module>spatial</module>
    <module>suggest</module>
  </modules>
  <build>
    <plugins>
      <plugin>
        <groupId>de.thetaphi</groupId>
        <artifactId>forbiddenapis</artifactId>
        <executions>
          <execution>
            <id>lucene-shared-check-forbidden-apis</id>
            <configuration>
              <!-- disallow undocumented classes like sun.misc.Unsafe: -->
              <internalRuntimeForbidden>true</internalRuntimeForbidden>
              <bundledSignatures>
                <bundledSignature>jdk-unsafe</bundledSignature>
                <bundledSignature>jdk-deprecated</bundledSignature>
                <bundledSignature>jdk-system-out</bundledSignature>
              </bundledSignatures>
              <signaturesFiles>
                <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
              </signaturesFiles>
            </configuration>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
          <execution>
            <id>lucene-shared-test-check-forbidden-apis</id>
            <configuration>
              <!-- disallow undocumented classes like sun.misc.Unsafe: -->
              <internalRuntimeForbidden>true</internalRuntimeForbidden>
              <bundledSignatures>
                <bundledSignature>jdk-unsafe</bundledSignature>
                <bundledSignature>jdk-deprecated</bundledSignature>
              </bundledSignatures>
              <signaturesFiles>
                <signaturesFile>${top-level}/lucene/tools/forbiddenApis/tests.txt</signaturesFile>
                <signaturesFile>${top-level}/lucene/tools/forbiddenApis/executors.txt</signaturesFile>
              </signaturesFiles>
            </configuration>
            <goals>
              <goal>testCheck</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>
