<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
	"http://www.seasar.org/dtd/components24.dtd">
<components namespace="teeda">
	<include path="convention.dicon"
		condition="@org.seasar.teeda.core.util.DiconConditionUtil@hasConvention()" />
	<include path="teedaErrorPage.dicon"
		condition="@org.seasar.teeda.core.util.DiconConditionUtil@hasErrorPageDicon()" />
	<include path="teedaCustomize.dicon"
		condition="@org.seasar.teeda.core.util.DiconConditionUtil@hasCustomizeDicon()" />

	<!-- FacesConfig configurator -->
	<component class="org.seasar.teeda.core.config.faces.impl.FacesConfigBuilderImpl">
		<initMethod name="addFacesConfigurator">
			<arg><component class="org.seasar.teeda.core.config.faces.impl.CoreFacesConfigurator" autoBinding="none" /></arg>
		</initMethod>
		<initMethod name="addFacesConfigurator">
			<arg><component class="org.seasar.teeda.core.config.faces.impl.MetaInfFacesConfigurator" autoBinding="none" /></arg>
		</initMethod>
		<initMethod name="addFacesConfigurator">
			<arg><component class="org.seasar.teeda.core.config.faces.impl.ConfigFilesFacesConfigurator" autoBinding="none"/></arg>
		</initMethod>
		<initMethod name="addFacesConfigurator">
			<arg><component class="org.seasar.teeda.core.config.faces.impl.ApplicationFacesConfigurator" autoBinding="none" /></arg>
		</initMethod>
	</component>

	<!-- FacesConfig Assembler -->
	<component class="org.seasar.teeda.core.config.faces.assembler.AssemblerAssembler" autoBinding="none" />

	<!-- ValueBinding relates -->
	<component class="org.seasar.teeda.core.el.impl.ValueBindingFactoryImpl" autoBinding="none" />

	<component class="org.seasar.teeda.core.el.impl.MethodBindingFactoryImpl"/>

	<!-- Applications -->
	<component class="org.seasar.teeda.core.application.ApplicationImpl">
		<property name="actionListener">actionListener</property>
		<property name="navigationHandler">navigationHandler</property>
		<property name="viewHandler">viewHandler</property>
		<property name="propertyResolver">propertyResolver</property>
		<property name="variableResolver">variableResolver</property>
		<property name="stateManager">stateManager</property>
	</component>

	<component name="actionListener" class="org.seasar.teeda.core.application.ActionListenerImpl" />

	<component name="navigationHandler" class="org.seasar.teeda.core.application.NavigationHandlerImpl" />

	<component name="viewHandler" class="org.seasar.teeda.core.application.ViewHandlerImpl" />

	<component name="propertyResolver" class="org.seasar.teeda.core.el.TeedaPropertyResolver" />

	<component name="variableResolver" class="org.seasar.teeda.core.el.TeedaVariableResolver" />

	<component name="stateManager" class="org.seasar.teeda.core.application.impl.TeedaStateManagerImpl" />

	<component class="org.seasar.teeda.core.application.impl.TreeStructureManagerImpl" />

	<component name="responseStateManager" class="org.seasar.teeda.core.render.html.HtmlResponseStateManager" />

	<component class="org.seasar.teeda.core.render.Base64EncodeConverter" />

	<component class="org.seasar.teeda.core.managedbean.impl.ManagedBeanFactoryImpl" />

	<component class="org.seasar.teeda.core.managedbean.impl.ManagedBeanScopeSaverImpl" />

	<component name="scopeManager" class="org.seasar.teeda.core.scope.impl.ScopeManagerImpl" />

	<component name="translator" class="org.seasar.teeda.core.scope.impl.S2ScopeTranslator" />

	<!-- Lifecycle -->
	<component class="org.seasar.teeda.core.lifecycle.LifecycleImpl">
		<property name="restoreViewPhase">restoreViewPhase</property>
		<property name="applyRequestValuesPhase">applyRequestValuesPhase</property>
		<property name="processValidationsPhase">processValidationsPhase</property>
		<property name="updateModelValuesPhase">updateModelValuesPhase</property>
		<property name="invokeApplicationPhase">invokeApplicationPhase</property>
		<property name="renderResponsePhase">renderResponsePhase</property>
	</component>

	<component name="restoreViewPhase" class="org.seasar.teeda.core.lifecycle.impl.RestoreViewPhase" />
	<component name="applyRequestValuesPhase" class="org.seasar.teeda.core.lifecycle.impl.ApplyRequestValuesPhase" />
	<component name="processValidationsPhase" class="org.seasar.teeda.core.lifecycle.impl.ProcessValidationsPhase" />
	<component name="updateModelValuesPhase" class="org.seasar.teeda.core.lifecycle.impl.UpdateModelValuesPhase" />
	<component name="invokeApplicationPhase" class="org.seasar.teeda.core.lifecycle.impl.InvokeApplicationPhase" />
	<component name="renderResponsePhase" class="org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase" />

	<component name="webappConfigBuilder" class="org.seasar.teeda.core.config.webapp.impl.WebappConfigBuilderImpl"/>

	<component class="org.seasar.teeda.core.render.html.HtmlRenderKitImpl"/>

	<!-- Renderer auto-registration -->
	<component class="org.seasar.teeda.core.render.autoregister.TeedaRendererComponentAutoRegister">
		<initMethod name="addReferenceClass">
			<arg>@org.seasar.teeda.core.render.html.HtmlCommandButtonRenderer@class</arg>
		</initMethod>
		<initMethod name="addClassPattern">
			<arg>"org.seasar.teeda.core.render.html"</arg>
			<arg>"..*Renderer"</arg>
		</initMethod>
		<initMethod name="addIgnoreClassPattern">
			<arg>"org.seasar.teeda.core.render.html"</arg>
			<arg>"Abstract..*Renderer"</arg>
		</initMethod>
	</component>

	<!-- Validator auto-registration -->
	<component class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
		<property name="instanceDef">@org.seasar.framework.container.deployer.InstanceDefFactory@PROTOTYPE</property>
		<initMethod name="addReferenceClass">
			<arg>@javax.faces.validator.LengthValidator@class</arg>
		</initMethod>
		<initMethod name="addClassPattern">
			<arg>"javax.faces.validator"</arg>
			<arg>"..*Validator"</arg>
		</initMethod>
	</component>

	<!-- Converter auto-registration -->
	<component class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
		<property name="instanceDef">@org.seasar.framework.container.deployer.InstanceDefFactory@PROTOTYPE</property>
		<initMethod name="addReferenceClass">
			<arg>@javax.faces.convert.IntegerConverter@class</arg>
		</initMethod>
		<initMethod name="addClassPattern">
			<arg>"javax.faces.convert"</arg>
			<arg>"..*Converter"</arg>
		</initMethod>
		<initMethod name="addClassPattern">
			<arg>"org.seasar.teeda.core.convert"</arg>
			<arg>"..*Converter"</arg>
		</initMethod>
	</component>

</components>
