<!--
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.
-->

<Context path="/fmprod" debug="5"
  reloadable="true" crossContext="true">

  <Valve className="org.apache.catalina.valves.AccessLogValve"
    prefix="fmprod_access_log." suffix=".txt" pattern="common" />

  <Parameter name="filemgr.url" value="[FILEMGR_URL]" override="false" />
  <Parameter name="filemgr.rdfconf.file" value="[FMPROD_HOME]/rdfconf.xml" override="false"/>
  <Parameter name="filemgr.rssconf.file" value="[FMPROD_HOME]/rssconf.xml" override="false"/>
  <Parameter name="filemgr.working.dir" value="/tmp" override="false" />

</Context>
