<?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">
  <modelVersion>4.0.0</modelVersion>

  <name>Apache Jena - Fuseki WAR File</name>
  <artifactId>jena-fuseki-war</artifactId>

  <parent>
    <groupId>org.apache.jena</groupId>
    <artifactId>jena-fuseki</artifactId>
    <version>2.4.0</version>
    <relativePath>..</relativePath>
  </parent> 

  <packaging>war</packaging>

  <!-- Need if the parent is a snapshot -->
  <repositories>
    <repository>
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>http://repository.apache.org/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
  </repositories>

  <dependencies>

    <dependency>
      <groupId>org.apache.jena</groupId>
      <artifactId>jena-fuseki-core</artifactId>
      <version>${project.version}</version>
    </dependency>

  </dependencies>

  <build>
    
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.4</version>
        <executions> 
          <execution>
            <id>generate-webapp</id>
            <phase>package</phase>
            <goals><goal>war</goal></goals>
          </execution>
        </executions>
        <configuration>
          <warSourceDirectory>../jena-fuseki-core/src/main/webapp</warSourceDirectory>
          <webXml>../jena-fuseki-core/src/main/webapp/WEB-INF/web.xml</webXml>
          <!-- Safe: Don't put in the Jetty dependency nor javax.servlet -->
          <packagingExcludes>WEB-INF/lib/jetty-*,WEB-INF/lib/javax.servlet*</packagingExcludes>
        </configuration>
      </plugin>
    </plugins>

  </build>
  
</project>
