<?xml version="1.0"?>
<!--
  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.
-->
<!-- $Id$ -->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  <!--
  -->
  <map:components>
    <map:serializers default="html">
      <map:serializer name="rss" mime-type="application/rss+xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
    </map:serializers>
  </map:components>

  <map:pipelines>
    
    <!-- This is used by xinclude statements -->
    <map:pipeline>
      <map:match type="regexp" pattern="^(.*?)([^/]*)subproject-news-document.xml">
        <map:generate src="{properties:content.xdocs}{1}news.xml"/>
        <map:transform src="resources/stylesheets/news2document.xsl" >
          <map:parameter name="path" value="{1}{2}"/>
        </map:transform>
        <map:serialize type="xml"/>
      </map:match>
      <map:match type="regexp" pattern="^(.*?)([^/]*)subproject-news-feed.rss">
        <map:generate src="{properties:content.xdocs}{1}news.xml"/>
        <map:transform src="resources/stylesheets/news2rss.xsl" >
          <map:parameter name="path" value="{1}{2}"/>
          <map:parameter name="project-name" value="{properties:projectInfo.project.fullname}"/>
          <map:parameter name="project-url" value="{properties:projectInfo.project.url}"/>
        </map:transform>
        <map:serialize type="rss"/>
      </map:match>
    </map:pipeline>
     
  </map:pipelines>
</map:sitemap>
