<?xml version="1.0" encoding="utf-8"?>

<module id="tap.proto" version="1.0.0">


    <!-- Boiler Plate HiveMind Service Contributions -->
    <contribution configuration-id="tapestry.url.ServiceEncoders">
        <page-service-encoder id="page" extension="html" service="page"/>
    </contribution>
    <contribution configuration-id="tapestry.url.ServiceEncoders">
        <direct-service-encoder id="direct" stateless-extension="direct"
            stateful-extension="sdirect"/>
    </contribution>
    <contribution configuration-id="tapestry.url.ServiceEncoders">
        <asset-encoder id="asset" path="/assets"/>
    </contribution>
    <contribution configuration-id="tapestry.url.ServiceEncoders">
        <extension-encoder id="extension" extension="svc" after="*"/>
    </contribution>
    <contribution configuration-id="tapestry.url.ServiceEncoders">
        <encoder id="ajaxSrvEnc" object="instance:net.sf.tacos.ajax.AjaxDirectServiceEncoder"/>
    </contribution>

    <!-- Configurations -->
    <implementation service-id="tapestry.multipart.ServletMultipartDecoder">
        <create-instance
            class="org.apache.tapestry.multipart.MultipartDecoderImpl,maxSize=209715
            20" model="threaded" />
    </implementation>



    <!-- Application State Objects -->
    <contribution configuration-id="tapestry.state.ApplicationObjects">
        <state-object name="validationDelegate" scope="session">
            <create-instance class="org.apache.tapestry.valid.ValidationDelegate"/>
        </state-object>
    </contribution>
    <contribution configuration-id="tapestry.state.ApplicationObjects">
        <state-object name="user" scope="session">
            <create-instance class="proto.Person"/>
        </state-object>
    </contribution>
    <contribution configuration-id="tapestry.state.ApplicationObjects">
        <state-object name="persons" scope="session">
            <create-instance class="proto.PersonList"/>
        </state-object>
    </contribution>

    <service-point id="CryptoService" interface="common.crypto.ICrypto"/>
    <implementation service-id="CryptoService">
        <create-instance class="common.crypto.CryptoService"/>
    </implementation>

</module>

