<?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.
-->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  <map:components>
    <map:serializers default="html">
      <map:serializer mime-type="image/png"
          name="svg2png"
          src="org.apache.cocoon.serialization.SVGSerializer">
        <parameter name="gamma" type="float" value="0"/>
      </map:serializer>
    </map:serializers>
    <map:transformers default="xslt" />
  <map:readers default="resource">
    <map:reader name="image" 
      src="org.apache.forrest.reading.PersistentImageReader"
      logger="core.modules.mapper.lm"
      pool-max="32"/>
  </map:readers>
  
  </map:components>

  <map:pipelines>
    <map:pipeline internal-only="false">
      <map:match pattern="gallery/**/button/*">
        <map:generate src="resources/images/button.svg" />
        <map:transform src="resources/stylesheets/button.xsl">
          <map:parameter name="use-request-parameters" value="true" />
          <map:parameter name="label" value="{2}" />
        </map:transform>
        <map:serialize type="svg2png" />
      </map:match>

      <map:match pattern="gallery/**.thumb.jpg">
        <map:read type="image" src="{lm:project.images/gallery/{1}.jpg}">
          <map:parameter name="width" value="150"/>
          <map:parameter name="variant" value="thumb"/>
          <map:parameter name="persistentStoreLocation" value="{properties:content.xdocs}images/"/>
        </map:read>
      </map:match>

      <map:match pattern="gallery/**.small.jpg">
        <map:read type="image" src="{lm:project.images/gallery/{1}.jpg}">
          <map:parameter name="width" value="450"/>
          <map:parameter name="variant" value="small"/>
          <map:parameter name="persistentStoreLocation" value="{properties:content.xdocs}images/"/>
        </map:read>
      </map:match>

      <map:match pattern="gallery/**.jpg">
        <map:read src="{lm:project.images/{0}}" mime-type="image/jpg" />
      </map:match>

      <map:match pattern="gallery/**.JPG">
        <map:read src="{lm:project.images/{0}}" mime-type="image/jpg" />
      </map:match>
      
      <map:match pattern="gallery/**/*arrow.png">
        <map:generate src="resources/images/{2}arrow.svg" />
        <map:serialize type="svg2png" />
      </map:match>
    </map:pipeline>
  </map:pipelines>

</map:sitemap>
