<?xml version="1.0" encoding="UTF-8"?><!--
  ~ 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 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/maven-v4_0_0.xsd">
  <parent>
    <artifactId>continuum-parent</artifactId>
    <groupId>org.apache.maven.continuum</groupId>
    <version>1.1-beta-1</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>continuum-plexus-application</artifactId>
  <packaging>plexus-application</packaging>
  <name>Continuum Application</name>
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.plexus</groupId>
        <artifactId>plexus-appserver-maven-plugin</artifactId>
        <version>2.0-alpha-8</version>
        <extensions>true</extensions>
        <configuration>
          <applicationConfiguration>src/conf/application.xml</applicationConfiguration>
          <configurationsDirectory>src/conf</configurationsDirectory>
          <configurationProperties>src/plexus.properties</configurationProperties>
          <applicationName>continuum</applicationName>
          <runtimeConfiguration>src/conf/plexus.xml</runtimeConfiguration>
          <runtimeConfigurationProperties>src/plexus.properties</runtimeConfigurationProperties>
          <runtimePath>target/plexus-continuum-runtime</runtimePath>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <dependencies>
    <dependency>
      <groupId>org.apache.maven.continuum</groupId>
      <artifactId>continuum-webapp</artifactId>
      <type>war</type>
    </dependency>
  </dependencies>
</project>
