<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
 * $Id$
 *
 * 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.
 */
-->
<project version="4" relativePaths="false">
    <component name="RunManager">
        <activeType name="JUnit"/>
        <configuration selected="false" default="true" type="JUnit" factoryName="JUnit">
            <module name=""/>
            <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/>
            <option name="ALTERNATIVE_JRE_PATH"/>
            <option name="PACKAGE_NAME"/>
            <option name="MAIN_CLASS_NAME"/>
            <option name="METHOD_NAME"/>
            <option name="TEST_OBJECT" value="class"/>
            <option name="VM_PARAMETERS"/>
            <option name="PARAMETERS"/>
            <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$"/>
            <option name="ADDITIONAL_CLASS_PATH"/>
            <option name="TEST_SEARCH_SCOPE">
                <value defaultName="wholeProject"/>
            </option>
        </configuration>
        <configuration selected="false" default="true" type="Remote" factoryName="Remote">
            <option name="USE_SOCKET_TRANSPORT" value="true"/>
            <option name="SERVER_MODE" value="false"/>
            <option name="SHMEM_ADDRESS" value="javadebug"/>
            <option name="HOST" value="localhost"/>
            <option name="PORT" value="5005"/>
        </configuration>
        <configuration selected="false" default="true" type="Application" factoryName="Application">
            <option name="MAIN_CLASS_NAME"/>
            <option name="VM_PARAMETERS"/>
            <option name="PROGRAM_PARAMETERS"/>
            <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$"/>
            <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/>
            <option name="ALTERNATIVE_JRE_PATH"/>
            <module name=""/>
        </configuration>
        <configuration selected="false" default="true" type="Applet" factoryName="Applet">
            <module name=""/>
            <option name="MAIN_CLASS_NAME"/>
            <option name="HTML_FILE_NAME"/>
            <option name="HTML_USED" value="false"/>
            <option name="WIDTH" value="400"/>
            <option name="HEIGHT" value="300"/>
            <option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy"/>
            <option name="VM_PARAMETERS"/>
            <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/>
            <option name="ALTERNATIVE_JRE_PATH"/>
        </configuration>
        <configuration selected="true" default="false" name="Struts Core Tests" type="JUnit" factoryName="JUnit">
            <module name="struts2-core"/>
            <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/>
            <option name="ALTERNATIVE_JRE_PATH" value=""/>
            <option name="PACKAGE_NAME" value="org.apache.struts2"/>
            <option name="MAIN_CLASS_NAME" value=""/>
            <option name="METHOD_NAME" value=""/>
            <option name="TEST_OBJECT" value="package"/>
            <option name="VM_PARAMETERS" value=""/>
            <option name="PARAMETERS" value=""/>
            <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$"/>
            <option name="ADDITIONAL_CLASS_PATH"/>
            <option name="TEST_SEARCH_SCOPE">
                <value defaultName="singleModule"/>
            </option>
            <RunnerSettings RunnerId="Run"/>
            <ConfigurationWrapper RunnerId="Run"/>
        </configuration>
        <configuration selected="true" default="false" name="Struts Showcase" type="Application"
                       factoryName="Application">
            <option name="MAIN_CLASS_NAME" value="org.apache.struts2.Main"/>
            <option name="VM_PARAMETERS" value=""/>
            <option name="PROGRAM_PARAMETERS" value="quickstart"/>
            <option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$/apps/showcase"/>
            <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false"/>
            <option name="ALTERNATIVE_JRE_PATH" value=""/>
            <module name="struts2-showcase"/>
        </configuration>
    </component>
</project>

