<?xml version="1.0" encoding="UTF-8"?>
<!--
 This file is part of the Meeds project (https://meeds.io/).

 Copyright (C) 2020 - 2025 Meeds Association contact@meeds.io

 This program is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 3 of the License, or (at your option) any later version.
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 Lesser General Public License for more details.

 You should have received a copy of the GNU Lesser General Public License
 along with this program; if not, write to the Free Software Foundation,
 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-->
<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/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
      <groupId>io.meeds.kernel</groupId>
      <artifactId>kernel-parent</artifactId>
      <version>7.2.0-exo-20251207</version>
   </parent>
   <artifactId>exo.kernel.container.mt</artifactId>
   <name>Meeds:: PLF:: Kernel :: Container Multi-Threaded</name>
   <description>Implementation of Container Multi-Threaded for Exoplatform SAS 'eXo Kernel' project.</description>
   <properties>
      <exo.test.coverage.ratio>0.8</exo.test.coverage.ratio>
   </properties>
   <dependencies>
      <dependency>
         <groupId>io.meeds.kernel</groupId>
         <artifactId>exo.kernel.container</artifactId>
      </dependency>
      <dependency>
         <groupId>io.meeds.kernel</groupId>
         <artifactId>exo.kernel.container</artifactId>
         <classifier>tests</classifier>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>javax.inject</groupId>
         <artifactId>javax.inject-tck</artifactId>
         <version>1</version>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>io.meeds.kernel</groupId>
         <artifactId>exo.kernel.commons.test</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.javassist</groupId>
         <artifactId>javassist</artifactId>
         <scope>provided</scope>
      </dependency>
   </dependencies>
   <build>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
               <execution>
                  <id>unpack</id>
                  <phase>generate-test-sources</phase>
                  <goals>
                     <goal>unpack</goal>
                  </goals>
                  <configuration>
                     <artifactItems>
                        <artifactItem>
                           <groupId>io.meeds.kernel</groupId>
                           <artifactId>exo.kernel.container</artifactId>
                           <classifier>test-sources</classifier>
                           <type>jar</type>
                           <overWrite>false</overWrite>
                        </artifactItem>
                     </artifactItems>
                     <excludes>**/TestContainer.java</excludes>
                     <outputDirectory>${project.build.directory}/kernel-container-tests</outputDirectory>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
               <execution>
                  <id>add-test-resource</id>
                  <phase>generate-test-sources</phase>
                  <goals>
                     <goal>add-test-resource</goal>
                  </goals>
                  <configuration>
                     <resources>
                        <resource>
                           <directory>${project.build.directory}/kernel-container-tests</directory>
                           <excludes>
                              <exclude>**/TestContainer.java</exclude>
                           </excludes>
                        </resource>
                     </resources>
                  </configuration>
               </execution> 
               <execution>
                  <id>add-test-source</id>
                  <phase>generate-test-sources</phase>
                  <goals>
                     <goal>add-test-source</goal>
                  </goals>
                  <configuration>
                     <sources>
                        <source>${project.build.directory}/kernel-container-tests</source>
                     </sources>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
               <execution>
                  <id>prepare-test-policy</id>
                  <phase>process-test-resources</phase>
                  <configuration>
                     <target>
                        <echo>Creating Access Policy for tests</echo>
                        <makeurl file="${settings.localRepository}" property="localRepositoryURL" />
                        <makeurl file="${project.build.outputDirectory}" property="outputDirectoryURL" />
                        <makeurl file="${project.build.testOutputDirectory}" property="testOutputDirectoryURL" />
                        <copy todir="${project.build.testOutputDirectory}" overwrite="true">
                           <fileset dir="${project.basedir}/src/test/resources/">
                              <include name="test.policy" />
                           </fileset>
                           <filterset>
                              <filter token="MAVEN_REPO" value="${localRepositoryURL}" />
                              <filter token="MAIN_CLASSES" value="${outputDirectoryURL}" />
                              <filter token="TEST_CLASSES" value="${testOutputDirectoryURL}" />
                           </filterset>
                        </copy>
                     </target>
                  </configuration>
                  <goals>
                     <goal>run</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>
   <profiles>
      <profile>
         <id>debug</id>
         <properties>
            <debug.opts>-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y</debug.opts>
         </properties>
      </profile>
   </profiles>
</project>
