<?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>

    <parent>
        <groupId>io.hexaglue</groupId>
        <artifactId>hexaglue-parent</artifactId>
        <version>6.0.0</version>
    </parent>

    <artifactId>hexaglue-core</artifactId>
    <packaging>jar</packaging>

    <name>HexaGlue Core</name>
    <description>Core analysis engine - builds graph model, classifies types, exports IR</description>

    <properties>
        <hexaglue.root>${project.basedir}/..</hexaglue.root>
    </properties>

    <dependencies>
        <!-- Internal -->
        <dependency>
            <groupId>io.hexaglue</groupId>
            <artifactId>hexaglue-spi</artifactId>
        </dependency>

        <!-- Spoon for Java source analysis -->
        <dependency>
            <groupId>fr.inria.gforge.spoon</groupId>
            <artifactId>spoon-core</artifactId>
        </dependency>

        <!-- YAML configuration (optional - only needed for YamlCriteriaProfile) -->
        <dependency>
            <groupId>org.yaml</groupId>
            <artifactId>snakeyaml</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>

        <!-- HexaGlue Arch (for v4 ArchitecturalModel support in DefaultPluginContext) -->
        <dependency>
            <groupId>io.hexaglue</groupId>
            <artifactId>hexaglue-arch</artifactId>
        </dependency>

        <!-- HexaGlue Syntax Spoon (for v4 SyntaxProvider + ArchitecturalModelBuilder) -->
        <dependency>
            <groupId>io.hexaglue</groupId>
            <artifactId>hexaglue-syntax-spoon</artifactId>
        </dependency>

        <!-- jMolecules DDD annotations (for testing criteria) -->
        <dependency>
            <groupId>org.jmolecules</groupId>
            <artifactId>jmolecules-ddd</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jmolecules</groupId>
            <artifactId>jmolecules-hexagonal-architecture</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- Test dependencies -->
        <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>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>
