<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  
  <!-- 
      When using a stable parent pom, set its relativePath to an empty string; 
      this forces Maven to resolve the pom from the repositories instead of the filesystem.
      See: http://maven.apache.org/ref/3.0.3/maven-model/maven.html#class_parent
  -->
  <parent>
    <groupId>com.cyc</groupId>
    <artifactId>cyc-default-config-parent</artifactId>
    <version>1.2.2</version>
    <!--relativePath>../../maven-resources/parent-poms/default-config-parent</relativePath-->
    <relativePath></relativePath>
  </parent>
  
  <groupId>com.cyc</groupId>
  <artifactId>cyc-core-api</artifactId>
  <version>1.2.2</version>
  <packaging>jar</packaging>
  
  <name>Core API</name>

  <description>
    The interfaces which define the Cyc Core API,
    and implementation-independent factories for them.
  </description>
  
  <url>http://dev.cyc.com/api/core</url>
  
  <!-- ====|    Configuration    |============================================================= -->
  
  <properties>
    <!--cyc-core-api.version>${project.version}</cyc-core-api.version-->
    <!--maven.compiler.debug>true</maven.compiler.debug-->
    <!--maven.compiler.debuglevel>lines,vars,source</maven.compiler.debuglevel-->
    <!--maven.compiler.verbose>true</maven.compiler.verbose-->
    <!--maven-compiler-plugin.Xlint>all</maven-compiler-plugin.Xlint-->
    <!--maven-compiler-plugin.Xlint>deprecation</maven-compiler-plugin.Xlint-->
    <!--maven-compiler-plugin.Xlint>unchecked</maven-compiler-plugin.Xlint-->
    <!--maven-javadoc-plugin.Xdoclint>all</maven-javadoc-plugin.Xdoclint-->
    <maven-site-plugin.stagingDirectory>/var/www/html/dev.cyc.com/api/core</maven-site-plugin.stagingDirectory>
  </properties>
  
  <dependencies>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <!-- 
        Enables test-scope logging of Cyc APIs via SLF4J & Log4j2. (Cyc APIs use
        SLF4J, which must be bound to a logging framework at deployment time.)
        
        Note that each API project maintains its own log4j.properties file in
        its src/test/resources directory.
        
        See:
        * http://www.slf4j.org/manual.html
        * [PROJECT]/src/test/resources/log4j.properties
    -->
    <!--
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <scope>test</scope>
    </dependency>
    -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-api</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- Testing -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>
  </dependencies>
  
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <!--
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
      </plugin>
      -->
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>license-maven-plugin</artifactId> 
      </plugin>
      <!--
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-site-plugin</artifactId>
     </plugin>
     -->
    </plugins>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>**/BuildInfo.properties</include>
        </includes>
      </resource>
    </resources>
  </build>
  
  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>${maven-javadoc-plugin.version}</version>
        <configuration>
          <includeDependencySources>true</includeDependencySources>
          <dependencySourceIncludes>
            <dependencySourceInclude>com.cyc:*</dependencySourceInclude>
          </dependencySourceIncludes>
          <groups>
            <group>
              <title>KB API</title>
              <packages>com.cyc.kb*</packages>
            </group>
            <group>
              <title>Query API</title>
              <packages>com.cyc.query*:com.cyc.km.query*:com.cyc.km.modeling*:com.cyc.xml.query*</packages>
            </group>
            <group>
              <title>Session API</title>
              <packages>com.cyc.session*</packages>
            </group>
            <group>
              <title>NL API Support</title>
              <packages>com.cyc.nl*</packages>
            </group>
          </groups>
          <show>public</show>
          <author>false</author>
          <version>false</version>
        </configuration>
      </plugin>
      <!--
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <version>2.7</version>
        <reportSets>
          <reportSet>
            <reports>
              <!- - 
              See https://maven.apache.org/plugins/maven-project-info-reports-plugin/ 
              - ->
              <report>index</report>
              <report>help</report>
              <report>dependency-info</report>
              <report>mailing-list</report>
              <report>license</report>
              <report>summary</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      -->
    </plugins>
  </reporting>
  
  <profiles>
    <profile>
      <id>default-config</id>
      <activation>
        <property>
          <name>!sonatype-oss-release</name>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <author>false</author>
                <version>false</version>
              </configuration>
              <executions>
                <execution>
                  <id>default-cli</id>
                  <phase>site</phase>
                  <goals>
                    <goal>aggregate</goal>
                  </goals>
                  <configuration>
                  </configuration>
                </execution>
                <execution>
                  <id>resource-bundles</id>
                  <phase>package</phase>
                  <goals>
                    <!-- produce source artifact for main project sources -->
                    <goal>resource-bundle</goal>
                  </goals>
                  <configuration>
                    <detectOfflineLinks>false</detectOfflineLinks>
                  </configuration>
                </execution>
              </executions>
            </plugin>
            <plugin>
              <artifactId>maven-site-plugin</artifactId>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>
  
  <!-- ====|    Metadata & contact info    |=================================================== -->
    
  <scm>
    <connection>scm:git:git@github.com:cycorp/api-suite.git</connection>
    <developerConnection>scm:git:git@github.com:cycorp/api-suite.git</developerConnection>
    <url>https://github.com/cycorp/api-suite</url>
  </scm>
  
  <issueManagement>
    <url>http://dev.cyc.com/issues/</url>
    <system>GitHub Issues</system>
  </issueManagement>
  
  <licenses>
    <license>
      <name>The Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>
  
  <organization>
    <name>Cycorp, Inc</name>
    <url>http://www.cyc.com</url>
  </organization>
  
  <developers>
    <developer>
      <name>Cycorp API Team</name>
      <email>dev-team@cyc.com</email>
      <organization>Cycorp, Inc.</organization>
      <organizationUrl>http://www.cyc.com</organizationUrl>
    </developer>
  </developers>
  
  <distributionManagement> 
    <site> 
      <id>cyc-dev-center</id> 
      <url>http://dev.cyc.com/api/core</url> 
    </site>
  </distributionManagement>
  
</project>
