<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more contributor
  license agreements.  See the NOTICE.txt 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 version="2.5" 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_2_5.xsd">

  <display-name>CAS Product Server Web Application</display-name>

  <servlet>
    <servlet-name>RSSServlet</servlet-name>
    <servlet-class>
      org.apache.oodt.cas.product.rss.RSSProductServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>RSSTransferServlet</servlet-name>
    <servlet-class>
      org.apache.oodt.cas.product.rss.RSSProductTransferServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>RDFProductServlet</servlet-name>
    <servlet-class>
      org.apache.oodt.cas.product.rdf.RDFProductServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>RDFDatasetServlet</servlet-name>
    <servlet-class>
      org.apache.oodt.cas.product.rdf.RDFDatasetServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>DataDeliveryServlet</servlet-name>
    <servlet-class>
      org.apache.oodt.cas.product.data.DataDeliveryServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>DatasetDeliveryServlet</servlet-name>
    <servlet-class>
      org.apache.oodt.cas.product.data.DatasetDeliveryServlet
    </servlet-class>
  </servlet>

  <servlet>
    <servlet-name>CasProductJaxrsServlet</servlet-name>
    <servlet-class>
       org.apache.oodt.cas.product.jaxrs.servlets.CasProductJaxrsServlet
    </servlet-class>
    <init-param>
      <param-name>jaxrs.serviceClasses</param-name>
      <param-value>
        org.apache.oodt.cas.product.jaxrs.services.CasProductJaxrsService
      </param-value>
    </init-param>
    <init-param>
      <param-name>jaxrs.providers</param-name>
      <param-value>
        org.apache.cxf.jaxrs.provider.json.JSONProvider,
        org.apache.oodt.cas.product.jaxrs.writers.ReferenceFileWriter,
        org.apache.oodt.cas.product.jaxrs.writers.ReferenceZipWriter,
        org.apache.oodt.cas.product.jaxrs.writers.ReferenceRssWriter,
        org.apache.oodt.cas.product.jaxrs.writers.ProductZipWriter,
        org.apache.oodt.cas.product.jaxrs.writers.ProductRssWriter,
        org.apache.oodt.cas.product.jaxrs.writers.DatasetZipWriter,
        org.apache.oodt.cas.product.jaxrs.writers.DatasetRdfWriter,
        org.apache.oodt.cas.product.jaxrs.writers.DatasetRssWriter,
        org.apache.oodt.cas.product.jaxrs.writers.TransfersRssWriter
      </param-value>
    </init-param>
    <init-param>
      <param-name>jaxrs.inInterceptors</param-name>
      <param-value>
        org.apache.oodt.cas.product.jaxrs.filters.BackwardsCompatibleInterceptor
      </param-value>
    </init-param>
    <init-param>
      <param-name>jaxrs.scope</param-name>
      <param-value>prototype</param-value>
    </init-param>
    <init-param>
      <param-name>jaxrs.extensions</param-name>
      <param-value>
        file=application/octet-stream
        json=application/json
        rdf=application/rdf+xml
        rss=application/rss+xml
        xml=application/xml
        zip=application/zip
      </param-value>
    </init-param>
  </servlet>


  <servlet-mapping>
    <servlet-name>RSSServlet</servlet-name>
    <url-pattern>/viewRecent</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>RSSTransferServlet</servlet-name>
    <url-pattern>/viewTransfers</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>RDFProductServlet</servlet-name>
    <url-pattern>/rdf</url-pattern>
  </servlet-mapping>
  
  <servlet-mapping>
      <servlet-name>RDFDatasetServlet</servlet-name>
      <url-pattern>/rdf/dataset</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>DataDeliveryServlet</servlet-name>
    <url-pattern>/data</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>DatasetDeliveryServlet</servlet-name>
    <url-pattern>/dataset</url-pattern>
  </servlet-mapping>

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