<?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.isis.valuetypes</groupId>
		<artifactId>isis-valuetypes-markdown</artifactId>
		<version>2.0.0-M8</version>
	</parent>

	<artifactId>isis-valuetypes-markdown-persistence-jpa</artifactId>
	<name>Apache Isis Val - Markdown (persistence jpa)</name>

	<properties>
		<jar-plugin.automaticModuleName>org.apache.isis.valuetypes.markdown.persistence.jpa</jar-plugin.automaticModuleName>
		<git-plugin.propertiesDir>org/apache/isis/valuetypes/markdown/persistence-jpa</git-plugin.propertiesDir>
	</properties>

	<dependencies>

		<dependency>
			<groupId>org.apache.isis.valuetypes</groupId>
			<artifactId>isis-valuetypes-markdown-applib</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.isis.core</groupId>
			<artifactId>isis-core-metamodel</artifactId>
		</dependency>

    </dependencies>

</project>
