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

	<component name="validatorLookupStrategyImpl" class="org.seasar.teeda.extension.validator.ValidatorLookupStrategyImpl"/>

	<component name="dynamicValidatorInvokerImpl" class="org.seasar.teeda.extension.validator.DynamicValidatorInvokerImpl" />

	<!-- Coreで切り離せるように、teedaExtension.diconに記述。 -->
	<component name="javax.faces.ViewRoot" class="org.seasar.teeda.extension.component.TViewRoot" instance="prototype" />

	<component
		class="org.seasar.teeda.extension.config.taglib.impl.ServletContextTaglibManagerImpl" />
	<component
		class="org.seasar.teeda.extension.config.taglib.impl.TaglibElementBuilderImpl" />
	<component
		class="org.seasar.teeda.extension.html.impl.HtmlParserImpl">
	</component>
	<component class="org.seasar.teeda.extension.html.impl.HtmlNodeHandler" instance="prototype" autoBinding="none" >
		<initMethod name="addForceElementNodeTagName">
			<arg>"table"</arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.InputTypeCheckboxElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.InputTypeRadioElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.BodyElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.HeadElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.ScriptElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.TitleElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.StyleElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.LinkElementNodeDecision"/></arg>
		</initMethod>
		<initMethod name="addElementNodeDecision">
			<arg><component class="org.seasar.teeda.extension.html.impl.GraphicImageElementNodeDecision"/></arg>
		</initMethod>
	</component>

	<component
		class="org.seasar.teeda.extension.html.impl.HtmlSuffixImpl" />
	<component
		class="org.seasar.teeda.extension.html.impl.HtmlDescCacheImpl" />
	<component
		class="org.seasar.teeda.extension.html.impl.PageDescCacheImpl" />
	<component
		class="org.seasar.teeda.extension.html.impl.ActionDescCacheImpl" />
    <component
		class="org.seasar.teeda.extension.html.impl.HtmlComponentInvokerImpl" />

	<component name="mockFactory"
		class="org.seasar.teeda.extension.html.factory.MockFactory" />
	<component name="graphicImageFactory"
		class="org.seasar.teeda.extension.html.factory.GraphicImageFactory" />
	<component name="scopeOutputTextFactory"
		class="org.seasar.teeda.extension.html.factory.ScopeOutputTextFactory" />
	<component name="scopeTitleFactory"
		class="org.seasar.teeda.extension.html.factory.ScopeTitleFactory" />
	<component name="holidayCalendarFactory"
		class="org.seasar.teeda.extension.html.factory.HolidayCalendarFactory" />
	<component name="selectBooleanCheckboxFactory"
		class="org.seasar.teeda.extension.html.factory.SelectBooleanCheckboxFactory" />
	<component name="selectManyCheckboxFactory"
		class="org.seasar.teeda.extension.html.factory.SelectManyCheckboxFactory" />
	<component name="selectOneRadioFactory"
		class="org.seasar.teeda.extension.html.factory.SelectOneRadioFactory" />
	<component name="selectOneMenuFactory"
		class="org.seasar.teeda.extension.html.factory.SelectOneMenuFactory" />
	<component name="selectManyListboxFactory"
		class="org.seasar.teeda.extension.html.factory.SelectManyListboxFactory" />
	<component name="outputLabelFactory"
		class="org.seasar.teeda.extension.html.factory.OutputLabelFactory" />
	<component name="commandButtonFactory"
		class="org.seasar.teeda.extension.html.factory.CommandButtonFactory" />
	<component name="treeHiddenFactory"
		class="org.seasar.teeda.extension.html.factory.TreeHiddenFactory" />
	<component name="sessionSaveFactory"
		class="org.seasar.teeda.extension.html.factory.SessionSaveFactory" />
	<component name="TItemsSaveHiddenFactory"
		class="org.seasar.teeda.extension.html.factory.TItemsSaveHiddenFactory" />
	<component name="inputHiddenFactory"
		class="org.seasar.teeda.extension.html.factory.InputHiddenFactory" />
	<component name="inputSecretFactory"
		class="org.seasar.teeda.extension.html.factory.InputSecretFactory" />
	<component name="inputTextareaFactory"
		class="org.seasar.teeda.extension.html.factory.InputTextareaFactory" />
	<component name="messageFactory"
		class="org.seasar.teeda.extension.html.factory.MessageFactory" />
	<component name="messagesFactory"
		class="org.seasar.teeda.extension.html.factory.MessagesFactory" />
	<component name="allMessagesFactory"
		class="org.seasar.teeda.extension.html.factory.AllMessagesFactory" />
	<component name="outputLinkFactory"
		class="org.seasar.teeda.extension.html.factory.OutputLinkFactory" />
	<component name="gridFactory"
		class="org.seasar.teeda.extension.html.factory.GridFactory" />
	<component name="gridBodyFactory"
		class="org.seasar.teeda.extension.html.factory.GridBodyFactory" />
	<component name="gridColFactory"
		class="org.seasar.teeda.extension.html.factory.GridColFactory" />
	<component name="gridColGroupFactory"
		class="org.seasar.teeda.extension.html.factory.GridColGroupFactory" />
	<component name="gridHeaderFactory"
		class="org.seasar.teeda.extension.html.factory.GridHeaderFactory" />
	<component name="gridTrFactory"
		class="org.seasar.teeda.extension.html.factory.GridTrFactory" />
	<component name="gridTdFactory"
		class="org.seasar.teeda.extension.html.factory.GridTdFactory" />
	<component name="gridThFactory"
		class="org.seasar.teeda.extension.html.factory.GridThFactory" />
	<component name="inputDateTextFactory"
		class="org.seasar.teeda.extension.html.factory.InputDateTextFactory" />
	<component name="inputCommaTextFactory"
		class="org.seasar.teeda.extension.html.factory.InputCommaTextFactory" />
	<component name="popupCalendarFactory"
		class="org.seasar.teeda.extension.html.factory.PopupCalendarFactory" />
	<component name="inputTextFactory"
		class="org.seasar.teeda.extension.html.factory.InputTextFactory" />
	<component name="inputFileFactory"
		class="org.seasar.teeda.extension.html.factory.InputFileFactory" />
	<component name="inputRadioFactory"
		class="org.seasar.teeda.extension.html.factory.InputRadioFactory" />
	<component name="radioItemFactory"
		class="org.seasar.teeda.extension.html.factory.RadioItemFactory" />
	<component name="forEachFactory"
		class="org.seasar.teeda.extension.html.factory.ForEachFactory" />
	<component name="conditionFactory"
		class="org.seasar.teeda.extension.html.factory.ConditionFactory" />
	<component name="outputTextFactory"
		class="org.seasar.teeda.extension.html.factory.OutputTextFactory" />
	<component name="bodyFactory"
		class="org.seasar.teeda.extension.html.factory.BodyFactory" />
	<component name="formFactory"
		class="org.seasar.teeda.extension.html.factory.FormFactory" />
	<component name="headFactory"
		class="org.seasar.teeda.extension.html.factory.HeadFactory" />
	<component name="titleFactory"
		class="org.seasar.teeda.extension.html.factory.TitleFactory" />
	<component name="linkFactory"
		class="org.seasar.teeda.extension.html.factory.LinkFactory" />
	<component name="styleFactory"
		class="org.seasar.teeda.extension.html.factory.StyleFactory" />
	<component name="scriptFactory"
		class="org.seasar.teeda.extension.html.factory.ScriptFactory" />
	<component name="genericFactory"
		class="org.seasar.teeda.extension.html.factory.GenericFactory" />
	<component name="genericElementFactory"
		class="org.seasar.teeda.extension.html.factory.GenericElementFactory" />
	<component
		class="org.seasar.teeda.extension.html.impl.TagProcessorAssemblerImpl" />
	<component
		class="org.seasar.teeda.extension.html.impl.TagProcessorCacheImpl" />
	<component
		class="org.seasar.teeda.extension.html.impl.SessionPagePersistence" />
	<component name="viewHandler"
		class="org.seasar.teeda.extension.html.impl.HtmlViewHandler" />
	<component name="navigationHandler"
		class="org.seasar.teeda.extension.html.impl.HtmlNavigationHandler" />
	<component name="actionListener"
		class="org.seasar.teeda.extension.html.impl.HtmlActionListener" />

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

	<component class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
		<property name="instanceDef">
			@org.seasar.framework.container.deployer.InstanceDefFactory@PROTOTYPE
		</property>
		<initMethod name="addReferenceClass">
			<arg>@org.seasar.teeda.extension.validator.TRequiredValidator@class</arg>
		</initMethod>
		<initMethod name="addClassPattern">
			<arg>"org.seasar.teeda.extension.validator"</arg>
			<arg>"..*Validator"</arg>
		</initMethod>
		<initMethod name="addIgnoreClassPattern">
			<arg>"org.seasar.teeda.extension.validator"</arg>
			<arg>"Abstract..*Validator"</arg>
		</initMethod>
	</component>

	<component
		class="org.seasar.teeda.core.render.autoregister.TeedaRendererComponentAutoRegister">
		<initMethod name="addReferenceClass">
			<arg>@org.seasar.teeda.extension.render.html.HtmlTextRenderer@class</arg>
		</initMethod>
		<initMethod name="addClassPattern">
			<arg>"org.seasar.teeda.extension.render"</arg>
			<arg>"..*Renderer"</arg>
		</initMethod>
		<initMethod name="addIgnoreClassPattern">
			<arg>"org.seasar.teeda.extension.render"</arg>
			<arg>"Abstract..*Renderer"</arg>
		</initMethod>
	</component>

	<component class="org.seasar.framework.container.autoregister.ComponentAutoRegister">
		<property name="instanceDef">@org.seasar.framework.container.deployer.InstanceDefFactory@PROTOTYPE</property>
		<initMethod name="addReferenceClass">
			<arg>@org.seasar.teeda.extension.convert.TBigDecimalConverter@class</arg>
		</initMethod>
		<initMethod name="addClassPattern">
			<arg>"org.seasar.teeda.extension.convert"</arg>
			<arg>"..*Converter"</arg>
		</initMethod>
	</component>

	<component name="teedaGridHelper"
		class="org.seasar.teeda.extension.helper.impl.GridHelperImpl" instance="session"/>

	<component
		class="org.seasar.teeda.extension.helper.impl.PathHelperImpl"/>

	<component
		class="org.seasar.teeda.extension.util.SimpleFacesMessageHelperImpl"/>

	<component
		class="org.seasar.teeda.extension.util.ExtensionRedirectUrlResolverImpl"/>

	<component name="labelProvider"
		class="org.seasar.teeda.extension.util.LabelProviderMap"/>

	<component name="layoutBuilder"
		class="org.seasar.teeda.extension.util.LayoutBuilder"/>
</components>
