<commit_before><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2013-2014 <NAME>
This file is part of AutomataLib, http://www.automatalib.net/.

Licensed 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.
-->
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         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>

    <!-- ================================= PROJECT INFO ============================== -->
    <groupId>net.automatalib</groupId>
    <artifactId>automata-parent</artifactId>
    <version>0.6.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>AutomataLib</name>
    <description>
        A fully generic library for automata, graphs, and models, written in Java.
        This is the parent artifact which does not have any source code. Please refer to the
        "modules" page for more detailed documentation on the single library artifacts.
    </description>
    <url>http://learnlib.github.io/automatalib/maven-site/${project.version}</url>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <issueManagement>
        <url>https://github.com/learnlib/automatalib/issues</url>
        <system>GitHub Issues</system>
    </issueManagement>

    <developers>
        <developer>
            <id>misberner</id>
            <name><NAME></name>
            <email><EMAIL></email>
            <organization>TU Dortmund, Chair for Programming Systems</organization>
            <organizationUrl>http://ls5-www.cs.tu-dortmund.de/</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
            <properties>
                <picUrl>
                    http://www.gravatar.com/avatar/c44dc4164f1a9a597ec0c24425d1b89d.png
                </picUrl>
            </properties>
        </developer>
        <developer>
            <id>mtf90</id>
            <name><NAME></name>
            <email><EMAIL></email>
            <organization>TU Dortmund, Chair for Programming Systems</organization>
            <organizationUrl>http://ls5-www.cs.tu-dortmund.de/</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
    </developers>

    <!--
    =============================== SCM =======================
    -->
    <scm>
        <connection>scm:git:git@github.com:learnlib/automatalib.git</connection>
        <developerConnection>scm:git:git@github.com:learnlib/automatalib.git</developerConnection>
        <url>https://github.com/learnlib/automatalib/tree/develop</url>
        <tag>HEAD</tag>
    </scm>

    <!--
    ================================= SONATYPE PARENT ==============================
    -->
    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>9</version>
    </parent>

    <!--
    ================================= MODULES ===================================
    -->
    <modules>
        <module>api</module>
        <module>build-tools</module>
        <module>core</module>
        <module>util</module>
        <module>commons</module>
        <module>misc</module>
        <module>adapters</module>
        <module>examples</module>
        <module>visualization</module>
        <module>serialization</module>
        <module>archetypes</module>
        <module>distribution</module>
    </modules>

    <!--
    ================================= PROPERTIES ================================
    -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!--
            dependency versions
        -->
        <testng.version>6.11</testng.version>
        <javadoc-plugin.version>2.10.4</javadoc-plugin.version>
        <compiler-plugin.version>3.6.1</compiler-plugin.version>
        <dependency-plugin.version>3.0.1</dependency-plugin.version>
        <maven-archetype.version>3.0.1</maven-archetype.version>
        <release-plugin.version>2.5.3</release-plugin.version>
        <checkstyle-plugin.version>2.17</checkstyle-plugin.version>
        <checkstyle.version>8.1</checkstyle.version>
        <site-plugin.version>3.6</site-plugin.version>
        <reports-plugin.version>2.9</reports-plugin.version>
        <surefire-plugin.version>2.20</surefire-plugin.version>
        <assembly-plugin.version>3.0.0</assembly-plugin.version>
        <exec-plugin.version>1.6.0</exec-plugin.version>
        <deploy-plugin.version>2.8.2</deploy-plugin.version>
        <javacc-plugin.version>2.6</javacc-plugin.version>
        <deploy-site-github.exec>deploy-site-github</deploy-site-github.exec>

        <brics-automaton.version>1.11-8</brics-automaton.version>

        <guava.version>22.0</guava.version>
        <findbugs.version>3.0.2</findbugs.version>
        <jacoco.version>0.7.9</jacoco.version>
        <coveralls.version>4.3.0</coveralls.version>

        <jung.version>2.1.1</jung.version>

        <duzzt.version>0.0.2</duzzt.version>
        <metainf-services.version>1.7</metainf-services.version>

        <slf4j.version>1.7.25</slf4j.version>

        <!-- Javadoc links -->
        <brics-automaton.apidocs>http://www.brics.dk/automaton/doc</brics-automaton.apidocs>
        <java8.apidocs>http://docs.oracle.com/javase/8/docs/api/</java8.apidocs>
        <guava.apidocs>http://docs.guava-libraries.googlecode.com/git-history/v${guava.version}/javadoc/</guava.apidocs>
        <jung.apidocs>http://jung.sourceforge.net/doc/api/</jung.apidocs>
    </properties>

    <!--
    ================================= BUILD PLUGINS =============================
    -->
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${dependency-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${compiler-plugin.version}</version>
                    <configuration>
                        <fork>true</fork>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${deploy-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${checkstyle-plugin.version}</version>
                    <configuration>
                        <!-- use explicit paths instead of build-tools dependency, to prevent race conditions when
                             using checkstyle _during_ the build process -->
                        <configLocation>build-tools/src/main/resources/automatalib-learnlib-checkstyle.xml</configLocation>
                        <headerLocation>build-tools/src/main/resources/license-header-java.txt</headerLocation>
                        <suppressionsLocation>build-tools/src/main/resources/automatalib-checkstyle-suppressions.xml</suppressionsLocation>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        <linkXRef>false</linkXRef>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${checkstyle.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${site-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>attach-descriptor</id>
                            <goals>
                                <goal>attach-descriptor</goal>
                            </goals>
                        </execution>
                        <!-- Skip site creation; this will be done by deploy-site-github -->
                        <execution>
                            <id>default-site</id>
                            <phase>site</phase>
                            <configuration>
                                <skip>true</skip>
                            </configuration>
                        </execution>
                    </executions>
                    <configuration>
                        <skipDeploy>true</skipDeploy>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${exec-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire-plugin.version}</version>
                    <configuration>
                        <enableAssertions>true</enableAssertions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>javacc-maven-plugin</artifactId>
                    <version>${javacc-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>javacc</id>
                            <goals>
                                <goal>javacc</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.version}</version>
                    <executions>
                        <execution>
                            <id>prepare-report</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>report</id>
                            <phase>test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                        <!-- re-generate over previous reports, to have unified UTs and ITs -->
                        <execution>
                            <id>report-integration</id>
                            <phase>integration-test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${assembly-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${release-plugin.version}</version>
                    <configuration>
                        <arguments>-Psonatype-oss-release -Dautomatalib.release=true -Dmaven.javadoc.failOnError=false
                        </arguments>
                        <!-- False to allow adjustment to branching model -->
                        <pushChanges>false</pushChanges>
                        <!-- Automatically use the parent version for all submodules, do not prompt for each one -->
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <!-- Perform an install into the local repository, otherwise the javadoc plugin and archetype integration tests will fail -->
                        <preparationGoals>clean install</preparationGoals>
                        <tagNameFormat>automatalib-@{version}</tagNameFormat>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${javadoc-plugin.version}</version>
                    <configuration>
                        <quiet>false</quiet>
                        <source>1.8</source>
                        <verbose>true</verbose>
                        <detectLinks>true</detectLinks>
                        <linksource>false</linksource>
                        <failOnError>false</failOnError>
                        <links>
                            <link>${java8.apidocs}</link>
                            <link>${guava.apidocs}</link>
                            <link>${brics-automaton.apidocs}</link>
                            <link>${jung.apidocs}</link>
                        </links>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.eluder.coveralls</groupId>
                    <artifactId>coveralls-maven-plugin</artifactId>
                    <version>${coveralls.version}</version>
                    <configuration>
                        <sourceDirectories>
                            <!-- TODO: find a more easy-to-maintain solution -->
                            <sourceDirectory>${basedir}/serialization/taf/target/generated-sources</sourceDirectory>
                            <sourceDirectory>${basedir}/util/target/generated-sources</sourceDirectory>
                        </sourceDirectories>
                        <scanForSources>true</scanForSources>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <executions>
                    <!-- Deploy site @ GitHub pages -->
                    <!--
                        Note: In order to be able to deploy the Maven site,
                        you need the script deploy-site-github to reside
                        in your PATH, or manually specify the path to the
                        executable script using the "deploy-site-github.exec"
                        property.
                        You can download the shell script from this URL:
                        https://raw.github.com/misberner/shell-scripts/master/maven/deploy-site-github.sh
                    -->
                    <execution>
                        <id>deploy-site-github</id>
                        <inherited>false</inherited>
                        <phase>site-deploy</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                            <executable>${deploy-site-github.exec}</executable>
                            <workingDirectory>${project.basedir}</workingDirectory>
                            <arguments>
                                <argument>-p</argument> <!-- Purge contents before copying -->
                                <argument>-P/maven-site</argument>
                                <argument>-V</argument>
                                <argument>-l</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <!--
    ================================= REPORTING PLUGINS ==============================
    -->
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${reports-plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>index</report>
                            <report>license</report>
                            <report>project-team</report>
                            <report>mailing-list</report>
                            <report>issue-tracking</report>
                            <report>scm</report>
                            <report>dependencies</report>
                            <report>dependency-info</report>
                            <report>modules</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${javadoc-plugin.version}</version>
                <configuration>
                    <quiet>false</quiet>
                    <source>1.8</source>
                    <verbose>true</verbose>
                    <detectLinks>true</detectLinks>
                    <linksource>false</linksource>
                    <failOnError>false</failOnError>
                    <links>
                        <link>${java8.apidocs}</link>
                        <link>${guava.apidocs}</link>
                        <link>${brics-automaton.apidocs}</link>
                        <link>${jung.apidocs}</link>
                    </links>
                </configuration>
                <reportSets>
                    <reportSet>
                        <id>non-aggregate</id>
                        <reports>
                            <report>javadoc</report>
                        </reports>
                    </reportSet>
                    <reportSet>
                        <id>aggregate</id>
                        <inherited>false</inherited>
                        <reports>
                            <report>aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>


    <!--
    =============================== PROFILES =======================
     -->
    <profiles>
        <profile>
            <id>integration-tests</id>
            <activation>
                <property>
                    <name>automatalib.release</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <version>${checkstyle-plugin.version}</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>${dependency-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>analyze</id>
                                <!-- default phase is verify -->
                                <goals>
                                    <goal>analyze-only</goal>
                                </goals>
                                <configuration>
                                    <failOnWarning>true</failOnWarning>
                                    <!-- workaround our default slf4j-nop dependency -->
                                    <ignoreNonCompile>true</ignoreNonCompile>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>code-coverage</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>${jacoco.version}</version>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>netbeans-private-testng</id>
            <activation>
                <property>
                    <name>netbeans.testng.action</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>${surefire-plugin.version}</version>
                        <configuration>
                            <suiteXmlFiles>
                                <suiteXmlFile>target/nb-private/testng-suite.xml</suiteXmlFile>
                            </suiteXmlFiles>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>eclipse-m2e-configs</id>
            <activation>
                <property>
                    <!-- property is set by eclipse's m2e plugin -->
                    <name>m2e.version</name>
                </property>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <!-- This gets rid of the nasty "maven-enforcer-plugin will be ignored" warning by m2e -->
                        <plugin>
                            <groupId>org.eclipse.m2e</groupId>
                            <artifactId>lifecycle-mapping</artifactId>
                            <version>1.0.0</version>
                            <configuration>
                                <lifecycleMappingMetadata>
                                    <pluginExecutions>
                                        <pluginExecution>
                                            <pluginExecutionFilter>
                                                <groupId>org.apache.maven.plugins</groupId>
                                                <artifactId>maven-enforcer-plugin</artifactId>
                                                <versionRange>[1.0.0,)</versionRange>
                                                <goals>
                                                    <goal>enforce</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <ignore/>
                                            </action>
                                        </pluginExecution>
                                        <pluginExecution>
                                            <pluginExecutionFilter>
                                                <groupId>org.codehaus.mojo</groupId>
                                                <artifactId>javacc-maven-plugin</artifactId>
                                                <versionRange>${javacc-plugin.version}</versionRange>
                                                <goals>
                                                    <goal>javacc</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <execute>
                                                    <runOnIncremental>true</runOnIncremental>
                                                </execute>
                                            </action>
                                        </pluginExecution>
                                    </pluginExecutions>
                                </lifecycleMappingMetadata>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>binary-release</id>
            <activation>
                <property>
                    <name>automatalib.release</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <!--  aggregate javadoc of modules in one jar -->
                    <!-- Moved to distribution -->
                    <!--
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>aggregate</id>
                                <inherited>false</inherited>
                                <goals>
                                    <goal>aggregate-jar</goal>
                                </goals>
                                <phase>prepare-package</phase>
                            </execution>
                        </executions>
                    </plugin>
                -->
                </plugins>
            </build>
        </profile>
    </profiles>

    <!--
    =============================== DEFAULT DEP. VERSIONS =======================
    -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-build-tools</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-incremental</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-misc-algorithms</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-brics</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-commons-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-commons-smartcollections</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-commons-dotutil</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-jung-visualizer</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-saf</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-learnlibv2</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-taf</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>dk.brics.automaton</groupId>
                <artifactId>automaton</artifactId>
                <version>${brics-automaton.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>${findbugs.version}</version>
                <!-- <scope>provided</scope> -->
            </dependency>

            <!-- JUNG dependencies -->
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-api</artifactId>
                <version>${jung.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-algorithms</artifactId>
                <version>${jung.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-graph-impl</artifactId>
                <version>${jung.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-visualization</artifactId>
                <version>${jung.version}</version><commit_msg>add definition for findbugs plugin<commit_after><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2013-2014 <NAME>
This file is part of AutomataLib, http://www.automatalib.net/.

Licensed 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.
-->
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         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>

    <!-- ================================= PROJECT INFO ============================== -->
    <groupId>net.automatalib</groupId>
    <artifactId>automata-parent</artifactId>
    <version>0.6.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>AutomataLib</name>
    <description>
        A fully generic library for automata, graphs, and models, written in Java.
        This is the parent artifact which does not have any source code. Please refer to the
        "modules" page for more detailed documentation on the single library artifacts.
    </description>
    <url>http://learnlib.github.io/automatalib/maven-site/${project.version}</url>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>

    <issueManagement>
        <url>https://github.com/learnlib/automatalib/issues</url>
        <system>GitHub Issues</system>
    </issueManagement>

    <developers>
        <developer>
            <id>misberner</id>
            <name><NAME></name>
            <email><EMAIL></email>
            <organization>TU Dortmund, Chair for Programming Systems</organization>
            <organizationUrl>http://ls5-www.cs.tu-dortmund.de/</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
            <properties>
                <picUrl>
                    http://www.gravatar.com/avatar/c44dc4164f1a9a597ec0c24425d1b89d.png
                </picUrl>
            </properties>
        </developer>
        <developer>
            <id>mtf90</id>
            <name><NAME></name>
            <email><EMAIL></email>
            <organization>TU Dortmund, Chair for Programming Systems</organization>
            <organizationUrl>http://ls5-www.cs.tu-dortmund.de/</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
    </developers>

    <!--
    =============================== SCM =======================
    -->
    <scm>
        <connection>scm:git:git@github.com:learnlib/automatalib.git</connection>
        <developerConnection>scm:git:git@github.com:learnlib/automatalib.git</developerConnection>
        <url>https://github.com/learnlib/automatalib/tree/develop</url>
        <tag>HEAD</tag>
    </scm>

    <!--
    ================================= SONATYPE PARENT ==============================
    -->
    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>9</version>
    </parent>

    <!--
    ================================= MODULES ===================================
    -->
    <modules>
        <module>api</module>
        <module>build-tools</module>
        <module>core</module>
        <module>util</module>
        <module>commons</module>
        <module>misc</module>
        <module>adapters</module>
        <module>examples</module>
        <module>visualization</module>
        <module>serialization</module>
        <module>archetypes</module>
        <module>distribution</module>
    </modules>

    <!--
    ================================= PROPERTIES ================================
    -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!--
            dependency versions
        -->
        <testng.version>6.11</testng.version>
        <javadoc-plugin.version>2.10.4</javadoc-plugin.version>
        <compiler-plugin.version>3.6.1</compiler-plugin.version>
        <dependency-plugin.version>3.0.1</dependency-plugin.version>
        <maven-archetype.version>3.0.1</maven-archetype.version>
        <release-plugin.version>2.5.3</release-plugin.version>
        <checkstyle-plugin.version>2.17</checkstyle-plugin.version>
        <checkstyle.version>8.1</checkstyle.version>
        <site-plugin.version>3.6</site-plugin.version>
        <reports-plugin.version>2.9</reports-plugin.version>
        <surefire-plugin.version>2.20</surefire-plugin.version>
        <assembly-plugin.version>3.0.0</assembly-plugin.version>
        <exec-plugin.version>1.6.0</exec-plugin.version>
        <deploy-plugin.version>2.8.2</deploy-plugin.version>
        <javacc-plugin.version>2.6</javacc-plugin.version>
        <deploy-site-github.exec>deploy-site-github</deploy-site-github.exec>

        <brics-automaton.version>1.11-8</brics-automaton.version>

        <guava.version>22.0</guava.version>
        <findbugs-annotations.version>3.0.2</findbugs-annotations.version>
        <findbugs-plugin.version>3.0.5</findbugs-plugin.version>
        <jacoco.version>0.7.9</jacoco.version>
        <coveralls.version>4.3.0</coveralls.version>

        <jung.version>2.1.1</jung.version>

        <duzzt.version>0.0.2</duzzt.version>
        <metainf-services.version>1.7</metainf-services.version>

        <slf4j.version>1.7.25</slf4j.version>

        <!-- Javadoc links -->
        <brics-automaton.apidocs>http://www.brics.dk/automaton/doc</brics-automaton.apidocs>
        <java8.apidocs>http://docs.oracle.com/javase/8/docs/api/</java8.apidocs>
        <guava.apidocs>http://docs.guava-libraries.googlecode.com/git-history/v${guava.version}/javadoc/</guava.apidocs>
        <jung.apidocs>http://jung.sourceforge.net/doc/api/</jung.apidocs>
    </properties>

    <!--
    ================================= BUILD PLUGINS =============================
    -->
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${dependency-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${compiler-plugin.version}</version>
                    <configuration>
                        <fork>true</fork>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${deploy-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${checkstyle-plugin.version}</version>
                    <configuration>
                        <!-- use explicit paths instead of build-tools dependency, to prevent race conditions when
                             using checkstyle _during_ the build process -->
                        <configLocation>build-tools/src/main/resources/automatalib-learnlib-checkstyle.xml</configLocation>
                        <headerLocation>build-tools/src/main/resources/license-header-java.txt</headerLocation>
                        <suppressionsLocation>build-tools/src/main/resources/automatalib-checkstyle-suppressions.xml</suppressionsLocation>
                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                        <linkXRef>false</linkXRef>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${checkstyle.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>findbugs-maven-plugin</artifactId>
                    <version>${findbugs-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${site-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>attach-descriptor</id>
                            <goals>
                                <goal>attach-descriptor</goal>
                            </goals>
                        </execution>
                        <!-- Skip site creation; this will be done by deploy-site-github -->
                        <execution>
                            <id>default-site</id>
                            <phase>site</phase>
                            <configuration>
                                <skip>true</skip>
                            </configuration>
                        </execution>
                    </executions>
                    <configuration>
                        <skipDeploy>true</skipDeploy>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>${exec-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire-plugin.version}</version>
                    <configuration>
                        <enableAssertions>true</enableAssertions>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>javacc-maven-plugin</artifactId>
                    <version>${javacc-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>javacc</id>
                            <goals>
                                <goal>javacc</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco.version}</version>
                    <executions>
                        <execution>
                            <id>prepare-report</id>
                            <goals>
                                <goal>prepare-agent</goal>
                            </goals>
                        </execution>
                        <execution>
                            <id>report</id>
                            <phase>test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                        <!-- re-generate over previous reports, to have unified UTs and ITs -->
                        <execution>
                            <id>report-integration</id>
                            <phase>integration-test</phase>
                            <goals>
                                <goal>report</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${assembly-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${release-plugin.version}</version>
                    <configuration>
                        <arguments>-Psonatype-oss-release -Dautomatalib.release=true -Dmaven.javadoc.failOnError=false
                        </arguments>
                        <!-- False to allow adjustment to branching model -->
                        <pushChanges>false</pushChanges>
                        <!-- Automatically use the parent version for all submodules, do not prompt for each one -->
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <!-- Perform an install into the local repository, otherwise the javadoc plugin and archetype integration tests will fail -->
                        <preparationGoals>clean install</preparationGoals>
                        <tagNameFormat>automatalib-@{version}</tagNameFormat>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${javadoc-plugin.version}</version>
                    <configuration>
                        <quiet>false</quiet>
                        <source>1.8</source>
                        <verbose>true</verbose>
                        <detectLinks>true</detectLinks>
                        <linksource>false</linksource>
                        <failOnError>false</failOnError>
                        <links>
                            <link>${java8.apidocs}</link>
                            <link>${guava.apidocs}</link>
                            <link>${brics-automaton.apidocs}</link>
                            <link>${jung.apidocs}</link>
                        </links>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.eluder.coveralls</groupId>
                    <artifactId>coveralls-maven-plugin</artifactId>
                    <version>${coveralls.version}</version>
                    <configuration>
                        <sourceDirectories>
                            <!-- TODO: find a more easy-to-maintain solution -->
                            <sourceDirectory>${basedir}/serialization/taf/target/generated-sources</sourceDirectory>
                            <sourceDirectory>${basedir}/util/target/generated-sources</sourceDirectory>
                        </sourceDirectories>
                        <scanForSources>true</scanForSources>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <executions>
                    <!-- Deploy site @ GitHub pages -->
                    <!--
                        Note: In order to be able to deploy the Maven site,
                        you need the script deploy-site-github to reside
                        in your PATH, or manually specify the path to the
                        executable script using the "deploy-site-github.exec"
                        property.
                        You can download the shell script from this URL:
                        https://raw.github.com/misberner/shell-scripts/master/maven/deploy-site-github.sh
                    -->
                    <execution>
                        <id>deploy-site-github</id>
                        <inherited>false</inherited>
                        <phase>site-deploy</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                            <executable>${deploy-site-github.exec}</executable>
                            <workingDirectory>${project.basedir}</workingDirectory>
                            <arguments>
                                <argument>-p</argument> <!-- Purge contents before copying -->
                                <argument>-P/maven-site</argument>
                                <argument>-V</argument>
                                <argument>-l</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <!--
    ================================= REPORTING PLUGINS ==============================
    -->
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${reports-plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>index</report>
                            <report>license</report>
                            <report>project-team</report>
                            <report>mailing-list</report>
                            <report>issue-tracking</report>
                            <report>scm</report>
                            <report>dependencies</report>
                            <report>dependency-info</report>
                            <report>modules</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${javadoc-plugin.version}</version>
                <configuration>
                    <quiet>false</quiet>
                    <source>1.8</source>
                    <verbose>true</verbose>
                    <detectLinks>true</detectLinks>
                    <linksource>false</linksource>
                    <failOnError>false</failOnError>
                    <links>
                        <link>${java8.apidocs}</link>
                        <link>${guava.apidocs}</link>
                        <link>${brics-automaton.apidocs}</link>
                        <link>${jung.apidocs}</link>
                    </links>
                </configuration>
                <reportSets>
                    <reportSet>
                        <id>non-aggregate</id>
                        <reports>
                            <report>javadoc</report>
                        </reports>
                    </reportSet>
                    <reportSet>
                        <id>aggregate</id>
                        <inherited>false</inherited>
                        <reports>
                            <report>aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>


    <!--
    =============================== PROFILES =======================
     -->
    <profiles>
        <profile>
            <id>integration-tests</id>
            <activation>
                <property>
                    <name>automatalib.release</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <version>${checkstyle-plugin.version}</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-dependency-plugin</artifactId>
                        <version>${dependency-plugin.version}</version>
                        <executions>
                            <execution>
                                <id>analyze</id>
                                <!-- default phase is verify -->
                                <goals>
                                    <goal>analyze-only</goal>
                                </goals>
                                <configuration>
                                    <failOnWarning>true</failOnWarning>
                                    <!-- workaround our default slf4j-nop dependency -->
                                    <ignoreNonCompile>true</ignoreNonCompile>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>code-coverage</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <version>${jacoco.version}</version>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>netbeans-private-testng</id>
            <activation>
                <property>
                    <name>netbeans.testng.action</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>${surefire-plugin.version}</version>
                        <configuration>
                            <suiteXmlFiles>
                                <suiteXmlFile>target/nb-private/testng-suite.xml</suiteXmlFile>
                            </suiteXmlFiles>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>eclipse-m2e-configs</id>
            <activation>
                <property>
                    <!-- property is set by eclipse's m2e plugin -->
                    <name>m2e.version</name>
                </property>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <!-- This gets rid of the nasty "maven-enforcer-plugin will be ignored" warning by m2e -->
                        <plugin>
                            <groupId>org.eclipse.m2e</groupId>
                            <artifactId>lifecycle-mapping</artifactId>
                            <version>1.0.0</version>
                            <configuration>
                                <lifecycleMappingMetadata>
                                    <pluginExecutions>
                                        <pluginExecution>
                                            <pluginExecutionFilter>
                                                <groupId>org.apache.maven.plugins</groupId>
                                                <artifactId>maven-enforcer-plugin</artifactId>
                                                <versionRange>[1.0.0,)</versionRange>
                                                <goals>
                                                    <goal>enforce</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <ignore/>
                                            </action>
                                        </pluginExecution>
                                        <pluginExecution>
                                            <pluginExecutionFilter>
                                                <groupId>org.codehaus.mojo</groupId>
                                                <artifactId>javacc-maven-plugin</artifactId>
                                                <versionRange>${javacc-plugin.version}</versionRange>
                                                <goals>
                                                    <goal>javacc</goal>
                                                </goals>
                                            </pluginExecutionFilter>
                                            <action>
                                                <execute>
                                                    <runOnIncremental>true</runOnIncremental>
                                                </execute>
                                            </action>
                                        </pluginExecution>
                                    </pluginExecutions>
                                </lifecycleMappingMetadata>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>binary-release</id>
            <activation>
                <property>
                    <name>automatalib.release</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <!--  aggregate javadoc of modules in one jar -->
                    <!-- Moved to distribution -->
                    <!--
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>aggregate</id>
                                <inherited>false</inherited>
                                <goals>
                                    <goal>aggregate-jar</goal>
                                </goals>
                                <phase>prepare-package</phase>
                            </execution>
                        </executions>
                    </plugin>
                -->
                </plugins>
            </build>
        </profile>
    </profiles>

    <!--
    =============================== DEFAULT DEP. VERSIONS =======================
    -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-build-tools</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-incremental</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-misc-algorithms</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-brics</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-commons-util</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-commons-smartcollections</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-commons-dotutil</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-jung-visualizer</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-saf</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-learnlibv2</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>net.automatalib</groupId>
                <artifactId>automata-serialization-taf</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>dk.brics.automaton</groupId>
                <artifactId>automaton</artifactId>
                <version>${brics-automaton.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>jsr305</artifactId>
                <version>${findbugs-annotations.version}</version>
                <!-- <scope>provided</scope> -->
            </dependency>

            <!-- JUNG dependencies -->
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-api</artifactId>
                <version>${jung.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-algorithms</artifactId>
                <version>${jung.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-graph-impl</artifactId>
                <version>${jung.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.jung</groupId>
                <artifactId>jung-visualization</artifactId>
                <version>${jung.version}</version>
{'fraction_non_alphanumeric': 0.1255155073819124, 'fraction_numerical': 0.005166572125040244, 'mean_word_length': 1.1548016253179612, 'pattern_counts': {'":': 0, '<': 1973, '<?xml version=': 2, '>': 1973, 'https://': 6, 'lorem ipsum': 0, 'www.': 16, 'xml': 12}, 'pii_count': 4, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 128, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3444092', 'n_tokens_mistral': 16489, 'n_tokens_neox': 14311, 'n_words': 1959}