<?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.incubator</groupId>
		<artifactId>isis-incubator</artifactId>
		<version>2.0.0-M9</version>
		<relativePath>../../../pom.xml</relativePath>
	</parent>

	<groupId>org.apache.isis.incubator.extensions</groupId>
	<artifactId>isis-extensions-commandreplay</artifactId>
	<name>Apache Isis Ext - Command Replay</name>
	<description>Replays commands to secondary system</description>

	<packaging>pom</packaging>

	<dependencyManagement>
		<dependencies>

			<dependency>
				<groupId>org.apache.isis.incubator.extensions</groupId>
				<artifactId>isis-extensions-commandreplay-primary</artifactId>
				<version>2.0.0-M9</version>
			</dependency>
			<dependency>
				<groupId>org.apache.isis.incubator.extensions</groupId>
				<artifactId>isis-extensions-commandreplay-secondary</artifactId>
				<version>2.0.0-M9</version>
			</dependency>


			<dependency>
				<groupId>org.apache.isis.testing</groupId>
				<artifactId>isis-testing</artifactId>
				<version>2.0.0-M9</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>

			<dependency>
				<groupId>org.apache.isis.extensions</groupId>
				<artifactId>isis-extensions</artifactId>
				<version>2.0.0-M9</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>

			<dependency>
		    	<groupId>org.apache.isis.viewer</groupId>
            	<artifactId>isis-viewer-restfulobjects-client</artifactId>
        		<version>2.0.0-M9</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<modules>
		<module>primary</module>
		<module>secondary</module>
	</modules>

</project>
