<project>
  <parent>
    <artifactId>specs</artifactId>
    <groupId>org.apache.geronimo.specs</groupId>
    <version>1.1</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>geronimo-servlet_2.4_spec</artifactId>
  <name>Servlet</name>
  <version>${geronimoSpecsServletVersion}</version>
  
  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-spec-servlet/</connection>
    <developerConnection>scm:svn:http://svn.apache.org/repos/asf/geronimo/specs/trunk/geronimo-spec-servlet/</developerConnection>
    <url>http://svn.apache.org/viewcvs.cgi/geronimo/specs/trunk/geronimo-spec-servlet/</url>
  </scm>

  <build>
    <resources>
      <resource>
        <targetPath>javax/servlet</targetPath>
        <directory>src/main/java/javax/servlet</directory>
        <includes>
          <include>**/*.properties</include>
        </includes>
      </resource>
      <resource>
        <targetPath>javax/servlet/resources</targetPath>
        <directory>src/main/schema</directory>
        <includes>
          <include>*.dtd</include>
          <include>*.xsd</include>
        </includes>
      </resource>
    </resources>
  </build>
</project>
