<?xml version="1.0" encoding="UTF-8"?>
<!--
    Copyright 2004 The Apache Software Foundation
  
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at
  
       http://www.apache.org/licenses/LICENSE-2.0
  
   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!-- $Id$ -->
<!DOCTYPE library-specification PUBLIC 
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
	
<!--
 
   This is a kind of "boostrap" library; when an unadorned page name or alias (a name or
   alias without a namespace prefix) cannot be located in the appropriate application or
   library specification, the framework specification is checked.  This allows
   the application or library to override framework's versions of a component.
   
-->

<library-specification>

    <component-type type="ActionLink" specification-path="link/ActionLink.jwc"/>
    <component-type type="Any" specification-path="components/Any.jwc"/>
    <component-type type="Block" specification-path="components/Block.jwc"/>
    <component-type type="Body" specification-path="html/Body.jwc"/>
    <component-type type="Button" specification-path="form/Button.jwc"/>
    <component-type type="Checkbox" specification-path="form/Checkbox.jwc"/>
    <component-type type="Conditional" specification-path="components/Conditional.jwc"/>
    <component-type type="DatePicker" specification-path="form/DatePicker.jwc"/>
    <component-type type="Delegator" specification-path="components/Delegator.jwc"/>
    <component-type type="DirectLink" specification-path="link/DirectLink.jwc"/>
    <component-type type="ExternalLink" specification-path="link/ExternalLink.jwc"/>
    <component-type type="FieldLabel" specification-path="valid/FieldLabel.jwc"/>
    <component-type type="Foreach" specification-path="components/Foreach.jwc"/>
    <component-type type="Frame" specification-path="html/Frame.jwc"/>
    <component-type type="ExceptionDisplay" specification-path="html/ExceptionDisplay.jwc"/>
    <component-type type="Form" specification-path="form/Form.jwc"/>
    <component-type type="GenericLink" specification-path="link/GenericLink.jwc"/>
    <component-type type="Hidden" specification-path="form/Hidden.jwc"/>
    <component-type type="Image" specification-path="html/Image.jwc"/>
    <component-type type="ImageSubmit" specification-path="form/ImageSubmit.jwc"/>
	<component-type type="Insert" specification-path="components/Insert.jwc"/>
    <component-type type="InsertText" specification-path="html/InsertText.jwc"/>
    <component-type type="LinkSubmit" specification-path="form/LinkSubmit.jwc"/>
    <component-type type="ListEdit" specification-path="form/ListEdit.jwc"/>
    <component-type type="Option" specification-path="form/Option.jwc"/>
    <component-type type="PageLink" specification-path="link/PageLink.jwc"/>
    <component-type type="PropertySelection" specification-path="form/PropertySelection.jwc"/>
    <component-type type="Radio" specification-path="form/Radio.jwc"/>
    <component-type type="RadioGroup" specification-path="form/RadioGroup.jwc"/>
    <component-type type="RenderBlock" specification-path="components/RenderBlock.jwc"/>
    <component-type type="RenderBody" specification-path="components/RenderBody.jwc"/>
    <component-type type="Rollover" specification-path="html/Rollover.jwc"/>
    <component-type type="Select" specification-path="form/Select.jwc"/>
    <component-type type="ServiceLink" specification-path="link/ServiceLink.jwc"/>
    <component-type type="Script" specification-path="html/Script.jwc"/>
    <component-type type="Shell" specification-path="html/Shell.jwc"/>
    <component-type type="Submit" specification-path="form/Submit.jwc"/>
    <component-type type="TextArea" specification-path="form/TextArea.jwc"/>
    <component-type type="TextField" specification-path="form/TextField.jwc"/>
    <component-type type="Upload" specification-path="form/Upload.jwc"/>
    <component-type type="ValidField" specification-path="valid/ValidField.jwc"/>
          
    <page name="StaleLink" specification-path="pages/StaleLink.page"/>
    <page name="StaleSession" specification-path="pages/StaleSession.page"/>
    <page name="Exception" specification-path="pages/Exception.page"/>
   
    <page name="WMLException" specification-path="wml/pages/WMLException.page"/>
    <page name="WMLStaleLink" specification-path="wml/pages/WMLStaleLink.page"/>
    <page name="WMLStaleSession" specification-path="wml/pages/WMLStaleSession.page"/>

    <!-- These may be overriden but generally shouldn't be, except perhaps for the home service. -->
    
    <service name="home" class="org.apache.tapestry.engine.HomeService"/>
    <service name="action" class="org.apache.tapestry.engine.ActionService"/>
    <service name="direct" class="org.apache.tapestry.engine.DirectService"/>
    <service name="page" class="org.apache.tapestry.engine.PageService"/>
    <service name="reset" class="org.apache.tapestry.engine.ResetService"/>
    <service name="restart" class="org.apache.tapestry.engine.RestartService"/>
    <service name="asset" class="org.apache.tapestry.asset.AssetService"/>
	<service name="external" class="org.apache.tapestry.engine.ExternalService"/>
	
	<!-- Used to support the JSP tags. -->
	
	<service name="tagsupport" class="org.apache.tapestry.engine.TagSupportService"/>
	
</library-specification>