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

  <groupId>io.camunda.community</groupId>
  <artifactId>zeebe-cherry-runtime</artifactId>
  <version>3.0.4</version>

  <properties>
    <java.version>17</java.version>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <maven.compiler.source>${java.version}</maven.compiler.source>

    <!--Version-->
    <zeebe.version>8.2.0</zeebe.version>
    <zeebe-client.version>8.2.4</zeebe-client.version>
    <connector-core.version>0.9.0</connector-core.version>
    <connector-validation.version>0.9.0</connector-validation.version>

    <!-- Access file -->
    <filestorage.version>1.1.0</filestorage.version>

    <junit.jupiter.version>5.9.1</junit.jupiter.version>
    <opensagres.version>2.0.3</opensagres.version>
    <spring.boot.version>2.7.4</spring.boot.version>
  </properties>


  <!-- Push the library to Maven -->
  <!-- Visit https://github.com/camunda-community-hub/community-action-maven-release -->
  <parent>
    <groupId>org.camunda.community</groupId>
    <artifactId>community-hub-release-parent</artifactId>
    <version>1.4.2</version>
  </parent>


  <dependencyManagement>
    <dependencies>
      <dependency>
        <!-- Import dependency management from Spring Boot -->
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring.boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>io.camunda.spring</groupId>
      <artifactId>spring-boot-starter-camunda</artifactId>
      <version>${zeebe.version}</version>
    </dependency>
    <dependency>
      <groupId>io.camunda</groupId>
      <artifactId>zeebe-client-java</artifactId>
      <version>${zeebe-client.version}</version>
    </dependency>



    <!-- Accept Camunda Connector -->
    <dependency>
      <groupId>io.camunda.connector</groupId>
      <artifactId>connector-core</artifactId>
      <version>${connector-core.version}</version>
    </dependency>
    <dependency>
      <groupId>io.camunda.connector</groupId>
      <artifactId>connector-validation</artifactId>
      <version>${connector-validation.version}</version>
    </dependency>

    <!-- Access file -->
    <dependency>
      <groupId>io.camunda.filestorage</groupId>
      <artifactId>filestorage</artifactId>
      <version>${filestorage.version}</version>
    </dependency>


    <!-- JSON LocalDateTime -->
    <dependency>
      <groupId>com.fasterxml.jackson.datatype</groupId>
      <artifactId>jackson-datatype-jsr310</artifactId>
      <version>2.13.4</version>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.10</version>
    </dependency>

    <!-- Web -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <version>${spring.boot.version}</version>
    </dependency>
    <!-- JPA to save entity -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- Process the configuration file -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <optional>true</optional>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->

    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>2.1.214</version>
    </dependency>
    <dependency>
      <groupId>org.postgresql</groupId>
      <artifactId>postgresql</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.chemistry.opencmis</groupId>
      <artifactId>chemistry-opencmis-client-impl</artifactId>
      <version>1.1.0</version>
    </dependency>


    <!-- tests -->
    <dependency>
      <groupId>io.zeebe</groupId>
      <artifactId>zeebe-worker-java-testutils</artifactId>
      <version>8.1.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <version>${junit.jupiter.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>${junit.jupiter.version}</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <build>

    <plugins>
      <!-- connect the React application in the Springboot application -->
     <plugin>
       <groupId>com.github.eirslett</groupId>
       <artifactId>frontend-maven-plugin</artifactId>
       <version>1.12.1</version>
       <configuration>
         <workingDirectory>${project.basedir}/src/main/frontend</workingDirectory>
         <installDirectory>${project.basedir}/target</installDirectory>
       </configuration>
       <executions>
         <execution>
           <id>install node and npm</id>
           <phase>compile</phase>
           <goals>
             <goal>install-node-and-npm</goal>
           </goals>
           <configuration>
             <nodeVersion>v18.5.0</nodeVersion>
             <npmVersion>8.12.1</npmVersion>
           </configuration>
         </execution>
         <execution>
           <id>npm install</id>
           <phase>compile</phase>
           <goals>
             <goal>npm</goal>
           </goals>
           <configuration>
             <arguments>install</arguments>
           </configuration>
         </execution>
         <execution>
           <id>npm run build</id>
           <phase>compile</phase>
           <goals>
             <goal>npm</goal>
           </goals>
           <configuration>
             <arguments>run build</arguments>
           </configuration>
         </execution>
       </executions>
     </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>compile</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${basedir}/target/classes/static/</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/main/frontend/build/</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.22.2</version>
        <dependencies>
          <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-surefire-provider</artifactId>
            <version>1.3.2</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.10.1</version>
        <configuration>
          <source>17</source>
          <target>17</target>
        </configuration>
      </plugin>

      <!-- allow mvn spring-boot:run -->
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <version>3.0.6</version>
        <executions>
          <execution>
            <goals>
              <goal>repackage</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <classifier>exec</classifier>
        </configuration>
      </plugin>

    </plugins>
  </build>


  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>connectors</id>
      <name>Connectors Repository</name>
      <url>https://artifacts.camunda.com/artifactory/connectors/</url>
    </repository>

    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>connectors-snapshots</id>
      <name>Connectors Snapshot Repository</name>
      <url>https://artifacts.camunda.com/artifactory/connectors-snapshots/</url>
    </repository>

    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>camunda-community</id>
      <name>Camunda Community</name>
      <url>https://artifacts.camunda.com/artifactory/camunda-bpm-community-extensions/</url>
    </repository>
  </repositories>
</project>
