<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
-->
<!-- Default Forrest locationmap for skinconf files -->
<locationmap xmlns="http://apache.org/forrest/locationmap/1.0">
  <components>
    <matchers default="lm">
      <matcher
          name="lm"
          src="org.apache.forrest.locationmap.WildcardLocationMapHintMatcher"/>
    </matchers>
    <selectors default="exists">
      <selector name="exists" logger="sitemap.selector.exists"
          src="org.apache.forrest.sourceexists.SourceExistsSelector" />
    </selectors>
  </components>
  <locator>
    <match pattern="skin.js.**">
      <select>
        <location src="{properties:skins-dir}{forrest:forrest.skin}/scripts/{1}.js" />
        <location src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/scripts/{1}.js" />
        <location src="{forrest:forrest.context}/skins/common/scripts/{1}.js" />
      </select>
    </match>
    <match pattern="skin.css.xslt.**">
      <select>
        <location src="{properties:skins-dir}{forrest:forrest.skin}/css/{1}.css.xslt" />
        <location src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/css/{1}.css.xslt" />
        <location src="{forrest:forrest.context}/skins/common/css/{1}.css.xslt" />
      </select>
    </match>
    <match pattern="skin.css.**">
      <select>
        <location src="{properties:skins-dir}{forrest:forrest.skin}/css/{1}.css" />
        <location src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/css/{1}.css" />
        <location src="{forrest:forrest.context}/skins/common/css/{1}.css" />
      </select>
    </match>
    <match pattern="skin.cssmap.**">
      <select>
        <location src="{properties:skins-dir}{forrest:forrest.skin}/css/{1}.css.map" />
        <location src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/css/{1}.css.map" />
        <location src="{forrest:forrest.context}/skins/common/css/{1}.css.map" />
      </select>
    </match>
    <match pattern="skin.fonts.**">
      <select>
        <location src="{properties:skins-dir}{forrest:forrest.skin}/fonts/{1}" />
        <location src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/fonts/{1}" />
        <location src="{forrest:forrest.context}/skins/common/fonts/{1}" />
      </select>
    </match>
    <match pattern="skin.images.corner.**.*">
      <select>
        <location src="{properties:skins-dir}{forrest:forrest.skin}/{1}/{2}.svg.xslt"/>
        <location src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/{1}/{2}.svg.xslt"/>
        <location src="{forrest:forrest.context}/skins/common/{1}/{2}.svg.xslt"/>
      </select>
    </match>
    <match pattern="skin.images.**.*">
      <select>
        <location src="{properties:skins-dir}{forrest:forrest.skin}/images/{1}.{2}" />
        <location src="{forrest:forrest.context}/skins/{forrest:forrest.skin}/images/{1}.{2}" />
        <location src="{forrest:forrest.context}/skins/common/images/{1}.{2}" />
      </select>
    </match>
  </locator>
</locationmap>
