<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.avaje</groupId>
    <artifactId>avaje-javaparent</artifactId>
    <version>1.2</version>
  </parent>

  <groupId>org.avaje.jetty</groupId>
  <artifactId>runnable-war</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>

  <properties>
   <jetty.version>9.1.4.v20140401</jetty.version>
   <logback.version>1.1.2</logback.version>
   <slf4j.version>1.7.7</slf4j.version>
  </properties>

  <description>
   Provides a parent pom that builds runnable war using jetty.

   This uses the "maven overlay approach" to put jetty, logging, servlet api and avaje-jetty-runner
   into the root path of the war and a manifest entry to point to the RunWar main method. The jars 
   included in the overlays provide a set of system classes that boot and run the war.
  </description>

  <scm>
    <connection>scm:git:https://github.com/avaje-common/avaje-runnable-war.git</connection>
    <developerConnection>scm:git:https://github.com/avaje-common/avaje-runnable-war.git</developerConnection>
    <url>https://github.com/avaje-common/avaje-runnable-war.git</url>
  </scm>

  <dependencies>

    <!-- avaje jetty runner -->
    <dependency>
      <groupId>org.avaje.jetty</groupId>
      <artifactId>avaje-jetty-runner</artifactId>
      <version>(1.0,2]</version>
    </dependency>

    <!-- servlet api -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>

    <!-- logging api -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <version>${slf4j.version}</version>
    </dependency>

    <!-- logback logging implementation -->
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>${logback.version}</version>
    </dependency>

    <!-- jetty -->
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-webapp</artifactId>
      <version>${jetty.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-xml</artifactId>
      <version>${jetty.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-servlet</artifactId>
      <version>${jetty.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <version>${jetty.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-security</artifactId>
      <version>${jetty.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-http</artifactId>
      <version>${jetty.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-io</artifactId>
      <version>${jetty.version}</version>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-util</artifactId>
      <version>${jetty.version}</version>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <archive>
            <manifest>
              <mainClass>org.avaje.jettyrunner.RunWar</mainClass>
            </manifest>
          </archive>
          <packagingExcludes>WEB-INF/lib/jetty-*.jar,WEB-INF/lib/avaje-jetty-runner-*.jar,WEB-INF/lib/logback-*.jar,WEB-INF/lib/slf4j-api-*.jar,WEB-INF/lib/jcl-*.jar,</packagingExcludes>
          <overlays>
	    <!-- servlet api -->
            <overlay>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <type>jar</type>
            </overlay>

	    <!-- avaje jetty runner -->
            <overlay>
              <groupId>org.avaje.jetty</groupId>
              <artifactId>avaje-jetty-runner</artifactId>
              <type>jar</type>
            </overlay>

	    <!-- logging api and logback -->
	    <overlay>
	      <groupId>org.slf4j</groupId>
	      <artifactId>slf4j-api</artifactId>
              <type>jar</type>
	    </overlay>
	    <overlay>
	      <groupId>org.slf4j</groupId>
	      <artifactId>jcl-over-slf4j</artifactId>
              <type>jar</type>
	    </overlay>
	    <overlay>
	      <groupId>ch.qos.logback</groupId>
	      <artifactId>logback-classic</artifactId>
              <type>jar</type>
	    </overlay>
	    <overlay>
	      <groupId>ch.qos.logback</groupId>
	      <artifactId>logback-core</artifactId>
              <type>jar</type>
	    </overlay>

	    <!-- jetty -->
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-webapp</artifactId>
              <type>jar</type>
            </overlay>
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-xml</artifactId>
              <type>jar</type>
            </overlay>
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-servlet</artifactId>
              <type>jar</type>
            </overlay>
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-security</artifactId>
              <type>jar</type>
            </overlay>
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-server</artifactId>
              <type>jar</type>
            </overlay>
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-io</artifactId>
              <type>jar</type>
            </overlay>
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-http</artifactId>
              <type>jar</type>
            </overlay>
            <overlay>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-util</artifactId>
              <type>jar</type>
            </overlay>
          </overlays>
        </configuration>
      </plugin>
    </plugins>
  </build>


</project>
