<!--
 * Copyright (c) 2011 PetalsLink
 *  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:
 *      Mickael istria (PetalsLink)
-->
<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.eclipse.gmf-tooling</groupId>
	<artifactId>examples</artifactId>
	<packaging>pom</packaging>

	<parent>
		<groupId>org.eclipse.gmf-tooling</groupId>
		<artifactId>eclipse</artifactId>
		<version>3.0.0-SNAPSHOT</version>
		<relativePath>../</relativePath>
	</parent>

	<modules>
		<module>org.eclipse.gmf.examples</module>
		<module>org.eclipse.gmf.examples.design2d</module>
		<module>org.eclipse.gmf.examples.design2d.notation</module> 
		<!-- module>org.eclipse.gmf.examples.eclipsecon</module>
		<module>org.eclipse.gmf.examples.eclipsecon.diagram</module> 
		<module>org.eclipse.gmf.examples.eclipsecon.diagram.custom</module> 
		<module>org.eclipse.gmf.examples.eclipsecon.library</module> 
		<module>org.eclipse.gmf.examples.eclipsecon.library.diagram</module> 
		<module>org.eclipse.gmf.examples.eclipsecon.library.diagram.custom</module> 
		<module>org.eclipse.gmf.examples.eclipsecon.library.edit</module> 
		<module>org.eclipse.gmf.examples.eclipsecon.library.editor</module> 
		<module>org.eclipse.gmf.examples.eclipsecon.library.notation</module--> 
		<!-- module>org.eclipse.gmf.examples.mindmap</module>
		<module>org.eclipse.gmf.examples.mindmap.edit</module> 
		<module>org.eclipse.gmf.examples.mindmap.diagram</module> 
		<module>org.eclipse.gmf.examples.mindmap.diagram.pure</module> 
		<module>org.eclipse.gmf.examples.mindmap.diagram.custom</module> 
		<module>org.eclipse.gmf.examples.mindmap.lite</module>
		<module>org.eclipse.gmf.examples.mindmap.lite.edit</module> 
		<module>org.eclipse.gmf.examples.mindmap.lite.rcp</module> 
		<module>org.eclipse.gmf.examples.mindmap.rcp.diagram</module--> 
		<!-- module>org.eclipse.gmf.examples.taipan</module>
		<module>org.eclipse.gmf.examples.taipan.edit</module> 
		<module>org.eclipse.gmf.examples.taipan.editor</module>
		<module>org.eclipse.gmf.examples.taipan.editor.rcp</module> 
		<module>org.eclipse.gmf.examples.taipan.gmf.editor</module> 
		<module>org.eclipse.gmf.examples.taipan.gmf.editor.rcp</module> 
		<module>org.eclipse.gmf.examples.taipan.port.diagram</module> 
		<module>org.eclipse.gmf.examples.taipan.port.diagram.rcp</module> 
		<module>org.eclipse.gmf.examples.taipan.ui</module -->
		<module>org.eclipse.gmf.examples.ui.pde</module>
		<!-- module>org.eclipse.gmf.sketch</module> <module>org.eclipse.gmf.sketch.edit</module> 
			<module>org.eclipse.gmf.sketch.editor</module> <module>org.eclipse.gmf.sketch.transformer</module -->
		<module>org.eclipse.gmf.ecore.editor</module>
	</modules>
	
</project>
