<?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.
-->
<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>
    <type>org.exoplatform.commons.persistence.impl.EntityManagerService</type>
  </component>

  <component>
    <type>io.meeds.common.persistence.HibernateStatisticsService</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.dao.PageDAO</key>
    <type>org.exoplatform.portal.mop.dao.PageDAOImpl</type>
  </component> 
  <component>
    <key>org.exoplatform.portal.mop.dao.ContainerDAO</key>
    <type>org.exoplatform.portal.mop.dao.ContainerDAOImpl</type>
  </component>
  <component>
    <key>org.exoplatform.portal.mop.dao.WindowDAO</key>
    <type>org.exoplatform.portal.mop.dao.WindowDAOImpl</type>
  </component>
  <component>
    <key>org.exoplatform.portal.mop.dao.NodeDAO</key>
    <type>org.exoplatform.portal.mop.dao.NodeDAOImpl</type>
  </component>
  <component>
    <key>org.exoplatform.portal.mop.dao.NavigationDAO</key>
    <type>org.exoplatform.portal.mop.dao.NavigationDAOImpl</type>
  </component>
  <component>
    <key>org.exoplatform.portal.mop.dao.PermissionDAO</key>
    <type>org.exoplatform.portal.mop.dao.PermissionDAOImpl</type>
  </component>
  <component>
    <key>org.exoplatform.portal.mop.dao.DescriptionDAO</key>
    <type>org.exoplatform.portal.mop.dao.DescriptionDAOImpl</type>
  </component>
  <component>
    <key>org.exoplatform.portal.mop.dao.SiteDAO</key>
    <type>org.exoplatform.portal.mop.dao.SiteDAOImpl</type>
  </component>
  <component>
    <type>org.exoplatform.settings.jpa.dao.SettingContextDAO</type>
  </component>
  <component>
    <type>org.exoplatform.settings.jpa.dao.SettingScopeDAO</type>
  </component>
  <component>
    <type>org.exoplatform.settings.jpa.dao.SettingsDAO</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.storage.SiteStorage</key>
    <type>org.exoplatform.portal.mop.storage.cache.CacheSiteStorage</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.storage.NavigationStorage</key>
    <type>org.exoplatform.portal.mop.storage.cache.CacheNavigationStorage</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.storage.PageStorage</key>
    <type>org.exoplatform.portal.mop.storage.cache.CachePageStorage</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.storage.DescriptionStorage</key>
    <type>org.exoplatform.portal.mop.storage.cache.CacheDescriptionStorage</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.storage.LayoutStorage</key>
    <type>org.exoplatform.portal.mop.storage.cache.CacheLayoutStorage</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.service.LayoutService</key>
    <type>org.exoplatform.portal.mop.service.LayoutServiceImpl</type>
    <init-params>
      <value-param>
        <name>site.default.banner.path</name>
        <value>${site.defaultBanner.path:/images/sites/banner/defaultSiteBanner.png}</value>
      </value-param>
    </init-params>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.service.NavigationService</key>
    <type>org.exoplatform.portal.mop.service.NavigationServiceImpl</type>
  </component>

  <component>
    <key>org.exoplatform.portal.mop.service.DescriptionService</key>
    <type>org.exoplatform.portal.mop.service.DescriptionServiceImpl</type>
  </component>

  <external-component-plugins>
    <target-component>org.exoplatform.commons.file.services.NameSpaceService</target-component>
    <component-plugin>
      <name>SitesNameSpacePlugin</name>
      <set-method>addNameSpacePlugin</set-method>
      <type>org.exoplatform.commons.file.services.NameSpacePlugin</type>
      <init-params>
        <properties-param>
          <name>fileNameSpace.params</name>
          <property name="name" value="sites" />
          <property name="description" value="sites banners" />
        </properties-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>
</configuration>
