<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="restsql" version="2.5">
	<display-name>restsql</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
	<filter>
		<filter-name>jersey</filter-name>
		<filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
		<init-param>
			<param-name>javax.ws.rs.Application</param-name>
			<param-value>org.restsql.service.RestSqlApplication</param-value>
		</init-param>
		<init-param>
			<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
			<param-value>com.sun.jersey.api.container.filter.PostReplaceFilter</param-value>
		</init-param>
		<init-param>
			<param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
			<param-value>.*\.html|.*\.xsd|.*\.xsl|.*\.xml</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>jersey</filter-name>
		<url-pattern>/conf/*</url-pattern>
		<url-pattern>/log/*</url-pattern>
		<url-pattern>/res/*</url-pattern>
		<url-pattern>/tools/*</url-pattern>
		<url-pattern>/wadl/*</url-pattern>
		<dispatcher>REQUEST</dispatcher>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>INCLUDE</dispatcher>
	</filter-mapping>
	
	<listener>
		<listener-class>org.restsql.service.LifecycleListener</listener-class>
	</listener>

	<!-- Performance Monitoring -->
	<listener>
		<listener-class>org.restsql.service.monitoring.HealthCheckServletContextListener</listener-class>
	</listener>
	<listener>
		<listener-class>org.restsql.service.monitoring.MetricsServletContextListener</listener-class>
	</listener>
		
	<servlet>
		<servlet-name>ping</servlet-name>
		<servlet-class>com.codahale.metrics.servlets.PingServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>ping</servlet-name>
		<url-pattern>/monitoring/ping</url-pattern>
	</servlet-mapping>

	<servlet>
		<servlet-name>healthcheck</servlet-name>
		<servlet-class>com.codahale.metrics.servlets.HealthCheckServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>healthcheck</servlet-name>
		<url-pattern>/monitoring/healthcheck</url-pattern>
	</servlet-mapping>

	<servlet>
		<servlet-name>metrics</servlet-name>
		<servlet-class>com.codahale.metrics.servlets.MetricsServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>metrics</servlet-name>
		<url-pattern>/monitoring/metrics</url-pattern>
	</servlet-mapping>

	<servlet>
		<servlet-name>threads</servlet-name>
		<servlet-class>com.codahale.metrics.servlets.ThreadDumpServlet</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>threads</servlet-name>
		<url-pattern>/monitoring/threads</url-pattern>
	</servlet-mapping>

	<!-- Disable RestEasy Deployer package scanning for JBoss AS 6+ -->
	<context-param>
    		<param-name>resteasy.scan</param-name>
    		<param-value>false</param-value>
	</context-param>
	<context-param>
    		<param-name>resteasy.scan.providers</param-name>
    		<param-value>false</param-value>
	</context-param>
	<context-param>
    		<param-name>resteasy.scan.resources</param-name>
    		<param-value>false</param-value>
	</context-param>

	<!-- Configure absolute path to restsql properties file -->
	<context-param>
		<param-name>org.restsql.properties</param-name>
		<param-value>/etc/opt/restsql/restsql.properties</param-value>
	</context-param>

	<!-- Uncomment security-roles, security-constraints and login-config for authentication/authorization -->
	<!--
	<security-role>
	    <role-name>all</role-name>
	</security-role>
	<security-role>
	    <role-name>limited</role-name>
	</security-role>
	<security-role>
	    <role-name>readonly</role-name>
	</security-role>	
	<security-role>
	    <role-name>admin</role-name>
	</security-role>	
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>SQL Resources</web-resource-name>
			<url-pattern>/res/*</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<role-name>all</role-name>
			<role-name>limited</role-name>
			<role-name>readonly</role-name>
		</auth-constraint>
		<user-data-constraint>
			<transport-guarantee>NONE</transport-guarantee>
		</user-data-constraint>
	</security-constraint>
	<security-constraint>
		<web-resource-collection>
			<web-resource-name>Admin Resources</web-resource-name>
			<url-pattern>/conf/*</url-pattern>
			<url-pattern>/log/*</url-pattern>
			<url-pattern>/monitoring/*</url-pattern>
			<url-pattern>/tools/*</url-pattern>
		</web-resource-collection>
		<auth-constraint>
			<role-name>admin</role-name>
		</auth-constraint>
		<user-data-constraint>
			<transport-guarantee>NONE</transport-guarantee>
		</user-data-constraint>
	</security-constraint>
	<login-config>
		<auth-method>BASIC</auth-method>
		<realm-name>UserDatabase</realm-name>
	</login-config>
	-->
</web-app>