<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.idempiere</groupId>
	<artifactId>org.idempiere.parent</artifactId>
	<version>8.2.0-SNAPSHOT</version>
	<packaging>pom</packaging>
	<name>Maven parent project for idempiere</name>

	<properties>
		<jdk.version>11</jdk.version>
		<tycho.version>2.4.0</tycho.version>
		<tycho.extras.version>${tycho.version}</tycho.extras.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<jp.version>6.15.0</jp.version>
		<zk.version>9.5.0.1</zk.version>
		<zk.javassist.src.version>3.23.1-GA</zk.javassist.src.version>
		<maven.dependency.version>3.1.1</maven.dependency.version>
		<download.maven.version>1.4.1</download.maven.version>
		<lifecycle.mapping.version>1.0.0</lifecycle.mapping.version>
		<springframework.version>4.3.19.RELEASE_1</springframework.version><!--cfx dependency on [3.1,5)-->
		<!-- https://www.eclipse.org/jetty/documentation/9.3.x/alpn-chapter.html#alpn-versions -->
		<jetty.alpn-boot.version>8.1.12.v20180117</jetty.alpn-boot.version>
		<netbeans.lib.version>RELEASE113</netbeans.lib.version>
		<maven-clean-plugin.version>2.5</maven-clean-plugin.version><!-- get from master, update when mave have update-->
		<!-- default value of properties, use when run without profile -->
		<idempiere.target>org.idempiere.p2.targetplatform</idempiere.target>
		<idempiere-equinox-url>https://download.eclipse.org/eclipse/updates/4.17</idempiere-equinox-url>
		<idempiere-equinox-repository-id>eclipse-2020-09</idempiere-equinox-repository-id>
		<idempiere-orbit-url>https://download.eclipse.org/tools/orbit/downloads/drops/R20200831200620/repository</idempiere-orbit-url>
		<idempiere-orbit-repository-id>orbit-2020-09-R20200831200620</idempiere-orbit-repository-id>
		<url.file.srv>https://raw.githubusercontent.com/idempiere/binary.file/master</url.file.srv>
		<extra.ui.install>org.eclipse.equinox.p2.director, org.idempiere.equinox.p2.director.feature.feature.group, org.idempiere.test.feature.feature.group</extra.ui.install>
		<idempiere.product.id>org.adempiere.server.product</idempiere.product.id>
		<codehaus.plexus>2.8.5</codehaus.plexus>
	</properties>

	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>${maven-clean-plugin.version}</version>
				</plugin>
				<plugin>
					<!-- https://www.eclipse.org/m2e/documentation/m2e-execution-not-covered.html -->
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>${lifecycle.mapping.version}</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>com.googlecode.maven-download-plugin</groupId>
										<artifactId>download-maven-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>wget</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore/>
									</action>
								</pluginExecution>

								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-clean-plugin</artifactId>
										<versionRange>[2.5,)</versionRange>
										<goals>
											<goal>clean</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore/>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-dependency-plugin
										</artifactId>
										<versionRange>
											[3.1.1,)
										</versionRange>
										<goals>
											<goal>copy</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.eclipse.tycho
										</groupId>
										<artifactId>
											target-platform-configuration
										</artifactId>
										<versionRange>
											[2.4.0,)
										</versionRange>
										<goals>
											<goal>target-platform</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
                <plugin>
			        <groupId>org.eclipse.tycho.extras</groupId>
			        <artifactId>tycho-eclipserun-plugin</artifactId>
			        <version>${tycho.extras.version}</version>
			        <configuration>
				        <repositories>
				            <repository>
				                <id>${idempiere-equinox-repository-id}</id>
				                <url>${idempiere-equinox-url}</url>
				                <layout>p2</layout>
				            </repository>
				            <repository>
				                <id>${idempiere-orbit-repository-id}</id>
				                <url>${idempiere-orbit-url}</url>
				                <layout>p2</layout>
				            </repository>
				        </repositories>
				        <dependencies>
					        <dependency>
						        <artifactId>org.eclipse.ecf</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.ds</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.garbagecollector</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.frameworkadmin.equinox</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.publisher.eclipse</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.commons.logging</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.ecf.provider.filetransfer.httpclient45</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.director</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.common</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.metadata</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.tukaani.xz</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.core</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.core.net</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.concurrent</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.core.contenttype</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.updatesite</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.httpcomponents.httpcore</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.touchpoint.eclipse</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.core.jobs</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.preferences</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.registry</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.simpleconfigurator.manipulator</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.security</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.jarprocessor</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.engine</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.ecf.identity</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.app</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.felix.scr</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.repository</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.httpcomponents.httpclient</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.artifact.repository</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.osgi.compatibility.state</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.ecf.provider.filetransfer</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.launcher</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.osgi.util</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.frameworkadmin</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.repository.tools</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.publisher</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.touchpoint.natives</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.commons.codec</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.osgi.services</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.ecf.filetransfer</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.ecf.provider.filetransfer.ssl</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.ecf.ssl</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.sat4j.core</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.core.runtime</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.transport.ecf</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.director.app</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.sat4j.pb</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.p2.metadata.repository</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.simpleconfigurator</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.eclipse.equinox.console</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.felix.gogo.command</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.felix.gogo.runtime</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
					        <dependency>
						        <artifactId>org.apache.felix.gogo.shell</artifactId>
						        <type>eclipse-plugin</type>
					        </dependency>
				        </dependencies>
			        </configuration>
		        </plugin>
				<plugin>
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>tycho-compiler-plugin</artifactId>
					<version>${tycho.version}</version>
                    <configuration>
                    	<source>${jdk.version}</source>
                    	<target>${jdk.version}</target>
						<verbose>true</verbose>						
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${tycho.version}</version>
				</plugin>
				<plugin>
					<groupId>com.googlecode.maven-download-plugin</groupId>
					<artifactId>download-maven-plugin</artifactId>
					<version>${download.maven.version}</version>
				</plugin>
				<plugin>
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>tycho-p2-director-plugin</artifactId>
					<version>${tycho.version}</version>
				</plugin>
				<plugin>
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>tycho-p2-repository-plugin</artifactId>
					<version>${tycho.version}</version>
				</plugin>
				<plugin>
					<groupId>org.eclipse.tycho.extras</groupId>
					<artifactId>tycho-p2-extras-plugin</artifactId>
					<version>${tycho.extras.version}</version>
				</plugin>
				<plugin>
					<groupId>org.eclipse.tycho</groupId>
					<artifactId>tycho-p2-publisher-plugin</artifactId>
					<version>${tycho.extras.version}</version>
				</plugin>
				<plugin>
					<groupId>com.coderplus.maven.plugins</groupId>
					<artifactId>copy-rename-maven-plugin</artifactId>
					<version>1.0.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>3.2.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>${maven.dependency.version}</version>
				</plugin>
				<plugin>
				  <groupId>org.eclipse.tycho</groupId>
				  <artifactId>tycho-surefire-plugin</artifactId>
				  <version>${tycho.version}</version>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<plugin>
				<artifactId>maven-clean-plugin</artifactId>
				<executions>
					<execution>
						<id>auto-clean</id>
						<phase>validate</phase>
						<goals>
							<goal>clean</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<filesets>
						<fileset>
							<directory>${project.basedir}/lib</directory>
							<includes>
								<include>*.jar</include>
							</includes>
							<followSymlinks>false</followSymlinks>
        				</fileset>
					</filesets>
				</configuration>
			</plugin>
			<plugin>
				<!-- enable the Tycho build extension -->
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-maven-plugin</artifactId>
				<version>${tycho.version}</version>
				<extensions>true</extensions>
			</plugin>
			
			<!-- enable source bundle generation -->
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-source-plugin</artifactId>
				<version>${tycho.version}</version>
				<executions>
					<execution>
						<id>plugin-source</id>
						<goals>
							<goal>plugin-source</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

    <profiles>
	    <profile>
		    <id>buildIdempiere</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <repositories>
	            <repository>
		            <id>Central</id>
		            <url>https://repo1.maven.org/maven2</url>
	            </repository>

	            <repository>
		            <id>Redhat-GA</id>
		            <url>https://maven.repository.redhat.com/ga</url>
	            </repository>

	            <repository>
		            <id>OpenNMS</id>
		            <url>https://repo.opennms.org/maven2</url>
	            </repository>

	            <repository>
		            <id>jr-ce-releases</id>
		            <url>https://jaspersoft.jfrog.io/jaspersoft/jr-ce-releases</url>
	            </repository>

	            <repository>
		            <id>jp-third-party-ce</id>
		            <url>https://jaspersoft.jfrog.io/jaspersoft/third-party-ce-artifacts</url>
	            </repository>

	            <repository>
		            <id>Clojars</id>
		            <url>https://clojars.org/repo</url>
	            </repository>

	            <repository>
		            <id>atlassian-3rdparty</id>
		            <url>https://maven.atlassian.com/3rdparty</url>
	            </repository>

	            <repository>
		            <id>zkoss</id>
		            <url>https://mavensync.zkoss.org/maven2</url>
	            </repository>

	            <repository>
		            <id>jenkins</id>
		            <url>https://repo.jenkins-ci.org/releases</url>
	            </repository>
            </repositories>
            <build>
                <plugins>
                    <plugin>
		            <groupId>org.eclipse.tycho</groupId>
		            <artifactId>target-platform-configuration</artifactId>
		            <version>${tycho.version}</version>
		            <configuration>
			            <targetDefinitionIncludeSource>honor</targetDefinitionIncludeSource>
			            <!-- work-around for split package message error "Missing Constraint: 
				            Bundle-RequiredExecutionEnvironment" track:https://bugs.eclipse.org/bugs/show_bug.cgi?id=403196 
				            discuss:https://dev.eclipse.org/mhonarc/lists/tycho-user/msg03941.html -->
			            <dependency-resolution>
				            <extraRequirements>
					            <requirement>
						            <type>eclipse-plugin</type>
						            <id>org.eclipse.core.runtime</id>
						            <versionRange>0.0.0</versionRange>
					            </requirement>
					            <requirement>
						            <type>eclipse-plugin</type>
						            <id>org.eclipse.equinox.common</id>
						            <versionRange>0.0.0</versionRange>
					            </requirement>
				            </extraRequirements>
			            </dependency-resolution>
			            <target>
				            <artifact>
					            <groupId>org.idempiere</groupId>
					            <artifactId>${idempiere.target}</artifactId>
					            <version>8.2.0-SNAPSHOT</version>
				            </artifact>
			            </target>

			            <!-- configure the p2 target environments for multi-platform build -->
			            <environments>
				            <environment>
					            <os>linux</os>
					            <ws>gtk</ws>
					            <arch>x86_64</arch>
				            </environment>
				            <environment>
					            <os>win32</os>
					            <ws>win32</ws>
					            <arch>x86_64</arch>
				            </environment>
					    <environment>
					            <os>macosx</os>
					            <ws>cocoa</ws>
					            <arch>x86_64</arch>
				            </environment>
			            </environments>
			            <executionEnvironmentDefault>JavaSE-${jdk.version}</executionEnvironmentDefault>
			            <executionEnvironment>JavaSE-${jdk.version}</executionEnvironment>
		            </configuration>
		     </plugin>
		 </plugins>
	    </build>
	</profile>

        <profile>
            <id>buildP2FromMaven</id>
            <repositories>
            	<repository>
                	<id>${idempiere-equinox-repository-id}</id>
                    <url>${idempiere-equinox-url}</url>
                	<layout>p2</layout>
                </repository>
                <repository>
                    <id>${idempiere-orbit-repository-id}</id>
                    <url>${idempiere-orbit-url}</url>
                    <layout>p2</layout>
                </repository>
                <repository>
		            <id>wso2</id>
		            <url>https://dist.wso2.org/maven2</url>
	            </repository>
            </repositories>
        </profile>

    </profiles>
</project>