<!--
  Licensed 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. See accompanying LICENSE file.
-->
<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="ExampleServer1" type="Application" factoryName="Application" nameIsGenerated="true">
    <option name="MAIN_CLASS_NAME" value="org.apache.ratis.examples.debug.server.Server" />
    <module name="ratis-examples" />
    <!-- See ratis-examples/src/main/resources/conf.properties raft.server.address.list-->
    <option name="PROGRAM_PARAMETERS" value="127.0.0.1:10024" />
    <extension name="coverage">
      <pattern>
        <option name="PATTERN" value="org.apache.ratis.examples.debug.server.*" />
        <option name="ENABLED" value="true" />
      </pattern>
    </extension>
    <method v="2">
      <option name="Make" enabled="true" />
    </method>
  </configuration>
</component>