<?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.web.application.ApplicationLifecycleExtension</type>
  </component>

  <component>
    <type>org.exoplatform.web.filter.ExtensibleFilter</type>
  </component>

  <component>
    <key>org.exoplatform.web.application.javascript.JavascriptConfigService</key>
    <type>org.exoplatform.web.application.javascript.JavascriptConfigService</type>
  </component>

  <component>
    <type>org.exoplatform.web.application.javascript.JavascriptConfigService</type>
  </component>

  <component>
    <key>org.exoplatform.services.resources.LocalePolicy</key>
    <type>org.exoplatform.portal.application.localization.DefaultLocalePolicyService</type>
    <init-params>
      <value-param>
        <name>useDefaultSiteLanguage</name>
        <value>${io.meeds.useDefaultSiteLanguage:false}</value>
      </value-param>
    </init-params>
  </component>

  <component>
    <key>org.exoplatform.portal.application.state.ContextualPropertyManager</key>
    <type>org.exoplatform.portal.application.state.ContextualPropertyManagerImpl</type>
    <component-plugins>
      <component-plugin>
        <name>PublicPropertiesPlugin</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.portal.application.state.PublicPropertiesPlugin</type>
        <init-params>
          <value-param>
            <name>namespaceURI</name>
            <description>Namespace URI</description>
            <value>http://www.gatein.org/xml/ns/prp_1_0</value>
          </value-param>
        </init-params>
      </component-plugin>
      <component-plugin>
        <name>InternalPropertiesPlugin</name>
        <set-method>addPlugin</set-method>
        <type>org.exoplatform.portal.application.state.InternalPropertiesPlugin</type>
        <init-params>
          <value-param>
            <name>namespaceURI</name>
            <description>Namespace URI</description>
            <value>http://www.gatein.org/xml/ns/internal_prp_1_0</value>
          </value-param>
        </init-params>
      </component-plugin>
    </component-plugins>
  </component>

  <component>
    <type>org.exoplatform.portal.mop.rest.NavigationRest</type>
  </component>

  <external-component-plugins>
    <target-component>org.exoplatform.web.filter.ExtensibleFilter</target-component>
    <component-plugin>
      <name>JSP filter Plugin</name>
      <set-method>addFilterDefinitions</set-method>
      <type>org.exoplatform.web.filter.FilterDefinitionPlugin</type>
      <init-params>
        <object-param>
          <name>JSP Filter</name>
          <object type="org.exoplatform.web.filter.FilterDefinition">
            <field name="filter">
              <object type="org.exoplatform.web.filter.RedefinableResourceFilter"/>
            </field>
            <field name="patterns">
              <collection type="java.util.ArrayList" item-type="java.lang.String">
                <value>
                  <string>.*/.*\.jsp</string>
                </value>
              </collection>
            </field>
          </object>
        </object-param>
      </init-params>
    </component-plugin>
  </external-component-plugins>

  <external-component-plugins>
    <target-component>org.exoplatform.web.application.ApplicationLifecycleExtension</target-component>
    <component-plugin>
      <name>LocalizationLifecycle</name>
      <set-method>addPortalApplicationLifecycle</set-method>
      <type>org.exoplatform.portal.application.localization.LocalizationLifecycle</type>
    </component-plugin>
  </external-component-plugins>

</configuration>
