<?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.3.0.M3</version>
		<relativePath>../org.eclipse.lyo.tools.parent</relativePath>
	</parent>

	<artifactId>org.eclipse.lyo.oslc4j.codegenerator</artifactId>
	<version>2.3.0.M3</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.3.0.M3</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.lyo.tools</groupId>
			<artifactId>org.eclipse.lyo.tools.adaptormodel.model</artifactId>
			<version>2.3.0.M3</version>
		</dependency>
        <dependency>
            <groupId>org.eclipse.lyo.tools</groupId>
            <artifactId>org.eclipse.lyo.tools.vocabulary.model</artifactId>
            <version>2.3.0.M3</version>
        </dependency>


		<dependency>
			<groupId>org.eclipse.acceleo</groupId>
			<artifactId>org.eclipse.acceleo.maven</artifactId>
			<version>${version.acceleo}</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.acceleo</groupId>
			<artifactId>org.eclipse.acceleo.engine</artifactId>
			<version>3.5.1.201409021433</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>p2.eclipse-plugin:org.eclipse.lyo.tools.adaptormodel.model</jar> -->
							<!-- <jar>org.eclipse.lyo.tools.adaptormodel.model</jar> -->
                            <!-- <jar>org.eclipse.lyo.tools:org.eclipse.lyo.tools.adaptormodel.model</jar> -->
							<jar>${project.basedir}/../org.eclipse.lyo.tools.adaptormodel.model/target/org.eclipse.lyo.tools.adaptormodel.model-2.3.0.M3.jar</jar>
                            <jar>${project.basedir}/../org.eclipse.lyo.tools.vocabulary.model/target/org.eclipse.lyo.tools.vocabulary.model-2.3.0.M3.jar</jar>
							<!-- <jar>C:\Users\jad\git\org.eclipse.lyo.tools\org.eclipse.lyo.tools.adaptormodel.model\target\org.eclipse.lyo.tools.adaptormodel.model-2.2.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>vocabulary.VocabularyPackage</packageToRegister>
					</packagesToRegister>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<!-- <pluginRepositories> -->
	<!-- <pluginRepository> -->
	<!-- <id>Eclipse - Acceleo Release</id> -->
	<!-- <url>https://repo.eclipse.org/content/repositories/acceleo-releases</url> -->
	<!-- </pluginRepository> -->
	<!-- </pluginRepositories> -->
</project>
