<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2014 Open Networking Laboratory
  ~
  ~ 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.
  -->
<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="ONOS" version="2.5">
    <display-name>ONOS REST API v1.0</display-name>

    <servlet>
        <servlet-name>JAX-RS Service</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.resourceConfigClass</param-name>
            <param-value>com.sun.jersey.api.core.ClassNamesResourceConfig</param-value>
        </init-param>
        <init-param>
            <param-name>com.sun.jersey.config.property.classnames</param-name>
            <param-value>
                org.onosproject.rest.exceptions.EntityNotFoundMapper,
                org.onosproject.rest.exceptions.ServiceNotFoundMapper,
                org.onosproject.rest.exceptions.NotFoundMapper,
                org.onosproject.rest.exceptions.ServerErrorMapper,
                org.onosproject.rest.JsonBodyWriter,

                org.onosproject.rest.ApplicationsWebResource,
                org.onosproject.rest.DevicesWebResource,
                org.onosproject.rest.LinksWebResource,
                org.onosproject.rest.HostsWebResource,
                org.onosproject.rest.IntentsWebResource,
                org.onosproject.rest.FlowsWebResource,
                org.onosproject.rest.TopologyWebResource,
                org.onosproject.rest.ConfigResource
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>JAX-RS Service</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>
