<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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>net.sf.tsl2nano</groupId>
	<artifactId>tsl2.nano.h5-package</artifactId>
	<version>2.4.9</version>
	<packaging>pom</packaging>
	<name>TSL2 Html5 Application Framework</name>
	<description>NanoH5 (or FullRelation) is an UI independent gui implementation framework providing a model driven design (MDA). It is bound to the app framework 'tsl2.nano.commons' and the jpa-service framework 'tsl2.nano.serviceaccess'. It is possible to build a complete html5 application through a given class- or database-model.
	see: https://sourceforge.net/projects/tsl2nano/</description>
	<url>https://sourceforge.net/projects/tsl2nano/</url>
	<!--
	This is a multi module project
	* please use maven 3.3.9 as this is used currently in tsl2.nano.jarresolver
	* to start only a submodule-build: "mvn -pl tsl2.nano.core"
	* if multimodule version changes: start "mvn -N versions:update-child-modules -DgenerateBackupPoms=false -DnewVersion=2.3.3-SNAPSHOT" to assign the child modules
	* to do a fast complete build: "mvn -amd -DskipTest -o install"
	* to start only a single test: "mvn -Dtest=*Jar*Test#testOne+testTwo test"
	* to do a fast test:  mvn -o -T 4 -fae test
	* to debug (port 5005) a test in surefire: "mvn -Dmaven.surefire.debug test"
	* aggregate coverage output: "mvn jacoco:report-aggregate"
	* increase version number: "mvn release:update-versions -DautoVersionSubmodules=true"
	* batch-increase version : "mvn - -batch-mode release:update-versions -DdevelopmentVersion=1.2.0-SNAPSHOT"
	* to deploy a new snapshot-version: "mvn deploy"
	* to deploy a release version, install gnupg or gpg4win and start:
	*   (OPTIONAL) git config - -global gpg.program "c:/Program Files (x86)/GNU/GnuPG/gpg.exe"
	*   paste the full output of "gpg -a - -export" (your generated public key) to the keyserver "http://keyserver.ubuntu.com"
	* to create an encrypted password:
	*   create the file settings-security.xml in your .m2 directory
	*   start "mvn - -encrypt-master-password" and paste the result into the tag "settingsSecurity/master"
	*   start "mvn - -encrypt-password" and paste the result into the tag "settings/server/password"
	* to deploy a new release-version: "mvn deploy -P release"
	*   before you have to generate a key: "gpg - -gen-key"
	*   then you should define a "default-key {KEY-ID}" in your gpg.conf in home dir
	*   test that with: "gpg - -clearsign {my-test-file}"
	*   upload your key to a keyserver: "sudo gpg - -keyserver http://keyserver.ubuntu.com - -send-keys ""
	* to get a maven wrapper: "mvn -N io.takari:maven:wrapper"
	* NOTE: on doing a deploy, the tsl2-report module has to be commented from this parent pom!
	* NOTE: on problems with encoding: property files have to be ascii+unicode. please convert them with jdks native2ascii
	-->
	<properties>
		<module.parent>${project.basedir}</module.parent>
        <timestamp>${maven.build.timestamp}</timestamp>
		<!--workaround for automatic gitlab-ci, there ci is not starting properties-maven-plugin -->
		<version.compiler.plugin>3.8.1</version.compiler.plugin>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.debug>true</maven.compiler.debug>
		
        <maven.build.timestamp.format>dd-MM-yyyy HH:mm</maven.build.timestamp.format>
		<dependency.locations.enabled>false</dependency.locations.enabled>
		<javadoc.opts>-Xdoclint:none</javadoc.opts>
		<properties.quiet>false</properties.quiet>
    </properties>
	<inceptionYear>2012</inceptionYear>
	<licenses>
		<license>
			<name>LGPL</name>
			<url>https://opensource.org/licenses/LGPL-2.1</url>
		</license>
		<!-- <license> <name>Apache License, Version 2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> 
			<distribution>repo</distribution> </license> -->
	</licenses>
	<scm>
		<url>https://git.code.sf.net/p/tsl2nano/code tsl2nano-code</url>
		<developerConnection>scm:git:ssh://snieda@git.code.sf.net/p/tsl2nano/code</developerConnection>
	</scm>
	<!-- TODO: should we remove the parent? -->
<!--  	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>9</version>
	</parent>
 -->
	<contributors>
		<contributor>
			<name>Thomas Schneider</name>
			<email>snieda@web.de</email>
		</contributor>
	</contributors>
	<developers>
		<developer>
			<name>Thomas Schneider</name>
			<email>snieda@web.de</email>
		</developer>
	</developers>
	<modules>
		<module>tsl2.nano.instrumentation</module>
		<module>tsl2.nano.aspects</module>
		<module>tsl2.nano.core</module>
		<module>tsl2.nano.autotest</module>
		<module>tsl2.nano.datastructure</module>
		<module>tsl2.nano.gp</module>
		<module>tsl2.nano.common</module>
		<module>tsl2.nano.generator</module>
		<module>tsl2.nano.mavengenerator</module>
		<module>tsl2.nano.operation</module>
		<module>tsl2.nano.descriptor</module>
		<module>tsl2.nano.replication</module>
		<module>tsl2.nano.serviceaccess</module>
		<module>tsl2.nano.directaccess</module>
		<module>tsl2.nano.ebeanprovider</module>
		<module>tsl2.nano.ormliteprovider</module>
		<module>tsl2.nano.jarresolver</module>
		<module>tsl2.nano.specification</module>
		<module>tsl2.nano.repeatable</module>
		<module>tsl2.nano.cursus</module>
		<module>tsl2.nano.logicstructure</module>
		<module>tsl2.nano.vnet</module>
		<module>tsl2.nano.incubation</module>
		<module>tsl2.nano.d8portal</module>
		<module>tsl2.nano.terminal</module>
		<module>tsl2.nano.h5</module>
		<module>tsl2.nano.h5.thymeleaf</module>
		<module>tsl2.nano.h5.thymeleaf-pack</module>
		<module>tsl2.nano.archetype</module>
		<module>tsl2.nano.aggregate-report</module>
  </modules>
	<distributionManagement>
		<snapshotRepository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>
	<build>
		<resources>
			<resource>
	           <directory>src/main/resources</directory>
	           <filtering>true</filtering>
	        </resource>
        </resources>
        <pluginManagement>
	        <plugins>
	        <!-- before this management, the antrun version was 1.3 -->
		        <plugin>
		          <artifactId>maven-antrun-plugin</artifactId>
		          <version>1.8</version>
		        </plugin>
	        </plugins>
        </pluginManagement>
        <plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>properties-maven-plugin</artifactId>
				<version>1.0.0</version>
				<executions>
					<execution>
						<id>read-properties</id>
						<phase>initialize</phase>
						<goals>
							<goal>read-project-properties</goal>
						</goals>
						<configuration>
							<files>
								<file>${module.parent}/build.properties</file>
							</files>
							<quiet>${properties.quiet}</quiet>
						</configuration>
					</execution>
					<execution>
						<id>write-properties</id>
						<phase>generate-resources</phase>
						<goals>
							<goal>write-project-properties</goal>
						</goals>
						<configuration>
							<outputFile>${project.build.outputDirectory}/build-${project.artifactId}.properties</outputFile>
							<!-- <excludes><exclude>java*</exclude><exclude>arg*</exclude></excludes> -->
						</configuration>
					</execution>
   				</executions>
			</plugin>
      			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.0.0-M5</version>
				<executions>
					<execution>
						<id>junit</id>
						<inherited>true</inherited>
						<configuration>
							<argLine>${surefire.argLine}</argLine>
							<testFailureIgnore>${surefire.testFailureIgnore}</testFailureIgnore>				
							<!-- <parallel>true</parallel> -->
							<!-- <skipTests>true</skipTests>  -->
							<!-- <workingDirectory>FORK_DIRECTORY_${surefire.forkNumber}</workingDirectory> -->
							</configuration>
					</execution>
				</executions>
			</plugin>
   			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
				<version>2.22.2</version>
				<configuration>
					<!-- <skipITs>true</skipITs> -->
					<forkCount>${forkCount}</forkCount>
					<forkedProcessExitTimeoutInSeconds>600</forkedProcessExitTimeoutInSeconds>
					<forkedProcessTimeoutInSeconds>600</forkedProcessTimeoutInSeconds>
				</configuration>
				<executions>
					<execution>
						<inherited>true</inherited>
						<goals>
							<goal>integration-test</goal>
							<goal>verify</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
 			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.8.5</version>
				<!-- TODO: the configuration is duplicated in the reporting section and h5... -->
				<configuration>
					<skip>${skipTests}</skip>
					<outputDirectory>../target</outputDirectory>
					<excludes>
						<exclude>**/*.jar</exclude>
						<exclude>**/*.zip</exclude>
						<exclude>**/HelpMojo.class</exclude>
					</excludes>
					<!-- <fileSets>
						<fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
							<directory>../</directory>
							<includes>
								<include>**/*.exec</include>
							</includes>
						</fileSet>
					</fileSets> -->
				</configuration>
				<executions>
					<!-- Prepares the property pointing to the JaCoCo runtime agent which 
						is passed as VM argument when Maven the Surefire plugin is executed. -->
					<execution>
						<id>pre-unit-test</id>
						<phase>initialize</phase>
						<inherited>true</inherited>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
						<configuration>
							<append>true</append>
						</configuration>
					</execution>
				      <execution>
				        <id>prepare-agent-integration</id>
				        <goals>
				          <goal>prepare-agent-integration</goal>
				        </goals>
				        <configuration>
				          <destFile>${project.build.directory}/jacoco-it.exec</destFile>
						  <append>true</append>
				        </configuration>
				      </execution>
					<!-- <execution>
						<id>report-aggregate</id>
						<inherited>true</inherited>
						<phase>prepare-package</phase>
						<goals>
							<goal>report-aggregate</goal>
						</goals>
					</execution> -->
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.4</version>
				<configuration>
					<excludes>
						<exclude>**/*.zip</exclude>
					</excludes>
					<skipSource>${skipTests}</skipSource>
				</configuration>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar-no-fork</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.4</version>
				<configuration>
					<force>true</force>
					<failOnError>false</failOnError>
					<skip>${skipTests}</skip>
					 <additionalparam>${javadoc.opts}</additionalparam>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<!-- to release to maven-central, the jars must be signed including an .asc file -->
			<plugin>
			    <groupId>org.apache.maven.plugins</groupId>
			    <artifactId>maven-gpg-plugin</artifactId>
			    <version>1.6</version>
			    <executions>
			     <execution>
			     <configuration>
              <excludes>
                <exclude>**/*-signed.jar</exclude>
              </excludes>
					<skip>${skipTests}</skip>
			     </configuration>
			      <id>sign-artifacts</id>
			      <phase>verify</phase>
			      <goals>
			       <goal>sign</goal>
			      </goals>
			     </execution>
			    </executions>
			   </plugin>
   			<!--  deploy to maven central -->
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>1.6.8</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>ossrh</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
					<autoDropAfterRelease>true</autoDropAfterRelease>
					<showReleased>true</showReleased>
				</configuration>
			</plugin>
			<!-- <plugin> <artifactId>maven-assembly-plugin</artifactId> <version>3.1.0</version> 
				<configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> 
				</descriptorRefs> </configuration> <executions> <execution> <id>make-assembly</id> 
				<phase>package</phase> <goals> <goal>single</goal> </goals> </execution> 
				</executions> </plugin> -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>2.5.3</version>
					<executions>
						<execution>
							<id>fromMaster</id>
							<configuration>
								<developmentVersion>${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}.0-SNAPSHOT</developmentVersion>
								<tagNameFormat>@{project.version}</tagNameFormat>
							</configuration>
						</execution>
						<execution>
							<id>fromBranch</id>
							<configuration>
								<developmentVersion>${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.nextIncrementalVersion}-SNAPSHOT</developmentVersion>
								<tagNameFormat>@{project.version}</tagNameFormat>
							</configuration>
						</execution>
					</executions>
				</plugin>
			</plugins>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>2.9</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<version>3.0.5</version>
				<configuration>
					<aggregate>true</aggregate>
					<onlyAnalyze>de.tsl2.*</onlyAnalyze>
				</configuration>
			</plugin>
			<plugin>
                <groupId>org.sonarsource.scanner.maven</groupId>
                <artifactId>sonar-maven-plugin</artifactId>
                <version>3.6.0.1398</version>
            </plugin>
			<plugin>
            	<groupId>org.apache.maven.plugins</groupId>
            	<artifactId>maven-pmd-plugin</artifactId>
            	<version>3.9.0</version>
				<reportSets>
					<reportSet>
						<id>module</id>
						<inherited>true</inherited>
						<reports>
							<report>pmd</report>
							<report>cpd</report>
						</reports>
					</reportSet>
					<reportSet>
						<id>all</id>
						<inherited>true</inherited>
						<configuration>
              <aggregate>true</aggregate>
            </configuration>
						<reports>
							<report>pmd</report>
							<report>cpd</report>
						</reports>
					</reportSet>
				</reportSets>
       		</plugin>
   			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.8.5</version>
				<configuration>
				<includes>
					<include>de/tsl2/**/*.class</include>
				</includes>
<!-- 					<excludes>
						<exclude>**/*.jar</exclude>
						<exclude>**/*.zip</exclude>
					</excludes>
 -->				</configuration>
				<reportSets>
					<reportSet>
						<reports>
							<!-- select non-aggregate reports -->
							<report>report</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${version.compiler.plugin}</version>
				<configuration>
					<source>${maven.compiler.source}</source>
					<target>${maven.compiler.target}</target>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>
		</plugins>
	</reporting>
</project>
