<?xml version="1.0"?>
<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Object Mapping DTD Version 1.0//EN"
                         "http://castor.exolab.org/mapping.dtd">
<!-- 
  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.
-->
<mapping>
  <description>Servlet Deployment Descriptor Mapping</description>

  <!--
    The Root WebApplication Element
    This element should map each and every one of the possible 2.4
    elments in order.
      + icon,
      + display-name
      + description
      + distributable
      + context-param
      + filter
      + filter-mapping
      + listener
      + servlet
      + servlet-mapping
      + session-config
      + mime-mapping
      + welcome-file-list?,
      + error-page
      + taglib
      + resource-env-ref
      + resource-ref
      + security-constraint
      + login-config
      + security-role
      + env-entry
      + ejb-ref
      + ejb-local-ref
    -->
  <class name="org.apache.pluto.descriptors.servlet.WebAppDD">
    <map-to xml="web-app"/>
      
    <field name="Icon"
           type="org.apache.pluto.descriptors.common.IconDD"/>

    <field name="DisplayName">
      <bind-xml name="display-name" node="element"/>
    </field>

    <field name="Description">
      <bind-xml name="description" node="element"/>
    </field>

    <field name="Distributable" get-method="isDistributable">
      <bind-xml name="distributable" node="element"/>
    </field>

    <field name="ContextParams"
           type="org.apache.pluto.descriptors.common.InitParamDD"
           collection="arraylist">
      <bind-xml name="context-param" node="element"/>
    </field>

    <field name="Filters"
           type="org.apache.pluto.descriptors.servlet.FilterDD"
           collection="arraylist">
      <bind-xml name="filter" node="element"/>
    </field>

    <field name="Listeners"
        type="org.apache.pluto.descriptors.servlet.ListenerDD"
        collection="arraylist">
        <bind-xml name="listener" node="element"/>
    </field>

    <field name="Servlets"
           type="org.apache.pluto.descriptors.servlet.ServletDD"
           collection="arraylist">
      <bind-xml name="servlet" node="element"/>
    </field>

    <field name="FilterMappings"
           type="org.apache.pluto.descriptors.servlet.FilterMappingDD"
           collection="arraylist">
      <bind-xml name="filter-mapping" node="element"/>
    </field>

    <field name="ServletMappings"
        type="org.apache.pluto.descriptors.servlet.ServletMappingDD"
        collection="arraylist">
        <bind-xml name="servlet-mapping" node="element"/>
    </field>

    <field name="SessionConfig"
           type="org.apache.pluto.descriptors.servlet.SessionConfigDD">
      <bind-xml name="session-config" node="element"/>
    </field>

    <field name="MimeMappings"
           type="org.apache.pluto.descriptors.servlet.MimeMappingDD"
           collection="arraylist">
      <bind-xml name="mime-mapping" node="element"/>
    </field>

    <field name="WelcomeFileList"
           type="org.apache.pluto.descriptors.servlet.WelcomeFileListDD">
       <bind-xml name="welcome-file-list" node="element"/>
    </field>

    <field name="ErrorPages"
           type="org.apache.pluto.descriptors.servlet.ErrorPageDD"
           collection="arraylist">
        <bind-xml name="error-page" node="element"/>
    </field>

    <field name="Taglibs"
           type="org.apache.pluto.descriptors.servlet.TaglibDD"
           collection="arraylist">
      <bind-xml name="taglib" node="element"/>
    </field>

    <field name="ResourceRefs"
           type="org.apache.pluto.descriptors.servlet.ResourceRefDD"
           collection="arraylist">
      <bind-xml name="resource-ref" node="element"/>
    </field>

    <field name="SecurityConstraints"
           type="org.apache.pluto.descriptors.servlet.SecurityConstraintDD"
           collection="arraylist">
      <bind-xml name="security-constraint" node="element"/>
    </field>

    <field name="LoginConfig"
           type="org.apache.pluto.descriptors.servlet.LoginConfigDD">
        <bind-xml name="login-config" node="element"/>
    </field>

    <field name="SecurityRoles"
           type="org.apache.pluto.descriptors.servlet.SecurityRoleDD"
           collection="arraylist">
        <bind-xml name="security-role" node="element"/>
    </field>

    <field name="envEntrys"
           type="org.apache.pluto.descriptors.servlet.EnvEntryDD"
           collection="arraylist">
      <bind-xml name="env-entry" node="element"/>    
    </field>
      
    <field name="ejbRefs"
           type="org.apache.pluto.descriptors.servlet.EjbRefDD"
           collection="arraylist">
      <bind-xml name="ejb-ref" node="element"/>
    </field>
  </class>

  <!--
    Filter DDuration
     + filter
     + filter-mapping
    -->
  <class name="org.apache.pluto.descriptors.servlet.FilterDD">
      <field name="Icon" type="org.apache.pluto.descriptors.common.IconDD"/>

      <field name="FilterName">
          <bind-xml name="filter-name" node="element"/>
      </field>

      <field name="DisplayName">
          <bind-xml name="display-name" node="element"/>
      </field>

      <field name="Description">
          <bind-xml name="description" node="element"/>
      </field>

      <field name="FilterClass">
          <bind-xml name="filter-class" node="element"/>
      </field>

      <field name="InitParams"
          type="org.apache.pluto.descriptors.common.InitParamDD"
          collection="arraylist">
          <bind-xml name="init-param"/>
      </field>
  </class>
  <class name="org.apache.pluto.descriptors.servlet.FilterMappingDD">

    <field name="FilterName">
        <bind-xml name="filter-name" node="element"/>
    </field>

    <field name="ServletName">
        <bind-xml name="servlet-name" node="element"/>
    </field>

    <field name="UrlPatterns" type="java.lang.String"
           collection="arraylist">
        <bind-xml name="url-pattern" node="element"/>
    </field>
    <field name="Dispatchers" type="java.lang.String"
           collection="arraylist">
        <bind-xml name="dispatcher" node="element"/>
    </field>
  </class>


    <!--
      Servlet DDuration
      -->

    <class name="org.apache.pluto.descriptors.servlet.ServletDD">
      <field name="Icon" type="org.apache.pluto.descriptors.common.IconDD"/>

      <field name="ServletName">
          <bind-xml name="servlet-name" node="element"/>
      </field>

      <field name="DisplayName">
          <bind-xml name="display-name" node="element"/>
      </field>

      <field name="Description">
          <bind-xml name="description" node="element"/>
      </field>

      <field name="ServletClass">
          <bind-xml name="servlet-class" node="element"/>
      </field>

      <field name="JspFile">
          <bind-xml name="jsp-file" node="element"/>
      </field>

      <field name="InitParams"
             type="org.apache.pluto.descriptors.common.InitParamDD"
             collection="arraylist">
          <bind-xml name="init-param"/>
      </field>

      <field name="LoadOnStartup"
             type="org.apache.pluto.descriptors.servlet.LoadOnStartupDD">
          <bind-xml name="load-on-startup" node="element"/>
      </field>

      <field name="SecurityRoleRefs"
             type="org.apache.pluto.descriptors.common.SecurityRoleRefDD"
             collection="arraylist">
        <bind-xml name="security-role-ref" node="element"/>
      </field>
    </class>

    <class name="org.apache.pluto.descriptors.servlet.SessionConfigDD">
      <field name="SessionTimeout" type="int">
        <bind-xml name="session-timeout" node="element"/>
      </field>
    </class>

    <class name="org.apache.pluto.descriptors.servlet.WelcomeFileListDD">
      <field name="WelcomeFiles"
          type="java.lang.String"
          collection="arraylist">
          <bind-xml name="welcome-file" node="element"/>
      </field>
    </class>

    <!--
      Security Constraint
      + SecurityConstraint
      + WebResourceCollection
      -->
    <class name="org.apache.pluto.descriptors.servlet.SecurityConstraintDD">
        <field name="DisplayName" type="java.lang.String"/>
        <field name="WebResourceCollections"
               type="org.apache.pluto.descriptors.servlet.WebResourceCollectionDD"
               collection="arraylist">
          <bind-xml name="web-resource-collection" node="element"/>
        </field>
        <field name="AuthConstraint"
               type="org.apache.pluto.descriptors.servlet.AuthConstraintDD"/>
        <field name="UserDataConstraint"
               type="org.apache.pluto.descriptors.servlet.UserDataConstraintDD"/>
    </class>
    <class name="org.apache.pluto.descriptors.servlet.WebResourceCollectionDD">
        <field name="description" type="java.lang.String"/>
        <field name="webResourceName" type="java.lang.String"/>
        <field name="httpMethods" type="java.lang.String" collection="arraylist">
          <bind-xml name="http-method" node="element"/>
        </field>
        <field name="urlPatterns" type="java.lang.String" collection="arraylist">
            <bind-xml name="url-pattern" node="element"/>
        </field>
    </class>

    <class name="org.apache.pluto.descriptors.servlet.LoginConfigDD">
        <field name="AuthMethod" type="java.lang.String"/>
        <field name="FormLoginConfig"
               type="org.apache.pluto.descriptors.servlet.FormLoginConfigDD">
          <bind-xml name="form-login-config" node="element"/>
        </field>
        <field name="RealmName" type="java.lang.String"/>
    </class>

    <class name="org.apache.pluto.descriptors.servlet.LoadOnStartupDD">
        <field name="Priority" type="int">
            <bind-xml name="load-on-startup" node="text"/>
        </field>
    </class>


</mapping>

