<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>
    <parent>
        <groupId>io.mateu.workflow</groupId>
        <artifactId>eventconductor</artifactId>
        <version>2.37.0</version>
        <relativePath>../../pom.xml</relativePath>
    </parent>

    <artifactId>definition-analysis</artifactId>
    <packaging>jar</packaging>
    <name>definition-analysis</name>

    <!--
      Static analysis of a workflow definition's step graph, with no dependency beyond the JDK, so
      that the engine (on import) and the Maven plugin (at build time) run the very same code. Rules
      subtle enough to need a graph algorithm live here rather than being written twice: the
      plugin's hand-mirrored copy of the engine's invariants has already drifted once.
    -->
    <properties>
        <jacoco.line.minimum>0.96</jacoco.line.minimum>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!--
          CronExpression only, for ScheduleRules: a cron schedule is valid exactly when Spring's
          parser accepts it, because that is what the engine fires it with. Optional, so this module
          still brings nothing with it: both of its users (the engine and the Maven plugin) already
          have spring-context on their classpath.
        -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
