<!--
    Copyright (c) 2009, 2016 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.0-SNAPSHOT</version>
    	<relativePath>../releng/mirroring/pom.xml</relativePath>
  	</parent>

	<groupId>org.eclipse.rcptt.external.dependencies</groupId>
	<artifactId>dependencies</artifactId>
	<version>2.4.0-SNAPSHOT</version>
	<packaging>pom</packaging>

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

</project>
