<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  This file is part of the Meeds project (https://meeds.io/).
  Copyright (C) 2022 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.
-->
<configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd http://www.exoplatform.org/xml/ns/kernel_1_2.xsd"
               xmlns="http://www.exoplatform.org/xml/ns/kernel_1_2.xsd">

  <component>
    <key>org.exoplatform.task.dao.DAOHandler</key>
    <type>org.exoplatform.task.dao.jpa.DAOHandlerJPAImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.service.UserService</key>
    <type>org.exoplatform.task.service.impl.UserServiceImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.legacy.service.TaskParser</key>
    <type>org.exoplatform.task.service.impl.TaskParserImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.service.TaskService</key>
    <type>org.exoplatform.task.service.impl.TaskServiceImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.storage.TaskStorage</key>
    <type>org.exoplatform.task.storage.impl.TaskStorageImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.storage.LabelStorage</key>
    <type>org.exoplatform.task.storage.impl.LabelStorageImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.storage.CommentStorage</key>
    <type>org.exoplatform.task.storage.impl.CommentStorageImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.storage.ProjectStorage</key>
    <type>org.exoplatform.task.storage.impl.ProjectStorageImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.storage.StatusStorage</key>
    <type>org.exoplatform.task.storage.impl.StatusStorageImpl</type>
  </component>


  <component>
    <key>org.exoplatform.task.service.ProjectService</key>
    <type>org.exoplatform.task.service.impl.ProjectServiceImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.service.CommentService</key>
    <type>org.exoplatform.task.service.impl.CommentServiceImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.service.LabelService</key>
    <type>org.exoplatform.task.service.impl.LabelServiceImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.service.StatusService</key>
    <type>org.exoplatform.task.service.impl.StatusServiceImpl</type>
  </component>

  <component>
    <key>org.exoplatform.task.rest.TaskRestService</key>
    <type>org.exoplatform.task.rest.TaskRestService</type>
  </component>

  <component>
    <key>org.exoplatform.task.rest.ProjectRestService</key>
    <type>org.exoplatform.task.rest.ProjectRestService</type>
  </component>

  <component>
    <key>org.exoplatform.task.rest.StatusRestService</key>
    <type>org.exoplatform.task.rest.StatusRestService</type>
  </component>

  <component>
    <type>io.meeds.task.plugin.TaskPermanentLinkPlugin</type>
  </component>

  <external-component-plugins>
    <target-component>org.exoplatform.commons.api.persistence.DataInitializer</target-component>
    <component-plugin>
      <name>TaskManagementChangeLogsPlugin</name>
      <set-method>addChangeLogsPlugin</set-method>
      <type>org.exoplatform.commons.persistence.impl.ChangeLogsPlugin</type>
      <init-params>
        <values-param>
          <name>changelogs</name>
          <description>Change logs of task management</description>
          <value>db/changelog/task.db.changelog-1.0.0.xml</value>
          <value>db/changelog/task.db.changelog-1.1.0.xml</value>
          <value>db/changelog/task.db.changelog-1.3.0.xml</value>
          <value>db/changelog/task.db.changelog-2.1.0.xml</value>
          <value>db/changelog/task.db.changelog-3.0.0.xml</value>
          <value>db/changelog/task.db.changelog-3.1.0.xml</value>
          <value>db/changelog/task.db.changelog-3.2.0.xml</value>
        </values-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>

  <external-component-plugins>
    <target-component>io.meeds.gamification.service.EventService</target-component>
    <component-plugin>
      <name>task</name>
      <set-method>addPlugin</set-method>
      <type>org.exoplatform.task.plugin.TaskEventPlugin</type>
    </component-plugin>
  </external-component-plugins>

</configuration>
