<?xml version="1.0" encoding="UTF-8"?><!-- Copyright (c) 2018, University 
	of North Carolina at Chapel Hill -->
<!-- Copyright (c) 2015-2017, Dell EMC -->

<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.emc.metalnx</groupId>
		<artifactId>emc-metalnx</artifactId>
		<version>2.1.0-SNAPSHOT</version>
	</parent>

	<artifactId>metalnx-web</artifactId>
	<packaging>war</packaging>
	<dependencies>
		<dependency>
			<groupId>org.irods.jargon</groupId>
			<artifactId>jargon-core</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.irods.jargon</groupId>
			<artifactId>jargon-extensions-if</artifactId>
		</dependency>
		<dependency>
			<groupId>org.irods.jargon</groupId>
			<artifactId>irodsext-data-profiler</artifactId>
		</dependency>
		<dependency>
			<groupId>org.irods.jargon</groupId>
			<artifactId>irodsext-data-typer</artifactId>
		</dependency>
		<dependency>
			<groupId>org.irods.jargon</groupId>
			<artifactId>jargon-data-utils</artifactId>
		</dependency>
		<dependency>
			<groupId>org.irods.jargon</groupId>
			<artifactId>emc-metalnx-services</artifactId>
			<version>${jargon.version}</version>
		</dependency>
		<dependency>
			<groupId>org.irods.jargon</groupId>
			<artifactId>emc-metalnx-core</artifactId>
			<version>${jargon.version}</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-config</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-java</artifactId>
			<version>3.7.1</version><!--$NO-MVN-MAN-VER$ -->
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-firefox-driver -->
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-firefox-driver</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-remote-driver -->
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-remote-driver</artifactId>
			<version>3.6.0</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xerces</groupId>
					<artifactId>xercesImpl</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-chrome-driver</artifactId>
			<version>3.6.0</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xerces</groupId>
					<artifactId>xercesImpl</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-support -->
		<dependency>
			<groupId>org.seleniumhq.selenium</groupId>
			<artifactId>selenium-support</artifactId>
			<version>3.6.0</version><!--$NO-MVN-MAN-VER$ -->
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>23.0</version>
		</dependency>
		<!-- JUnit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>xml-apis</groupId>
			<artifactId>xml-apis</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/dom4j/dom4j -->
		<dependency>
			<groupId>dom4j</groupId>
			<artifactId>dom4j</artifactId>
			<version>1.6.1</version>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.codehaus.jettison/jettison -->
		<dependency>
			<groupId>org.codehaus.jettison</groupId>
			<artifactId>jettison</artifactId>
			<version>1.4.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.thymeleaf</groupId>
			<artifactId>thymeleaf</artifactId>
		</dependency>
		<dependency>
			<groupId>org.thymeleaf</groupId>
			<artifactId>thymeleaf-spring4</artifactId>
		</dependency>
		<dependency>
			<groupId>nz.net.ultraq.thymeleaf</groupId>
			<artifactId>thymeleaf-layout-dialect</artifactId>
		</dependency>
		<!-- https://mvnrepository.com/artifact/org.apache.clerezza.ext/org.json.simple -->
		<dependency>
			<groupId>org.apache.clerezza.ext</groupId>
			<artifactId>org.json.simple</artifactId>
			<version>0.4</version>
		</dependency>
		<!-- Files Upload -->
		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<profiles>
		<profile>
			<id>default-metalnx-template</id>

			<activation>
				<property>
					<name>!metalnx.custom.template</name>
				</property>

			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>0</id>
								<phase>validate</phase>
								<configuration>
									<tasks>
										<echo message="copy template from local default" />
										<copy overwrite="true"
											file="${project.basedir}/src/main/resources/views/defaultTemplate.html"
											tofile="${project.basedir}/src/main/resources/views/template.html" />
									</tasks>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>custom-metalnx-template</id>

			<activation>
				<property>
					<name>metalnx.custom.template</name>
				</property>

			</activation>
			<build>
				<plugins>

					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<executions>
							<execution>
								<id>1</id>
								<phase>validate</phase>
								<configuration>
									<tasks>
										<echo
											message="copy template from ${metalnx.custom.template}" />

										<copy overwrite="true" file="${metalnx.custom.template}"
											tofile="${project.basedir}/src/main/resources/views/template.html" />
									</tasks>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

				</plugins>
			</build>
		</profile>
	</profiles>


	<build>
		<finalName>metalnx</finalName>
		<resources>
			<resource>
				<directory>src/main/conf/${env}</directory>
			</resource>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>*.properties</include>
					<include>static/**</include>
					<include>**/*.html</include>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
				</includes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>3.2.3</version>
				<configuration>
					<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat8-maven-plugin</artifactId>
				<version>3.0-r1756463</version>
				<configuration>
					<url>http://localhost:8080/manager/text</url>
					<server>RemoteTomcatServer</server>
					<path>/metalnx</path>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
				<version>2.20.1</version>
			</plugin>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>2</id>
						<goals>
							<goal>run</goal>
						</goals>
						<phase>validate</phase>
						<configuration>
							<tasks>
								<property name="src.dir"
									value="${project.build.sourceDirectory}" />
								<property name="package.dir.version"
									value="com/emc/metalnx/utils" />
								<property name="package.name.version"
									value="com.emc.metalnx.utils" />
								<property name="buildtime"
									value="${maven.build.timestamp}" />

								<echo message="Generating file EmcMetalnxVersion..." />
								<echo
									message=" - File path: ${src.dir}/${package.dir.version}" />
								<echo message=" - File package: ${package.name.version}" />

								<echo
									file="${src.dir}/${package.dir.version}/EmcMetalnxVersion.java"
									message="package ${package.name.version};${line.separator}" />
								<echo
									file="${src.dir}/${package.dir.version}/EmcMetalnxVersion.java"
									append="true"
									message="public final class EmcMetalnxVersion {${line.separator}" />
								<echo
									file="${src.dir}/${package.dir.version}/EmcMetalnxVersion.java"
									append="true"
									message=" public static String VERSION=&quot;${project.version}&quot;;${line.separator}" />
								<echo
									file="${src.dir}/${package.dir.version}/EmcMetalnxVersion.java"
									append="true"
									message=" public static String BUILD_NUMBER=&quot;${build.number}&quot;;${line.separator}" />
								<echo
									file="${src.dir}/${package.dir.version}/EmcMetalnxVersion.java"
									append="true"
									message=" public static String BUILD_TIME=&quot;${buildtime}&quot;;${line.separator}" />
								<echo
									file="${src.dir}/${package.dir.version}/EmcMetalnxVersion.java"
									append="true" message="}${line.separator}" />
								<echo message="BUILD ${buildtime}" />
							</tasks>
						</configuration>
					</execution>
					<execution>
						<!-- generate jargon test properties as standard -->
						<id>3</id>
						<phase>validate</phase>
						<configuration>
							<tasks>
								<delete
									file="${basedir}/src/test/resources/testing.properties" />
								<touch
									file="${basedir}/src/test/resources/testing.properties"
									mkdirs="true" />
								<echo
									file="${basedir}/src/test/resources/testing.properties"
									append="true">
									test.data.directory=${jargon.test.data.directory}
									test.irods.admin=${jargon.test.irods.admin}
									test.irods.admin.password=${jargon.test.irods.admin.password}
									test.irods.user=${jargon.test.irods.user}
									test.irods.password=${jargon.test.irods.password}
									test.irods.resource=${jargon.test.irods.resource}
									test2.irods.user=${jargon.test.irods.user2}
									test2.irods.password=${jargon.test.irods.password2}
									test2.irods.resource=${jargon.test.irods.resource2}
									test3.irods.user=${jargon.test.irods.user3}
									test3.irods.password=${jargon.test.irods.password3}
									test3.irods.resource=${jargon.test.irods.resource3}
									test.irods.host=${jargon.test.irods.host}
									test.resource.host=${jargon.test.resource.host}
									test.irods.port=${jargon.test.irods.port}
									test.irods.zone=${jargon.test.irods.zone}
									jargon.test.kerberos.user=${jargon.test.kerberos.user}
									jargon.test.user.group=${jargon.test.user.group}
									test.resource.group=${jargon.test.resource.group}
									test.irods.userDN=${jargon.test.irods.userDN}
									test.irods.scratch.subdir=${jargon.test.irods.scratch.subdir}
									test.option.exercise.remoteexecstream=${jargon.test.option.exercise.remoteexecstream}
									test.option.eirods=${test.option.eirods}
									test.option.exercise.audit=${jargon.test.option.exercise.audit}
									test.option.exercise.workflow=${jargon.test.option.exercise.workflow}
									test.option.exercise.filesystem.mount=${jargon.test.option.exercise.filesystem.mount}
									test.option.exercise.filesystem.mount.local=${jargon.test.option.exercise.filesystem.mount.local}
									test.option.distributed.resources=${test.option.distributed.resources}
									test.option.registration=${test.option.registration}
									test.option.strictACL=${test.option.strictACL}
									test.option.federated.zone=${test.option.federated.zone}
									test.option.kerberos=${test.option.kerberos}
									test.option.pam=${test.option.pam}
									test.option.ssl.configured=${test.option.ssl.configured}
									jargon.test.pam.user=${jargon.test.pam.user}
									jargon.test.pam.password=${jargon.test.pam.password}
									test.federated.irods.admin=${jargon.test.federated.irods.admin}
									test.federated.irods.admin.password=${jargon.test.federated.irods.admin.password}
									test.federated.irods.user=${jargon.test.federated.irods.user}
									test.federated.irods.password=${jargon.test.federated.irods.password}
									test.federated.irods.resource=${jargon.test.federated.irods.resource}
									test.federated.irods.host=${jargon.test.federated.irods.host}
									test.federated.irods.port=${jargon.test.federated.irods.port}
									test.federated.irods.zone=${jargon.test.federated.irods.zone}
									test.option.gsi=${test.option.gsi}
									test.option.gsi.host=${test.option.gsi.host}
									test.option.gsi.port=${test.option.gsi.port}
									test.option.gsi.zone=${test.option.gsi.zone}
									test.option.gsi.dn=${test.option.gsi.dn}
									test.option.gsi.user=${test.option.gsi.user}
									test.option.gsi.file=${test.option.gsi.file}
									test.option.mount.basedir=${test.option.mount.basedir}
									test.option.python=${test.option.python}
									selenium.test.chrome.driver=${selenium.test.chrome.driver}
									selenium.test.chrome.driver.loaction=${selenium.test.chrome.driver.loaction}
								</echo>
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
					<execution>
						<!-- generate metalnx test properties as standard -->
						<id>4</id>
						<phase>validate</phase>
						<configuration>
							<tasks>
								<delete
									file="${basedir}/src/test/resources/test.metalnx.properties" />
								<touch
									file="${basedir}/src/test/resources/test.metalnx.properties"
									mkdirs="true" />
								<echo
									file="${basedir}/src/test/resources/test.metalnx.properties"
									append="true">
									irods.host=${jargon.test.irods.host}
									irods.port=${jargon.test.irods.port}
									irods.zoneName=${jargon.test.irods.zone}
									irods.admin.user=${jargon.test.irods.admin}
									irods.admin.password=${jargon.test.irods.admin.password}


									irods.auth.scheme=${metalnx.auth.scheme}
									default.storage.resource=${jargon.test.irods.resource}
									ssl.negotiation.policy=${metalnx.ssl.policy}

									##########################################################

									utilize.packing.streams=${metalnx.packing.streams}


									compute.checksum=${metalnx.compute.checksum}

									##########################################################

									db.driverClassName=${metalnx.jdbc.driver}
									db.url=${metalnx.jdbc.url}
									db.username=${metalnx.jdbc.user}
									db.password=${metalnx.jdbc.password}
									hibernate.dialect=${metalnx.jdbc.dialect}


									hibernate.show_sql=true
									hibernate.format_sql=false


									hibernate.hbm2ddl.auto=update


									connection.pool_size=5

									######################################

									jobs.irods.username=${jargon.test.irods.admin}
									jobs.irods.password=${jargon.test.irods.admin.password}
									jobs.irods.auth.scheme=${metalnx.auth.scheme}
									runSyncJobs=true


									rmd.connection.timeout=500
									rmd.connection.port=8000

									reverse.dns.lookup=false

									######################################

									populate.msi.enabled=false
									illumina.msi.enabled=true

									msi.api.version=1.X.X

									msi.metalnx.list=libmsiget_illumina_meta.so,libmsiobjget_microservices.so,libmsiobjget_version.so,libmsiobjjpeg_extract.so,libmsiobjput_mdbam.so,libmsiobjput_mdbam.so,libmsiobjput_mdmanifest.so,libmsiobjput_mdvcf.so,libmsiobjput_populate.so

									msi.irods.list=libmsisync_to_archive.so,libmsi_update_unixfilesystem_resource_free_space.so,libmsiobjput_http.so,libmsiobjput_irods.so,libmsiobjget_irods.so,libmsiobjget_http.so,libmsiobjput_slink.so,libmsiobjget_slink.so

									msi.irods.42.list=libmsisync_to_archive.so,libmsi_update_unixfilesystem_resource_free_space.so

									msi.other.list=

									resource.location.images=/images/,classpath:static/images/
									resource.location.fonts=/fonts/,classpath:static/fonts/
									resource.location.css=/css/,classpath:static/css/
									resource.location.js=/js/,classpath:static/js/
									resource.location.images=/images/,classpath:static/plugins/
									resource.location.i18=classpath:i18n/messages
									resource.location.i18-users=classpath:i18n-users/messages

									metalnx.enable.tickets=${metalnx.enable.tickets}
									metalnx.enable.upload.rules=${metalnx.enable.upload.rules}
									metalnx.download.limit=${metalnx.download.limit}
								</echo>
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>5</id>
						<phase>package</phase>
						<configuration>
							<tasks>
								<echo message="copying war file up to docker" />
								<copy file="target/metalnx.war"
									todir="../../packaging/docker" />
								<echo message="war file copied " />
							</tasks>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
