<!--
    Copyright (c) 2009, 2019 Xored Software Inc and others.
    All rights reserved. This program and the accompanying materials
    are made available under the terms of the Eclipse Public License v1.0
    which accompanies this distribution, and is available at
    http://www.eclipse.org/legal/epl-v10.html
     
    Contributors:
    	Xored Software Inc - initial API and implementation and/or initial documentation
 -->
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<modelVersion>4.0.0</modelVersion>
	
	<parent>
    	<groupId>org.eclipse.rcptt</groupId>
  		<artifactId>mirroring</artifactId>
    	<version>2.4.2-SNAPSHOT</version>
    	<relativePath>../releng/mirroring/pom.xml</relativePath>
  	</parent>

	<groupId>org.eclipse.rcptt.external.dependencies</groupId>
	<artifactId>dependencies</artifactId>
	<packaging>pom</packaging>

	<modules>
		<module>bundles</module>
		<module>features</module>
	</modules>

</project>
