<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.
-->

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">

  <display-name>Apache OpenAZ</display-name>
  <description></description>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>


	<!-- Policy Engine PAP Administration -->
	<servlet>
		<servlet-name>PePapAdmin</servlet-name>

		<!-- <servlet-class>com.vaadin.server.VaadinServlet</servlet-class> -->
		<servlet-class>org.apache.openaz.xacml.admin.XacmlAdminServlet</servlet-class>

		<init-param>
			<description>Vaadin UI Class: XacmlAdminUI</description>
			<param-name>UI</param-name>
			<param-value>org.apache.openaz.xacml.admin.XacmlAdminUI</param-value>
		</init-param>

		<init-param>
			<description>The location of the properties file holding configuration information.</description>
			<param-name>XACML_PROPERTIES_NAME</param-name>
			<param-value>/opt/app/xacml/etc/xacml.admin.properties</param-value>
		</init-param>

	</servlet>

	<servlet-mapping>
		<servlet-name>PePapAdmin</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
</web-app>
