<?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>
  
  <!--
      POM LAYOUT:
      
      * Header
        * name
        * description
        * parent
        * coordinates (artifactId, groupId, etc.)
      * Properties
      * Dependency Management
      * Build / Plugin Management
      * Profiles
      * Metadata & contact info (url, licenses, scm, etc.)
      
      This pom does not mandate the inclusion of any dependencies.
      
      This pom does not perform a reactor build.
  -->
  
  <name>Default Config Parent</name>
  
  <description>
    Provides default properties, dependencyManagement, and pluginManagement for many of Cycorp's
    open source Java projects. 
    
    This pom does not mandate the inclusion of any dependencies or plugins, and does not perform a 
    reactor build.
  </description>
  
  <parent>
    <groupId>com.cyc</groupId>
    <artifactId>cyc-sonatype-oss-parent</artifactId>
    <version>1.0.0</version>
    <!-- 
        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
    -->
    <!--relativePath>../sonatype-oss-parent</relativePath-->
    <relativePath></relativePath>
  </parent>
  
  <groupId>com.cyc</groupId>
  <artifactId>cyc-default-config-parent</artifactId>
  <version>1.2.2</version>
  <packaging>pom</packaging>
  
  <!-- ========|    Properties    |============================================================= -->
  
  <!--
      PROPERTY NAMING CONVENTIONS:
      
      Typically, a property name is a dot-delimited path of hierarchical field names, ending in
      the name of the field whose value it represents. The path does not need to be absolute, and
      portions can be omitted for clarity, but it should be reasonably self-documenting, 
      unambiguous, and should ideally be intuitive. Property names should not duplicate or resemble
      the names of standard Maven POM variables: it would be unwise to create a property named 
      "${project.version}".
      
      A property that represents a field on a plugin or dependency will typically follow the
      pattern of [ARTIFACT_ID].[FIELD_NAME]. Such property names don't need to include the names
      of intermediate elements (such as "configuration") that are part of the path unless it's 
      somehow disambiguating or otherwise valuable to do so. For example, for maven-javadoc-plugin:
      
      * ${maven-javadoc-plugin.version} -> plugin/version
      * ${maven-javadoc-plugin.quiet}   -> plugin/configuration/quiet
      
      Many plugins can be configured via user properties, but this should only be done when the name
      of the property is reasonably unambiguous. For example, maven-compiler-plugin has some fairly
      unambiguous properties like "maven.compiler.source" and "maven.compiler.verbose". OTOH, the
      maven-javadoc-plugin user property for the quiet parameter is simply "quiet", so in that case
      we define our own "maven-javadoc-plugin.quiet" property.
  -->
  <properties>
    <!-- ~~~~~~~~/    General build properties    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--
        Build timestamp: ${maven.build.timestamp} doesn't make it through to the filtering
        mechanism, so we need to store it in another property.
        See: http://java.dzone.com/tips/stamping-version-number-and
    -->
    <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
    <timestamp>${maven.build.timestamp}</timestamp>
    <!-- ~~~~~~~~/    Cyc/Cycorp dependency versions    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <cyc-checkstyle-resources.version>0.1.0</cyc-checkstyle-resources.version>
    <cyc-core-api.version>1.2.2</cyc-core-api.version>
    <cyc-core-client-impl.version>${cyc-core-api.version}</cyc-core-client-impl.version>
    <cyc-model-suite.version>1.0.0</cyc-model-suite.version>
    <cyc-site-skin.version>1.0.0-rc2</cyc-site-skin.version>
    <cyc-source-template-resources.version>0.1.0</cyc-source-template-resources.version>
    <!-- ~~~~~~~~/    Maven dependency versions    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <doxia-module-markdown.version>1.6</doxia-module-markdown.version>
    <doxia-module-xhtml.version>1.6</doxia-module-xhtml.version>
    <wagon-ssh.version>2.12</wagon-ssh.version>
    <!-- ~~~~~~~~/    Third-party dependency versions    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <classindex.version>3.4</classindex.version>
    <commons-lang3.version>3.4</commons-lang3.version>
    <commons-io.version>2.5</commons-io.version>
    <guava.version>18.0</guava.version>
    <jackson-core.version>2.8.11</jackson-core.version>
    <junit.version>4.12</junit.version>
    <log4j-core.version>2.8.2</log4j-core.version>
    <slf4j-api.version>1.7.12</slf4j-api.version>
    <svnkit.version>1.8.5</svnkit.version>
    <!-- ~~~~~~~~/    Plugin versions    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!--
        Updated 2017-07-26 for Core API 1.0.0-rc7.0. Notes:
        
        maven-jaxb2-plugin:
        * Versions of this plugin before 0.9.0 may cause accessExternalSchema errors on Java 8.
        * See: http://stackoverflow.com/a/26349908/786623
        
        maven-surefire-plugin:
        * Version 2.19 breaks running single test in NetBeans.
        *   See: https://netbeans.org/projects/java/lists/junit-issues/archive/2015-11/message/2
        * Version 2.20 runs in NetBeans, but doesn't seem to display output in Test Results pane.
        
        versions-maven-plugin:
        * Version 2.2 throws  java.io.FileNotFoundException on mvn versions:set
        * See: https://github.com/mojohaus/versions-maven-plugin/issues/44
    -->
    <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
    <license-maven-plugin.version>1.7</license-maven-plugin.version>
    <maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
    <maven-assembly-plugin.version>3.0.0</maven-assembly-plugin.version>
    <maven-checkstyle-plugin.version>2.17</maven-checkstyle-plugin.version>
    <maven-compiler-plugin.version>3.6.1</maven-compiler-plugin.version>
    <maven-failsafe-plugin.version>2.20</maven-failsafe-plugin.version>
    <maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>
    <maven-javadoc-plugin.version>2.10.4</maven-javadoc-plugin.version>
    <maven-jaxb2-plugin.version>0.10.0</maven-jaxb2-plugin.version>
    <maven-jxr-plugin.version>2.5</maven-jxr-plugin.version>
    <maven-project-info-reports-plugin.version>2.9</maven-project-info-reports-plugin.version>
    <maven-site-plugin.version>3.6</maven-site-plugin.version>
    <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
    <maven-surefire-plugin.version>2.18</maven-surefire-plugin.version>
    <serviceloader-maven-plugin.version>1.0.2</serviceloader-maven-plugin.version>
    <svn-revision-number-maven-plugin.version>1.13</svn-revision-number-maven-plugin.version>
    <versions-maven-plugin.version>2.1</versions-maven-plugin.version>
    <!-- ~~~~~~~~/    Plugin properties    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <!--
        Cyc Dev Center properties
     -->
    <cdc.javadoc.name>Cyc ${project.name}</cdc.javadoc.name>
    <cdc.javadoc.url>${project.url}</cdc.javadoc.url>
    <cdc.javadoc.header.name>${cdc.javadoc.name}</cdc.javadoc.header.name>
    <cdc.javadoc.header.url>${cdc.javadoc.url}</cdc.javadoc.header.url>
    <cdc.javadoc.footer.name>${cdc.javadoc.name}</cdc.javadoc.footer.name>
    <cdc.javadoc.footer.url>${cdc.javadoc.url}</cdc.javadoc.footer.url>
    <!--
        maven-checkstyle-plugin:
        * For stricter behavior, change maven-checkstyle-plugin.configLocation to google_checks.xml
        
        versions-maven-plugin.generateBackupPoms:
        * Determines whether to generate pom.xml.versionsBackup files 
    -->
    <exec-maven-plugin.mainClass>com.cyc.Main</exec-maven-plugin.mainClass>
    <license-maven-plugin.descriptionTemplate>headerTemplate.ftl</license-maven-plugin.descriptionTemplate>
    <maven-checkstyle-plugin.configLocation>google_checks-no_javadoc.xml</maven-checkstyle-plugin.configLocation>
    <!--maven.compiler.debug>true</maven.compiler.debug-->
    <!--maven.compiler.debuglevel>lines,vars,source</maven.compiler.debuglevel-->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.verbose>false</maven.compiler.verbose>
    <!--maven-compiler-plugin.Xlint>all</maven-compiler-plugin.Xlint-->
    <maven-compiler-plugin.Xlint>none</maven-compiler-plugin.Xlint>
    <maven-javadoc-plugin.Xdoclint>none</maven-javadoc-plugin.Xdoclint>
    <maven-javadoc-plugin.header>&lt;a href="${cdc.javadoc.header.url}" target="_top"&gt;${cdc.javadoc.header.name}&lt;a&gt;</maven-javadoc-plugin.header>
    <maven-javadoc-plugin.footer>&lt;a href="${cdc.javadoc.footer.url}" target="_top"&gt;${cdc.javadoc.footer.name}&lt;a&gt;</maven-javadoc-plugin.footer>
    <maven-javadoc-plugin.quiet>true</maven-javadoc-plugin.quiet>
    <maven-site-plugin.stagingDirectory>/tmp/www/${project.artifactId}</maven-site-plugin.stagingDirectory>
    <versions-maven-plugin.generateBackupPoms>false</versions-maven-plugin.generateBackupPoms>
  </properties>
  
  <!-- ========|    Dependencies    |=========================================================== -->
  
  <dependencyManagement>
    <dependencies>
      <!-- ~~~~~~~~/    Core API    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>com.cyc</groupId>
        <artifactId>cyc-core-api</artifactId>
        <version>${cyc-core-api.version}</version>
      </dependency>
      <dependency>
        <groupId>com.cyc</groupId>
        <artifactId>cyc-core-api</artifactId>
        <classifier>jar-with-dependencies</classifier>
        <version>${cyc-core-api.version}</version>
      </dependency>
      <!-- ~~~~~~~~/    Core Client Implementation    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>com.cyc</groupId>
        <artifactId>cyc-core-client-impl</artifactId>
        <version>${cyc-core-client-impl.version}</version>
      </dependency>
      <dependency>
        <groupId>com.cyc</groupId>
        <artifactId>cyc-core-client-impl</artifactId>
        <classifier>jar-with-dependencies</classifier>
        <version>${cyc-core-client-impl.version}</version>
      </dependency>
      <!-- ~~~~~~~~/    Cyc XML-related libraries    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>com.cyc.xml</groupId>
        <artifactId>cyc-core-xml</artifactId>
        <version>1.2.0</version>
      </dependency>
      <dependency>
        <groupId>com.cyc.xml</groupId>
        <artifactId>cyc-cycconcepts</artifactId>
        <version>1.1.0</version>
      </dependency>
      <dependency>
        <groupId>com.cyc.xml</groupId>
        <artifactId>cyc-cycml</artifactId>
        <version>1.0.0</version>
      </dependency>
      <dependency>
        <groupId>com.cyc.xml</groupId>
        <artifactId>cyc-lightweightresultset</artifactId>
        <version>1.1.0</version>
      </dependency>
      <dependency>
        <groupId>com.cyc.xml</groupId>
        <artifactId>cyc-textprocessing</artifactId> <!-- TODO: upgrade to 1.1.1 - nwinant, 2018-04-10 -->
        <version>1.0.0</version>
      </dependency>
      <!-- ~~~~~~~~/    Cyc JSON/serialization libraries    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>com.cyc.common</groupId>
        <artifactId>cyc-core-serialization</artifactId>
        <version>1.0.0</version>
      </dependency>
      <dependency>
        <groupId>com.cyc.json</groupId>
        <artifactId>cyc-core-json</artifactId>
        <version>1.0.0</version>
      </dependency>
      <!-- ~~~~~~~~/    Test-scope libraries    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <!-- ~~~~~~~~/    Logging    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j-api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-ext</artifactId>
        <version>${slf4j-api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>${slf4j-api.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
      <!--
          "Use of the Log4j 2 SLF4J Binding (log4j-slf4j-impl-2.0.jar) together with the SLF4J
           adapter (log4j-to-slf4j-2.0.jar) should never be attempted, as it will cause events to 
           endlessly be routed between SLF4J and Log4j 2."
           - https://logging.apache.org/log4j/2.0/log4j-slf4j-impl/index.html
      -->
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>${log4j-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j-core.version}</version>
      </dependency>
      <!-- ~~~~~~~~/    Jackson (includes JSON support)    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <!-- ~~~~~~~~/    Jackson databinding    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <!-- Binary formats (Avro, CBOR, Ion, Protobuf, Smile) -->
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformats-binary</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <dependency>
        <!-- CSV -->
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-csv</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <dependency>
        <!-- Java .properties -->
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-properties</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <dependency>
        <!-- XML -->
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-xml</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <dependency>
        <!-- YAML -->
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
        <version>${jackson-core.version}</version>
      </dependency>
      <!-- ~~~~~~~~/    XML processing, general    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.10.0</version>
      </dependency>
      <dependency>                                                                                     
        <groupId>javax.xml.bind</groupId>                                                                
        <artifactId>jaxb-api</artifactId>                                                                
        <version>2.2.7</version>                                                                        
      </dependency>
      <dependency>
        <groupId>com.sun.xml.bind</groupId>
        <artifactId>jaxb-impl</artifactId>
        <version>2.2.6</version>
      </dependency>
      <!-- ~~~~~~~~/    Build-related    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>org.atteo.classindex</groupId>
        <artifactId>classindex</artifactId>
        <version>${classindex.version}</version>
      </dependency>
      <!-- ~~~~~~~~/    General utilities (collections, strings, etc.)    /~~~~~~~~~~~~~~~~~~~~~ -->
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>${guava.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>
  
  <!--dependencies>
  
      * * *    This pom does not mandate the inclusion of any dependencies.    * * *
      
  </dependencies-->
  
  <!-- ========|    Build    |================================================================== -->
  
  <build>
    <pluginManagement>
      <plugins>
        <!-- ~~~~~~~~/    Apache plugins (i.e., groupId=org.apache.maven.plugins)    /~~~~~~~~~~ -->
        <!--
            NOTE: We don't need a groupId specification when the group is
            org.apache.maven.plugins, because this is assumed by default.
        -->
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${maven-antrun-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${maven-assembly-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven-checkstyle-plugin.version}</version>
          <configuration>
            <configLocation>${maven-checkstyle-plugin.configLocation}</configLocation>
            <failOnViolation>false</failOnViolation>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>com.cyc.maven</groupId>
              <artifactId>cyc-checkstyle-resources</artifactId>
              <version>${cyc-checkstyle-resources.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <configuration>
            <compilerArgs>
              <arg>-Xlint:${maven-compiler-plugin.Xlint}</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${maven-failsafe-plugin.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven-javadoc-plugin.version}</version>
          <configuration>
            <header>${maven-javadoc-plugin.header}</header>
            <footer>${maven-javadoc-plugin.footer}</footer>
            <quiet>${maven-javadoc-plugin.quiet}</quiet>
          </configuration>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <!-- 
          See https://maven.apache.org/plugins/maven-project-info-reports-plugin/ 
          -->
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${maven-project-info-reports-plugin.version}</version>
          <!--
          <reportSets>
            <reportSet>
              <reports>
                <report>index</report>
                <report>plugin-management</report>
                <report>distribution-management</report>
                <report>dependency-info</report>
                <report>mailing-list</report>
                <report>issue-tracking</report>
                <report>plugins</report>
                <report>license</report>
              </reports>
            </reportSet>
          </reportSets>
          -->
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>${maven-site-plugin.version}</version>
          <configuration>
            <stagingDirectory>${maven-site-plugin.stagingDirectory}</stagingDirectory>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.doxia</groupId>
              <artifactId>doxia-module-markdown</artifactId>
              <version>${doxia-module-markdown.version}</version>
            </dependency>
            <dependency> 
              <groupId>org.apache.maven.doxia</groupId> 
              <artifactId>doxia-module-xhtml</artifactId> 
              <version>${doxia-module-xhtml.version}</version>
            </dependency>
            <!--
            <dependency>
              <groupId>org.apache.maven.wagon</groupId>
              <artifactId>wagon-ssh</artifactId>
              <version>${wagon-ssh.version}</version>
            </dependency>
            -->
          </dependencies>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven-source-plugin.version}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
          <executions>
            <execution>
              <id>default-test</id>
              <phase>test</phase>
              <goals>
                <goal>test</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <!-- ~~~~~~~~/    Third-party plugins    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <plugin>
          <groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
          <artifactId>svn-revision-number-maven-plugin</artifactId>
          <version>${svn-revision-number-maven-plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.tmatesoft.svnkit</groupId>
              <artifactId>svnkit</artifactId>
              <version>${svnkit.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>eu.somatik.serviceloader-maven-plugin</groupId>
          <artifactId>serviceloader-maven-plugin</artifactId>
          <version>${serviceloader-maven-plugin.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <!--
          NETBEANS NOTE: to set up a project such that NetBeans uses this plugin, as configured,
                         instead of its own rando stuff, do the following:
                         
          Right-click the project -> Properties -> Actions -> Run project
                    -> then replace the contents of "Execute Goals" with "process-classes exec:java"
          Do the same for "Run file via Main()"
          
          This will update the project's nbactions.xml file, after which it should properly.
          -->
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${exec-maven-plugin.version}</version>
          <configuration>
            <mainClass>${exec-maven-plugin.mainClass}</mainClass>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>${license-maven-plugin.version}</version>
          <configuration>
            <verbose>false</verbose>
            <addSvnKeyWords>false</addSvnKeyWords>
            <canUpdateDescription>true</canUpdateDescription>
            <descriptionTemplate>${license-maven-plugin.descriptionTemplate}</descriptionTemplate>
            <canUpdateCopyright>true</canUpdateCopyright>
          </configuration>
          <executions>
            <execution>
              <id>first</id>
              <goals>
                <goal>update-file-header</goal>
              </goals>
              <phase>process-sources</phase>
              <configuration>
                <licenseName>apache_v2</licenseName>
                <roots>
                  <root>src/main/java</root>
                  <root>src/test</root>
                </roots>
              </configuration>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>com.cyc.maven</groupId>
              <artifactId>cyc-source-template-resources</artifactId>
              <version>${cyc-source-template-resources.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${versions-maven-plugin.version}</version>
          <configuration>
            <!-- Determines whether to generate pom.xml.versionsBackup files -->
            <generateBackupPoms>${versions-maven-plugin.generateBackupPoms}</generateBackupPoms>
          </configuration>
        </plugin>
        <plugin>
          <!--
          Not to be confused with 
          -->
          <groupId>org.jvnet.jaxb2.maven2</groupId>
          <artifactId>maven-jaxb2-plugin</artifactId>
          <version>${maven-jaxb2-plugin.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <forceRegenerate>false</forceRegenerate>
            <verbose>false</verbose>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <!--plugins>
    
        * * *    This pom does not mandate the inclusion of any plugins.    * * *
      
    </plugins-->
  </build>
  
  <!--modules>
  
      * * *    This pom does not perform a reactor build.    * * *
      
  </modules-->
  
  <!-- ========|    Profiles    |=============================================================== -->

  <profiles>
    <!-- ~~~~~~~~/    Java 8 doc linting profile    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <profile>
      <id>java8-doclinting</id>
      <activation>
        <jdk>1.8</jdk>
      </activation> 
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <additionalparam>-Xdoclint:${maven-javadoc-plugin.Xdoclint}</additionalparam>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <!-- ~~~~~~~~/    Java 7 doc linting profile    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <profile>
      <id>doclint-java7-enable</id>
      <activation>
        <jdk>1.7</jdk>
      </activation>
      <!--
      Nothing much to see here...
      -->
    </profile>
    <!-- ~~~~~~~~/    Maven checkstyle profile    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
    <profile>
      <id>checkstyle</id>
      <build>
        <plugins>
          <plugin>
            <!--
                To run checkstyle from the command line:
                
                mvn clean validate -P checkstyle
            -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <executions>
              <execution>
                <id>checkstyle</id>
                <phase>validate</phase>
                <goals>
                  <goal>check</goal>
                </goals>
                <configuration>
                  <consoleOutput>true</consoleOutput>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <reporting>
        <plugins>
          <plugin>
            <!--
                To generate a checkstyle report, use the 'checkstyle' profile. E.g.:
                
                mvn clean site -P checkstyle
            -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>${maven-checkstyle-plugin.version}</version>
            <configuration>
              <configLocation>${maven-checkstyle-plugin.configLocation}</configLocation>
            </configuration>
            <reportSets>
              <reportSet>
                <reports>
                  <report>checkstyle</report>
                </reports>
              </reportSet>
            </reportSets>
          </plugin>
          <plugin>
            <!--
                Generates a cross-reference of the project's sources; relevant to maven-checkstyle-plugin.
                
                See http://stackoverflow.com/questions/18766873/checkstyle-reports-not-showing-anything
            -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jxr-plugin</artifactId>
            <version>${maven-jxr-plugin.version}</version>
          </plugin>
        </plugins>
      </reporting>
    </profile>
  </profiles>
  
  <!-- ====|    Metadata & contact info    |==================================================== -->
  
  <url>http://dev.cyc.com/</url>
  
  <scm>
    <connection>scm:git:git@github.com:cycorp/maven-resources.git</connection>
    <developerConnection>scm:git:git@github.com:cycorp/maven-resources.git</developerConnection>
    <url>https://github.com/cycorp/maven-resources</url>
  </scm>
  
  <issueManagement>
    <url>http://dev.cyc.com/issues/</url>
    <system>GitHub Issues</system>
  </issueManagement>
  
  <inceptionYear>2015</inceptionYear>
  
  <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>

</project>
