<?xml version="1.0" encoding="UTF-8"?>
<!--
/*
 * Copyright 2001-2005 The Apache Software Foundation.
 *
 * 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.
 */
 -->
<module relativePaths="false" type="JAVA_MODULE" version="4">
  <!-- If it's a war project:
  <component name="WebModuleProperties">
    <containerElement type="module" name="${dep.artifactId}">
      <attribute name="method" value="1" />
      <attribute name="URI" value="/WEB-INF/classes" />
    </containerElement>
    <containerElement type="library" level="module" name="${dep.artifactId}">
      <attribute name="method" value="1" />
      <attribute name="URI" value="/WEB-INF/lib/${dep.systemPath.name}" />
    </containerElement>
    <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}/WEB-INF/web.xml" version="" />
    <webroots>
      <root url="file://$MODULE_DIR$/${pom.build.warSourceDirectory}" relative="/" />
    </webroots>
  </component>
  -->
  <component name="ModuleRootManager" />
  <component name="NewModuleRootManager" inherit-compiler-output="false">
    <output url="file://$MODULE_DIR$/target/classes" />
    <exclude-output />
    <output-test url="file://$MODULE_DIR$/target/test-classes" />
    <content url="file://$MODULE_DIR$">
      <sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
      <excludeFolder url="file://$MODULE_DIR$/target" />
    </content>
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntryProperties />
  </component>
</module>

