<?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.
-->

<xconf xpath="/cocoon" unless="/cocoon/policy-managers">
  <policy-managers>
    <component-instance name="document"
      class="org.apache.lenya.cms.ac.DocumentPolicyManagerWrapper"
      logger="lenya.ac.policymanager.document"/>
    <component-instance name="file"
      class="org.apache.lenya.ac.file.FilePolicyManager"
      logger="lenya.ac.policymanager.file"/>
    <component-instance name="sitemap"
      class="org.apache.lenya.cms.ac.SitemapPolicyManager"
      logger="lenya.ac.policymanager.sitemap"/>
  </policy-managers>
  
</xconf>
