<?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>4.9.0</version>
    <relativePath>..</relativePath>
  </parent> 

  <name>Apache Jena - Fuseki - A SPARQL 1.1 Server</name>
  <artifactId>jena-fuseki</artifactId>
  <version>4.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>https://jena.apache.org/</url>

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

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

  <modules>
    <module>jena-fuseki-core</module>
    <module>jena-fuseki-ui</module>
    <!-- Graph access control -->
    <module>jena-fuseki-access</module>

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

    <!-- Fuseki modules for Fuseki main-->
    <!-- ... -->
    <module>jena-fuseki-server</module>
    
    <!-- Fuseki Webapp -->
    <module>jena-fuseki-webapp</module>
    <module>jena-fuseki-war</module>
    <module>jena-fuseki-fulljar</module>

    <!-- Fuseki Dockerfile -->
    <module>jena-fuseki-docker</module>

    <!-- Binary distribution -->
    <module>apache-jena-fuseki</module>
  </modules>
  
</project>
