<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<!-- アプリケーション全体のBean定義 -->

<!-- ======================================== OSSパッチ定義 -->
  <!-- commons-JXPathのバグ(JXPATH-152)用パッチをアクティベート -->
  <bean id="jxpathPatchActivator" class="jp.terasoluna.fw.beans.jxpath.JXPATH152PatchActivator"/>

<!-- ======================================== リクエスト制御クラス定義 -->
  <!-- システム共通情報（コンテキスト）にアクセスするクラス -->
  <bean id="ctxSupport" 
        class="jp.terasoluna.fw.web.rich.context.support.DefaultRequestContextSupportImpl"/>

<!-- ======================================== 各種フィルタ定義 -->
  <!-- 禁止URIチェッカー -->
  <bean id="forbiddenURIChecker"
        class="jp.terasoluna.fw.web.rich.ForbiddenURICheckerImpl">
    <property name="allowedURISet">
      <set>
        <value>/secure/blogic.do</value>
        <value>/</value>
        <value>/index.html</value>
      </set>
    </property>
  </bean>
  
<!-- ======================================== リソースバンドル定義 -->
  <!-- プロパティファイル利用 -->
  <!-- 
    basenamesプロパティでメッセージプロパティファイルを設定する。
   -->  
  <bean id="messageSource" 
        class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames" value="application-messages, system-messages"/>
  </bean>

  <!-- DBメッセージ利用(第2メッセージリソースにプロパティファイル利用)設定例 -->
  <!--
    別途dataAccessContext-local.xmlにてDBMessageResourceDAOの設定が必要
  -->
  <!-- 
  <bean id="messageSource" 
        class="jp.terasoluna.fw.message.DataSourceMessageSource">
    <property name="parentMessageSource" ref="propertyMessageSource"/>
    <property name="dbMessageResourceDAO" ref="dbMessageResourceDAO"/>
    <property name="defaultLocale"  value="ja_JP"/>
  </bean>

  <bean id="propertyMessageSource" 
        class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames" value="application-messages, system-messages"/>
  </bean>
  -->

  <!-- プロパティファイル利用(第2メッセージリソースにDBメッセージ利用)設定例 -->
  <!--
    別途dataAccessContext-local.xmlにてDBMessageResourceDAOの設定が必要
  -->
  <!-- 
  <bean id="messageSource" 
        class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basenames" value="application-messages, system-messages"/>
    <property name="parentMessageSource" ref="dbMessageSource"/>
  </bean>

  <bean id="dbMessageSource" 
        class="jp.terasoluna.fw.message.DataSourceMessageSource">
    <property name="dbMessageResourceDAO" ref="dbMessageResourceDAO"/>
    <property name="defaultLocale"  value="ja_JP"/>
  </bean>
  -->
  
<!-- ======================================== 入力チェック定義 -->
  
  <!-- 入力チェッククラスを生成するファクトリ -->
  <bean id="validatorFactory" 
        class="jp.terasoluna.fw.validation.springmodules.DefaultValidatorFactoryEx"> 
    <property name="validationConfigLocations"> 
      <list> 
        <value>/WEB-INF/validation/validator-rules.xml</value>
        <value>/WEB-INF/validation/validator-rules-ex.xml</value>
        <value>/WEB-INF/validation/validation.xml</value> 
      </list> 
    </property> 
  </bean> 
    
  <!-- デフォルト入力チェッククラス クラス名をForm名として扱う -->
  <bean id="beanValidator" 
        class="org.springmodules.validation.commons.DefaultBeanValidator"> 
    <property name="validatorFactory" ref="validatorFactory"/>
  </bean> 
</beans>
