<!--
   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.    
-->
<ivysettings>
    <caches defaultCacheDir="${ivy.settings.dir}/../cache-fakerepo" useOrigin="false" />
    <settings defaultResolver="fakerepo" checkUpToDate="false" defaultBranch="trunk" />
    <resolvers>
        <filesystem name="fakerepo">
            <ivy pattern="${ivy.settings.dir}/../fakerepo-branch/[organisation]/[module]/[branch]/[revision]/ivy.xml"/>
            <artifact pattern="${ivy.settings.dir}/../fakerepo-branch/[organisation]/[module]/[branch]/[revision]/[type]s/[artifact].[ext]"/>
        </filesystem>
    </resolvers>
</ivysettings>
