<?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">
    <parent>
        <groupId>org.eclipse.xpanse</groupId>
        <artifactId>modules</artifactId>
        <version>1.0.25</version>
        <relativePath>../pom.xml</relativePath>
    </parent>
    <properties>
        <skipTerraformBootClientGeneration>true</skipTerraformBootClientGeneration>
        <skipTofuMakerClientGeneration>true</skipTofuMakerClientGeneration>
    </properties>

    <modelVersion>4.0.0</modelVersion>

    <groupId>org.eclipse.xpanse.modules</groupId>
    <artifactId>deployment</artifactId>

    <dependencies>
        <dependency>
            <groupId>org.eclipse.xpanse.modules</groupId>
            <artifactId>models</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- test -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.xpanse.modules</groupId>
            <artifactId>database</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.instancio</groupId>
            <artifactId>instancio-junit</artifactId>
            <version>${instancio.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.eclipse.xpanse.modules</groupId>
            <artifactId>orchestrator</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.xpanse.modules</groupId>
            <artifactId>credential</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.xpanse.modules</groupId>
            <artifactId>policy</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.xpanse.modules</groupId>
            <artifactId>async</artifactId>
            <version>${project.version}</version>
        </dependency>
      <dependency>
        <groupId>org.eclipse.xpanse.modules</groupId>
        <artifactId>workflow</artifactId>
        <version>${project.version}</version>
      </dependency>
        <dependency>
            <groupId>org.eclipse.jgit</groupId>
            <artifactId>org.eclipse.jgit</artifactId>
            <version>${jgit.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.xpanse.modules</groupId>
            <artifactId>common</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>
        <dependency>
            <groupId>org.awaitility</groupId>
            <artifactId>awaitility</artifactId>
            <version>${awaitility.version}</version>
        </dependency>
        <dependency>
            <groupId>org.semver4j</groupId>
            <artifactId>semver4j</artifactId>
            <version>${semver4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.kohsuke</groupId>
            <artifactId>github-api</artifactId>
            <version>${github-api.version}</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.openapitools</groupId>
                <artifactId>openapi-generator-maven-plugin</artifactId>
                <version>${openapi.generator.plugin.version}</version>
                <executions>
                    <execution>
                        <id>generate-terraformBoot-client</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputSpec>${project.basedir}/src/main/resources/terraform-boot-openapi.json</inputSpec>
                            <generatorName>java</generatorName>
                            <output>${project.basedir}</output>
                            <apiPackage>
                                org.eclipse.xpanse.modules.deployment.deployers.terraform.terraformboot.generated.api
                            </apiPackage>
                            <modelPackage>
                                org.eclipse.xpanse.modules.deployment.deployers.terraform.terraformboot.generated.model
                            </modelPackage>
                            <generateApiDocumentation>false</generateApiDocumentation>
                            <generateApiTests>false</generateApiTests>
                            <generateModelDocumentation>false</generateModelDocumentation>
                            <generateModelTests>false</generateModelTests>
                            <generateApiTests>false</generateApiTests>
                            <library>resttemplate</library>
                            <skip>${skipTerraformBootClientGeneration}</skip>
                            <supportingFilesToGenerate>
                                BaseApi.java,ApiClient.java,JavaTimeFormatter.java,RFC3339DateFormat.java,ServerConfiguration.java,ServerVariable.java,ApiKeyAuth.java,Authentication.java,HttpBasicAuth.java,HttpBearerAuth.java,OAuth.java
                            </supportingFilesToGenerate>
                            <configOptions>
                                <generateClientAsBean>true</generateClientAsBean>
                                <hideGenerationTimestamp>true</hideGenerationTimestamp>
                                <useJakartaEe>true</useJakartaEe>
                                <openApiNullable>false</openApiNullable>
                            </configOptions>
                        </configuration>
                        <phase>generate-sources</phase>
                        <inherited>false</inherited>
                    </execution>
                    <execution>
                        <id>generate-tofuMaker-client</id>
                        <goals>
                            <goal>generate</goal>
                        </goals>
                        <configuration>
                            <inputSpec>${project.basedir}/src/main/resources/tofu-maker-openapi.json</inputSpec>
                            <generatorName>java</generatorName>
                            <output>${project.basedir}</output>
                            <apiPackage>
                                org.eclipse.xpanse.modules.deployment.deployers.opentofu.tofumaker.generated.api
                            </apiPackage>
                            <modelPackage>
                                org.eclipse.xpanse.modules.deployment.deployers.opentofu.tofumaker.generated.model
                            </modelPackage>
                            <generateApiDocumentation>false</generateApiDocumentation>
                            <generateApiTests>false</generateApiTests>
                            <generateModelDocumentation>false</generateModelDocumentation>
                            <generateModelTests>false</generateModelTests>
                            <generateApiTests>false</generateApiTests>
                            <library>resttemplate</library>
                            <skip>${skipTofuMakerClientGeneration}</skip>
                            <supportingFilesToGenerate>
                                BaseApi.java,ApiClient.java,JavaTimeFormatter.java,RFC3339DateFormat.java,ServerConfiguration.java,ServerVariable.java,ApiKeyAuth.java,Authentication.java,HttpBasicAuth.java,HttpBearerAuth.java,OAuth.java
                            </supportingFilesToGenerate>
                            <configOptions>
                                <generateClientAsBean>true</generateClientAsBean>
                                <hideGenerationTimestamp>true</hideGenerationTimestamp>
                                <useJakartaEe>true</useJakartaEe>
                                <openApiNullable>false</openApiNullable>
                            </configOptions>
                        </configuration>
                        <phase>generate-sources</phase>
                        <inherited>false</inherited>
                    </execution>
                </executions>
            </plugin>
            <!-- Clean up unwanted generated files and directories -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>${maven.clean.plugin.version}</version>
                <executions>
                    <execution>
                        <id>clean-terraformBoot-generated-files</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                        <inherited>false</inherited>
                        <configuration>
                            <excludeDefaultDirectories>true</excludeDefaultDirectories>
                            <filesets>
                                <fileset>
                                    <directory>${project.basedir}</directory>
                                    <excludes>
                                        <exclude>**/src/**</exclude>
                                        <exclude>**/pom.xml</exclude>
                                    </excludes>
                                </fileset>
                            </filesets>
                            <skip>${skipTerraformBootClientGeneration}</skip>
                        </configuration>
                    </execution>
                    <execution>
                        <id>clean-tofuMaker-generated-files</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                        <inherited>false</inherited>
                        <configuration>
                            <excludeDefaultDirectories>true</excludeDefaultDirectories>
                            <filesets>
                                <fileset>
                                    <directory>${project.basedir}</directory>
                                    <excludes>
                                        <exclude>**/src/**</exclude>
                                        <exclude>**/pom.xml</exclude>
                                    </excludes>
                                </fileset>
                            </filesets>
                            <skip>${skipTofuMakerClientGeneration}</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
