<?xml version="1.0" encoding="UTF-8"?>
<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>

	<!-- ###################################################################################################### -->
	<!-- ###################################################################################################### -->
	<!-- ###################################################################################################### -->
	<!-- ###################################################################################################### -->

	<!-- The maven integration will be improved so keep an eye on the Acceleo
		wiki: http://wiki.eclipse.org/Acceleo/Maven -->

	<!-- ###################################################################################################### -->
	<!-- ###################################################################################################### -->
	<!-- ###################################################################################################### -->


	<parent>
		<groupId>org.eclipse.lyo.tools</groupId>
		<artifactId>tools-parent</artifactId>
		<version>2.4.0-SNAPSHOT</version>
		<relativePath>../org.eclipse.lyo.tools.parent</relativePath>
	</parent>

	<artifactId>org.eclipse.lyo.tools.toolchain.design</artifactId>
	<version>2.4.0-SNAPSHOT</version> <!-- This version should match the version of your project in the MANIFEST.MF -->
	<packaging>eclipse-plugin</packaging>

	<properties>
		<version.acceleo>3.6.4</version.acceleo>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.eclipse.lyo.tools</groupId>
			<artifactId>org.eclipse.lyo.oslc4j.adaptormodel</artifactId>
			<version>2.4.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lyo.tools</groupId>
			<artifactId>org.eclipse.lyo.tools.adaptormodel.model</artifactId>
			<version>2.4.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lyo.tools</groupId>
			<artifactId>org.eclipse.lyo.tools.toolchain.model</artifactId>
			<version>2.4.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lyo.tools</groupId>
			<artifactId>org.eclipse.lyo.tools.vocabulary.model</artifactId>
			<version>2.4.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lyo.tools</groupId>
			<artifactId>org.eclipse.lyo.tools.toolchain.edit</artifactId>
			<version>2.4.0-SNAPSHOT</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lyo.tools</groupId>
			<artifactId>org.eclipse.lyo.tools.toolchain.editor</artifactId>
			<version>2.4.0-SNAPSHOT</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.acceleo</groupId>
				<artifactId>org.eclipse.acceleo.maven</artifactId>
				<version>${version.acceleo}</version>
				<executions>
					<execution>
						<phase>compile</phase>
						<goals>
							<goal>acceleo-compile</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<useBinaryResources>false</useBinaryResources>
					<usePlatformResourcePath>true</usePlatformResourcePath>
					<acceleoProject>
						<root>${project.basedir}</root>
						<entries>
							<entry>
								<input>src</input>
								<output>target/classes</output>
							</entry>
						</entries>
						<jars>
							<jar>${project.basedir}/../org.eclipse.lyo.tools.adaptormodel.model/target/org.eclipse.lyo.tools.adaptormodel.model-2.4.0-SNAPSHOT.jar</jar>
							<jar>${project.basedir}/../org.eclipse.lyo.tools.toolchain.model/target/org.eclipse.lyo.tools.toolchain.model-2.4.0-SNAPSHOT.jar</jar>
							<jar>${project.basedir}/../org.eclipse.lyo.tools.vocabulary.model/target/org.eclipse.lyo.tools.vocabulary.model-2.4.0-SNAPSHOT.jar</jar>
						</jars>
					</acceleoProject>
					<packagesToRegister>
						<!-- Please add the name of the Java class of the packages that are
							needed for the compilation of your module. For an UML generator, use the
							following code -->
						<!-- For more information, please visit http://wiki.eclipse.org/Acceleo/Maven -->
						<packageToRegister>adaptorinterface.AdaptorinterfacePackage</packageToRegister>
						<packageToRegister>toolchain.ToolchainPackage</packageToRegister>
						<packageToRegister>vocabulary.VocabularyPackage</packageToRegister>
						<!-- <packageToRegister>org.eclipse.sirius.diagram.DiagramPackage</packageToRegister> -->
					</packagesToRegister>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
