<?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.
-->
<config>

  <luceneMatchVersion>${tests.luceneMatchVersion:LUCENE_CURRENT}</luceneMatchVersion>
  <jmx />

  <dataDir>${solr.data.dir:}</dataDir>

  <directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.RAMDirectoryFactory}"/>

  <updateHandler class="solr.DirectUpdateHandler2">
  </updateHandler>

  <requestHandler name="/update"     class="solr.XmlUpdateRequestHandler" />

  <!-- test MCF Security Filter settings -->
  <searchComponent name="mcf-param" class="org.apache.solr.mcf.ManifoldCFSearchComponent" >
    <str name="AuthorityServiceBaseURL">http://localhost:8346/mcf-as</str>
    <int name="SocketTimeOut">3000</int>
    <str name="AllowAttributePrefix">aap-</str>
    <str name="DenyAttributePrefix">dap-</str>
  </searchComponent>

  <searchComponent name="mcf" class="org.apache.solr.mcf.ManifoldCFSearchComponent" >
    <str name="AuthorityServiceBaseURL">http://localhost:8346/mcf-as</str>
  </searchComponent>

  <requestHandler name="/mcf" class="solr.SearchHandler" startup="lazy">
    <lst name="invariants">
      <bool name="mcf">true</bool>
    </lst>
    <lst name="defaults">
      <str name="echoParams">all</str>
    </lst>
    <arr name="components">
      <str>query</str>
      <str>mcf</str>
    </arr>
  </requestHandler>

</config>
