<?xml version="1.0" encoding="UTF-8"?>
<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>
	<parent>
		<groupId>com.anaptecs.jeaf.generator.sample</groupId>
		<artifactId>jeaf-generator-sample-project</artifactId>
		<version>1.6.3</version>
	</parent>

	<name>Accounting Persistent Objects</name>
	<artifactId>accounting-persistent-objects</artifactId>
	<packaging>jar</packaging>

	<dependencies>
		
		<dependency>
			<groupId>com.anaptecs.jeaf.persistence</groupId>
			<artifactId>jeaf-persistence-service-provider-api</artifactId>
			<version>${jeaf.persistence.api.version}</version>
		</dependency>
		
		<!-- 
			Dependency to packaged model artifact is required for code generation only. It will not have any impact on 
			runtime behavior as the artifact just contains XMI files but no code or resource files. 
		-->
		<dependency>
			<groupId>com.anaptecs.jeaf.generator.sample</groupId>
			<artifactId>accounting-model</artifactId>
			<version>${project.version}</version>
			<type>zip</type>
			<scope>provided</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>com.anaptecs.jeaf.generator</groupId>
				<artifactId>jeaf-generator-maven-plugin</artifactId>
				<version>${maven.jeaf-generator-plugin.version}</version>
				<executions>
					<execution>
						<goals>
							<goal>Generator</goal>
						</goals>
						<phase>generate-sources</phase>
					</execution>
				</executions>
				<configuration>
					<!-- 
						Define where JEAF Generator will find XMI files as input. In this case here we take them from 
						the defined Maven artifact. 
						However it is also possible to directly read the files from some location on your disk. For 
						further information please refer to: https://anaptecs.atlassian.net/l/c/Wwoxa8kg 
					-->
					<modelArtifactGroupID>com.anaptecs.jeaf.generator.sample</modelArtifactGroupID>
					<modelArtifactArtifactID>accounting-model</modelArtifactArtifactID>
					<modelArtifactXMIPath>xmi</modelArtifactXMIPath>
					<umlModelFile>JEAF_Accounting_Sample.uml</umlModelFile>

					<!-- 
						Define directories where output should be written to. In this case here we will write all output 
						to src-gen / res-gen. This will ensure that also code / resources that actually are only 
						generated once are always up-to-date. 
						
						However in real life this is not a good setup as manual code will be overwritten every time JEAF 
						Generator will be executed.
					-->
					<sourceDirectory>${project.basedir}/src-gen/main/java</sourceDirectory>
					<sourceGenDirectory>${project.basedir}/src-gen/main/java</sourceGenDirectory>
					<resourceDirectory>${project.basedir}/src-gen/main/resources</resourceDirectory>
					<resourceGenDirectory>${project.basedir}/src-gen/main/resources</resourceGenDirectory>

					<!-- 
						Configure behavior concerning existing files in src-gen and res-gen directory. It is strongly 
						recommended to clean directories before generating new files. 
					-->
					<cleanSourceGen>true</cleanSourceGen>
					<cleanResourceGen>true</cleanResourceGen>

					<!-- Define whitelist of packages in UML model generator should take care when generating code. -->
					<packages>
						<package>com.anaptecs.jeaf.accounting</package>
						<package>TestProfile</package>
					</packages>

					<!-- Define what should be generated. By default nothing is generated. -->
					<generatePersistentObjects>true</generatePersistentObjects>

					<!-- Define information that are written to file headers -->
					<fileHeaderCompany>anaptecs GmbH, Ricarda-Huch-Str. 71, 72760 Reutlingen, Germany</fileHeaderCompany>
					<fileHeaderAuthor>JEAF Generator</fileHeaderAuthor>
					<fileHeaderCopyright>Copyright 2021. All rights reserved.</fileHeaderCopyright>
					<fileHeaderVersion>JEAF Release 1.6.x</fileHeaderVersion>

					<!-- Define code formatting style -->
					<conventionFile>anaptecs_code_guideline.xml</conventionFile>
				</configuration>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>com.anaptecs.jeaf.generator</groupId>
										<artifactId>jeaf-generator-maven-plugin</artifactId>
										<versionRange>[1.5.1,)</versionRange>
										<goals>
											<goal>Generator</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>