<?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"/>

  <!-- ========================= 一般的な定義  ========================= -->

  <!-- プレースホルダ ${...} をプロパティファイルから取得した値に置換するクラス -->
  <!-- (ここでは、JDBC関連のプロパティ) -->
  <context:property-placeholder location="WEB-INF/jdbc.properties"/>
<!-- 
  <bean id="propertyConfigurer" 
      class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	<property name="locations">
	  <list>
		<value>WEB-INF/jdbc.properties</value>
      </list>
	</property>
  </bean>
 -->

  <!-- リソースバンドルの設定（プロパティファイル利用）	-->
<!--  <bean id="messageSource" 
      class="org.springframework.context.support.ResourceBundleMessageSource">
	<property name="basenames" value="ApplicationResources,errors"/>
  </bean> -->
  
  <!-- リソースバンドルの設定 UC110用 -->
  <!-- 別途、dataAccessContext-local.xmlにてDAOの設定が必要 -->
  <bean id="messageSource" 
     class="jp.terasoluna.fw.message.DataSourceMessageSource">
    <property name="parentMessageSource" ref="parentMessageSource"/>
    <property name="dbMessageResourceDAO" ref="DBMessageResourceDAO"/>
    <property name="defaultLocale"  value="en_US"/>
  </bean>
 
  <bean id="parentMessageSource" 
      class="org.springframework.context.support.ResourceBundleMessageSource">
	<property name="basenames" value="ApplicationResources,system-messages,application-messages"/>
  </bean>
  
  
  <!-- UC110 DBメッセージ管理用-->
  <!-- メッセージ取得 -->
  <bean id="msgAcc"   class="jp.terasoluna.rich.functionsample.common.messages.DBMessageAccessorImpl"/>
  <!-- メッセージ再定義 -->
  <bean id="reloader"   class="jp.terasoluna.rich.functionsample.common.messages.ReloadDataSourceMessageImpl">  
    <property name="dataSrcMsg" ref="messageSource"/>
  </bean>
  
  <!-- 制御情報管理機能 システム共通情報（コンテキスト）にアクセスするクラス -->
  <bean id="ctxSupport" 
      class="jp.terasoluna.rich.functionsample.common.context.support.RequestContextSupportImpl"/>      

  <!-- 禁止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>
  
  <!-- ===================== 入力チェックの定義 ===================== -->
  
  <!-- 入力チェッククラスを生成するファクトリ -->
  <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" />
    <property name="useFullyQualifiedClassName" value="false" />
  </bean> 

  <!-- デフォルト入力チェッククラス クラス名をForm名として扱う -->
  <bean id="beanValidator2" 
      class="org.springmodules.validation.commons.DefaultBeanValidator"> 
    <property name="validatorFactory" ref="validatorFactory" />
    <property name="useFullyQualifiedClassName" value="false" />
  </bean> 
 
  <!-- UC109 コーディングによる入力チェックの入力チェック -->
  <bean id="codingValidator" 
      class="jp.terasoluna.rich.functionsample.inputcheck.validator.CodingMultiFieldsValidator"> 
    <property name="validatorFactory" ref="validatorFactory" /> 
  </bean>        
  <!-- ******************* プロキシファクトリを利用したトランザクション ******************* -->
  <!--
		- トランザクションプロキシのベース定義となる親Bean定義。
		- インスタンス化されるべきでないので、抽象Beanとして定義する。
		- 命名パターンに従って、共有するトランザクション属性を設定する。
		- 子のBean定義で属性をオーバーライドすることができる。
    -->
<!-- 
	<bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
		  abstract="true">
		<property name="transactionManager" ref="transactionManager" />
		<property name="transactionAttributes">
			<props>
				<prop key="insert*">PROPAGATION_REQUIRED,-java.lang.Exception</prop>
				<prop key="update*">PROPAGATION_REQUIRED,-java.lang.Exception</prop>
				<prop key="*">PROPAGATION_REQUIRED,readOnly,-java.lang.Exception</prop>
			</props>
		</property>
	</bean> 
 -->


  <!-- ===================== プロパティエディタの定義 ===================== -->
  <!-- Date型のプロパティエディタを生成するクラス -->
  <bean id="datePropertyEditorRegistrar" 
      class="jp.terasoluna.fw.beans.DatePropertyEditorRegistrar"/> 

</beans>
