<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="webapplication"
    nsURI="webapplication.xmi" nsPrefix="org.eclipse.jst.j2ee.webapplication">
  <eClassifiers xsi:type="ecore:EClass" name="WebApp" eSuperTypes="common.ecore#//JNDIEnvRefsGroup">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The web-app element is the root of the deployment descriptor for&#xD;&#xA;a web application."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="distributable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The distributable element, by its presence in a web application deployment descriptor, indicates that this web application is programmed appropriately to be deployed into a distributed servlet container"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="contexts" upperBound="-1"
        eType="#//ContextParam" containment="true" eOpposite="#//ContextParam/webApp">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated see contextParams"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="errorPages" upperBound="-1"
        eType="#//ErrorPage" containment="true" eOpposite="#//ErrorPage/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="fileList" eType="#//WelcomeFileList"
        containment="true" eOpposite="#//WelcomeFileList/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="tagLibs" upperBound="-1"
        eType="#//TagLibRef" containment="true" eOpposite="#//TagLibRef/webApp">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated See jsp::TagLibRef&#xD;&#xA;"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="constraints" upperBound="-1"
        eType="#//SecurityConstraint" containment="true" eOpposite="#//SecurityConstraint/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="loginConfig" eType="#//LoginConfig"
        containment="true" eOpposite="#//LoginConfig/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="mimeMappings" upperBound="-1"
        eType="#//MimeMapping" containment="true" eOpposite="#//MimeMapping/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="sessionConfig" eType="#//SessionConfig"
        containment="true" eOpposite="#//SessionConfig/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="servletMappings" upperBound="-1"
        eType="#//ServletMapping" containment="true" eOpposite="#//ServletMapping/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="servlets" upperBound="-1"
        eType="#//Servlet" containment="true" eOpposite="#//Servlet/webApp"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="securityRoles" upperBound="-1"
        eType="ecore:EClass common.ecore#//SecurityRole" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="filters" upperBound="-1"
        eType="#//Filter" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="filterMappings" upperBound="-1"
        eType="#//FilterMapping" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Filter mappings defined for the web app"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="listeners" upperBound="-1"
        eType="ecore:EClass common.ecore#//Listener" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The listeners collection contains deployment properties for a web application listener beans in the web app."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="contextParams" upperBound="-1"
        eType="ecore:EClass common.ecore#//ParamValue" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="jspConfig" eType="ecore:EClass jsp.ecore#//JSPConfig"
        containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="messageDestinations" upperBound="-1"
        eType="ecore:EClass common.ecore#//MessageDestination" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="localEncodingMappingList"
        eType="#//LocalEncodingMappingList" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ContextParam" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="@version J2EE1.4 deprecated&#xD;&#xA;The context-param element contains the declaration of a web application's servlet context initialization parameters."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="paramName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated&#xD;&#xA;The param-name element contains the name of a parameter."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="paramValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated&#xD;&#xA;The param-value element contains the value of a parameter."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/contexts"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Servlet" eSuperTypes="common.ecore#//CompatibilityDescriptionGroup">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The servlet element contains the declarative data of a servlet. If a jsp-file is specified and the load-on-startup element is present, then the JSP should be precompiled and loaded."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="servletName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The servlet-name element contains the canonical name of the servlet."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="loadOnStartup" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The load-on-startup element indicates that this servlet should be loaded on the startup of the web application. The optional contents of these element must be a positive integer indicating the order in which the servlet should be loaded. Lower integers are loaded before higher integers. If no value is specified, or if the value specified is not a positive integer, the container is free to load it at any time in the startup sequence.&#xD;&#xA;"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/servlets"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webType" lowerBound="1"
        eType="#//WebType" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="params" upperBound="-1"
        eType="#//InitParam" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes initParams"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="securityRoleRefs" upperBound="-1"
        eType="ecore:EClass common.ecore#//SecurityRoleRef" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="runAs" eType="ecore:EClass common.ecore#//RunAsSpecifiedIdentity"
        containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="If defined for a servlet, overrides the security identity used to call an EJB by that servlet in this web application. The role-name is one of the security roles already defined for this web application."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="initParams" upperBound="-1"
        eType="ecore:EClass common.ecore#//ParamValue" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ServletMapping" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The servlet-mapping element defines a mapping between a servlet and a url pattern"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="urlPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The url-pattern element contains the url pattern of the mapping. Must follow the rules specified in Section 10 of the Servlet API Specification."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4&#xD;&#xA;The servlet-name element contains the canonical name of the&#xD;&#xA;servlet. Each servlet name is unique within the web&#xD;&#xA;application."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/servletMappings"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="servlet" lowerBound="1"
        eType="#//Servlet"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SessionConfig" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The session-config element defines the session parameters for this web application."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="sessionTimeout" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The session-timeout element defines the default&#xD;&#xA;        session timeout interval for all sessions created&#xD;&#xA;        in this web application. The specified timeout&#xD;&#xA;        must be expressed in a whole number of minutes.&#xD;&#xA;        If the timeout is 0 or less, the container ensures&#xD;&#xA;        the default behaviour of sessions is never to time&#xD;&#xA;        out. If this element is not specified, the container&#xD;&#xA;        must set its default timeout period."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/sessionConfig"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="MimeMapping" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The mime-mapping element defines a mapping between an extension and a mime type.&#xD;&#xA;"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The extension element contains a string describing an extension. example: &quot;txt&quot;"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="mimeType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The mime-type element contains a defined mime type. example: &quot;text/plain&quot;"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/mimeMappings"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="WelcomeFileList" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The welcome-file-list contains an ordered list of welcome files elements."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/fileList"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="file" upperBound="-1" eType="#//WelcomeFile"
        containment="true" eOpposite="#//WelcomeFile/fileList"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ErrorPage" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The error-page element contains a mapping between an error code or exception type to the path of a resource in the web application"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="location" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The location element contains the location of the resource in the web application"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/errorPages"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="TagLibRef" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="@version J2EE1.4 deprecated, becomes jsp::TagLibRef&#xD;&#xA;The taglib element is used to describe a JSP tag library."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="taglibURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated See jsp::TagLibRef&#xD;&#xA;&#xD;&#xA;The taglib-uri element describes a URI, relative to the location of the web.xml document, identifying a Tag Library used in the Web Application."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="taglibLocation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated See jsp::TagLibRef&#xD;&#xA;&#xD;&#xA;The taglib-location element contains the location (as a resource relative to the root of the web application) where to find the Tag Libary Description file for the tag library."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/tagLibs"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="SecurityConstraint" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The security-constraint element is used to associate security constraints with one or more web resource collections"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes displayNames"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/constraints"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webResourceCollections"
        lowerBound="1" upperBound="-1" eType="#//WebResourceCollection" containment="true"
        eOpposite="#//WebResourceCollection/secConstraint"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="authConstraint" eType="#//AuthConstraint"
        containment="true" eOpposite="#//AuthConstraint/secConstraint"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="userDataConstraint" eType="#//UserDataConstraint"
        containment="true" eOpposite="#//UserDataConstraint/secConstraint"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="displayNames" upperBound="-1"
        eType="ecore:EClass common.ecore#//DisplayName" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="WebResourceCollection" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The web-resource-collection element is used to identify a subset of the resources and HTTP methods on those resources within a web application to which a security constraint applies. If no HTTP methods are specified, then the security constraint applies to all HTTP methods.&#xD;&#xA;"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="webResourceName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The web-resource-name contains the name of this web resource collection"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes descriptions"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="urlPattern" unique="false"
        lowerBound="1" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="httpMethod" upperBound="-1"
        eType="#//HTTPMethodTypeEnum">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="secConstraint" eType="#//SecurityConstraint"
        transient="true" eOpposite="#//SecurityConstraint/webResourceCollections"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="URLs" upperBound="-1" eType="#//URLPatternType"
        containment="true" eOpposite="#//URLPatternType/resCollection">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes urlPattern"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="descriptions" upperBound="-1"
        eType="ecore:EClass common.ecore#//Description" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="HTTPs" upperBound="-1"
        eType="#//HTTPMethodType" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes httpMethod"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="AuthConstraint" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The auth-constraintType indicates the user roles that&#xD;&#xA;should be permitted access to this resource&#xD;&#xA;collection. The role-name used here must either correspond&#xD;&#xA;to the role-name of one of the security-role elements&#xD;&#xA;defined for this web application, or be the specially&#xD;&#xA;reserved role-name &quot;*&quot; that is a compact syntax for&#xD;&#xA;indicating all roles in the web application. If both &quot;*&quot;&#xD;&#xA;and rolenames appear, the container interprets this as all&#xD;&#xA;roles.  If no roles are defined, no user is allowed access&#xD;&#xA;to the portion of the web application described by the&#xD;&#xA;containing security-constraint.  The container matches&#xD;&#xA;role names case sensitively when determining access."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes descriptions&#xD;&#xA;A description of the auth constraint."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="roles" upperBound="-1"
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="A list of role names for the auth constraint.  Each element specifies the name of a security role (a String).&#xD;&#xA;"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="secConstraint" eType="#//SecurityConstraint"
        transient="true" eOpposite="#//SecurityConstraint/authConstraint"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="descriptions" upperBound="-1"
        eType="ecore:EClass common.ecore#//Description" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="UserDataConstraint" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The user-data-constraint element is used to indicate how data communicated between the client and container should be protected"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes descriptions&#xD;&#xA;A description for the user data constraint."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="transportGuarantee" eType="#//TransportGuaranteeType"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The transport-guarantee element specifies that the communication between client and server should be NONE, INTEGRAL, or CONFIDENTIAL. NONE means that the application does not require any&#xD;&#xA;transport guarantees. A value of INTEGRAL means that the application requires that the data sent between the client and server be sent in such a way that it can't be changed in transit. CONFIDENTIAL means that the application requires that the data be transmitted in a fashion that prevents other entities from observing the contents of the transmission. In most cases, the presence of the INTEGRAL or CONFIDENTIAL flag will indicate that the use of SSL is required."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="secConstraint" eType="#//SecurityConstraint"
        transient="true" eOpposite="#//SecurityConstraint/userDataConstraint"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="descriptions" upperBound="-1"
        eType="ecore:EClass common.ecore#//Description" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LoginConfig" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The login-config element is used to configure the authentication method that should be used, the realm name that should be used for this application, and the attributes that are needed by the form login&#xD;&#xA;mechanism."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="authMethod" eType="#//AuthMethodKind"
        unsettable="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4  deprecated, becomes initParamValues&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;The auth-method element is used to configure the authentication mechanism for the web application. As a prerequisite to gaining access to any web resources which are protected by an authorization constraint, a user must have authenticated using the configured mechanism. Legal values for this element are &quot;BASIC&quot;, &quot;DIGEST&quot;, &quot;FORM&quot;, or &quot;CLIENT-CERT&quot;."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="realmName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The realm name element specifies the realm name to use in HTTP Basic authorization"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="authorizationMethod" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="webApp" eType="#//WebApp"
        transient="true" eOpposite="#//WebApp/loginConfig"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="formLoginConfig" eType="#//FormLoginConfig"
        containment="true" eOpposite="#//FormLoginConfig/loginConfig"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FormLoginConfig" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The form-login-config element specifies the login and error pages that should be used in form based login. If form based authentication is not used, these elements are ignored."/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="formLoginPage" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The form-login-page element defines the location in the web app where the page that can be used for login can be found"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="formErrorPage" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The form-error-page element defines the location in the web app where the error page that is displayed when login is not successful can be found"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="loginConfig" eType="#//LoginConfig"
        transient="true" eOpposite="#//LoginConfig/formLoginConfig"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="InitParam" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="@version J2EE1.4 deprecated&#xD;&#xA;The init-param element contains a name/value pair as an initialization param of the servlet"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="paramName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated&#xD;&#xA;"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="paramValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@deprecated"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="ResAuthServletType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="CONTAINER=0&#xD;&#xA;SERVLET=1&#xD;&#xA;"/>
    </eAnnotations>
    <eLiterals name="CONTAINER"/>
    <eLiterals name="SERVLET" value="1"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="WebType" abstract="true" eSuperTypes="common.ecore#//J2EEEObject"/>
  <eClassifiers xsi:type="ecore:EClass" name="ServletType" eSuperTypes="#//WebType">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="className" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="JSPType" eSuperTypes="#//WebType">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="jspFile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The jsp-file element contains the full path to a JSP file within the web application.&#xD;&#xA;"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="URLPatternType" eSuperTypes="common.ecore#//J2EEEObject">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="urlPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="resCollection" eType="#//WebResourceCollection"
        transient="true" eOpposite="#//WebResourceCollection/URLs"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="HTTPMethodTypeEnum">
    <eLiterals name="GET">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The http-method contains an HTTP method (GET | POST |...)"/>
      </eAnnotations>
    </eLiterals>
    <eLiterals name="POST" value="1"/>
    <eLiterals name="PUT" value="2"/>
    <eLiterals name="DELETE" value="3"/>
    <eLiterals name="HEAD" value="4"/>
    <eLiterals name="OPTIONS" value="5"/>
    <eLiterals name="TRACE" value="6"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="RoleNameType" eSuperTypes="common.ecore#//J2EEEObject">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="roleName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="WelcomeFile" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="The welcome-file element contains file name to use as a default welcome file, such as index.html&#xD;&#xA;"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="welcomeFile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="fileList" eType="#//WelcomeFileList"
        transient="true" eOpposite="#//WelcomeFileList/file"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="TransportGuaranteeType">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="NONE=1&#xD;&#xA;INTEGRAL=2&#xD;&#xA;CONFIDENTIAL=3"/>
    </eAnnotations>
    <eLiterals name="NONE"/>
    <eLiterals name="INTEGRAL" value="1"/>
    <eLiterals name="CONFIDENTIAL" value="2"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ExceptionTypeErrorPage" eSuperTypes="#//ErrorPage">
    <eStructuralFeatures xsi:type="ecore:EReference" name="exceptionType" lowerBound="1"
        eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//JavaClass">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The exception type contains a fully qualified class name of a Java exception type."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ErrorCodeErrorPage" eSuperTypes="#//ErrorPage">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="errorCode" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The error-code contains an HTTP error code, ex: 404&#xD;&#xA;"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="FilterMapping" eSuperTypes="common.ecore#//J2EEEObject">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Declaration of the filter mappings in this web application. The container uses the filter-mapping declarations to decide which filters to apply to a request, and in what order. The container matches the request URI to a Servlet in the normal way. To determine which filters to apply it matches filter-mapping declarations either on servlet-name, or on url-pattern for each filter-mapping element, depending on which style is used. The order in which filters are invoked is the order in which filter-mapping declarations that match a request URI for a servlet appear in the list of filter-mapping elements.The filter-name value must be the value of the &lt;filtername> sub-elements of one of the &lt;filter> declarations in the deployment descriptor.&#xD;&#xA;&#xD;&#xA;@invariant The filter-name value must be the value of the Filter::name of one of the Filter declarations in the deployment descriptor.&#xD;&#xA;"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="urlPattern" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The url-pattern element contains the url pattern of the mapping. Must follow the rules specified in Section 10 of the Servlet API Specification."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dispatcherType" upperBound="4"
        eType="#//DispatcherType"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="filter" lowerBound="1"
        eType="#//Filter">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The filter being mapped"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="servlet" eType="#//Servlet">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="An optional servlet that is mapped by a filter mapping.  servletName is used to resolve the servlet reference."/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="Filter" eSuperTypes="common.ecore#//CompatibilityDescriptionGroup">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Declares a filter in the web application application. The filter is mapped to either a servlet or a URL pattern in the filter-mapping element, using the filter-name value to reference. Filters can access the initialization parameters declared in the deployment descriptor at runtime via the FilterConfig interface.&#xD;&#xA;"/>
    </eAnnotations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The logical name of the filter. This name is used to map the filter."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="initParams" upperBound="-1"
        eType="#//InitParam" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4 deprecated, becomes initParamValues&#xD;&#xA;The init-params contain a name/value pairs as initialization params for the filter&#xD;&#xA;"/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="filterClass" lowerBound="1"
        eType="ecore:EClass ../../org.eclipse.jem/model/java.ecore#//JavaClass">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="The fully qualified classname of the filter."/>
      </eAnnotations>
    </eStructuralFeatures>
    <eStructuralFeatures xsi:type="ecore:EReference" name="initParamValues" upperBound="-1"
        eType="ecore:EClass common.ecore#//ParamValue" containment="true">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="@version J2EE1.4&#xD;&#xA;The init-param element contains a name/value pair as&#xD;&#xA;        an initialization param of a servlet filter"/>
      </eAnnotations>
    </eStructuralFeatures>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="DispatcherType">
    <eLiterals name="FORWARD"/>
    <eLiterals name="INCLUDE" value="1"/>
    <eLiterals name="REQUEST" value="2"/>
    <eLiterals name="ERROR" value="3"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LocalEncodingMappingList" eSuperTypes="common.ecore#//J2EEEObject">
    <eStructuralFeatures xsi:type="ecore:EReference" name="localEncodingMappings"
        lowerBound="1" upperBound="-1" eType="#//LocalEncodingMapping" containment="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="LocalEncodingMapping" eSuperTypes="common.ecore#//J2EEEObject">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="locale" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="encoding" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="HTTPMethodType" eSuperTypes="common.ecore#//J2EEEObject">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="httpMethod" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EEnum" name="AuthMethodKind">
    <eLiterals name="UNSPECIFIED"/>
    <eLiterals name="BASIC" value="1"/>
    <eLiterals name="DIGEST" value="2"/>
    <eLiterals name="FORM" value="3"/>
    <eLiterals name="CLIENT_CERT" value="4"/>
  </eClassifiers>
</ecore:EPackage>
