<?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>
  <parent>
    <groupId>org.apache.jena</groupId>
    <artifactId>jena</artifactId>
    <version>3.9.0</version>
    <relativePath>..</relativePath>
  </parent> 

  <name>Apache Jena - Fuseki - A SPARQL 1.1 Server</name>
  <artifactId>jena-fuseki</artifactId>
  <version>3.9.0</version>

  <description>Fuseki is a SPARQL 1.1 Server which provides the SPARQL query, 
  SPARQL update and SPARQL graph store protocols.
  </description>

  <packaging>pom</packaging>
  
  <url>http://jena.apache.org/</url>

  <organization>
    <name>Apache Jena</name>
    <url>http://jena.apache.org/</url>
  </organization>

  <licenses>
    <license>
      <name>Apache 2.0 License</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0</url>
    </license>
  </licenses>

  <properties>
    <ver.jetty>9.4.12.v20180830</ver.jetty>
    <ver.shiro>1.2.6</ver.shiro>
    <maven.build.timestamp.format>yyyy-MM-dd'T'HH:mm:ssZ</maven.build.timestamp.format>
    <build.time.xsd>${maven.build.timestamp}</build.time.xsd>
    <automatic.module.name>org.apache.jena.fuseki2</automatic.module.name>  
  </properties>

  <modules>
    <module>jena-fuseki-core</module>
    <module>jena-fuseki-access</module>

    <module>jena-fuseki-main</module>
    <module>jena-fuseki-server</module>

    <module>jena-fuseki-webapp</module>
    <module>jena-fuseki-war</module>
    <module>jena-fuseki-fulljar</module>

    <module>apache-jena-fuseki</module>
  </modules>
  
</project>
