<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>filius</groupId>
	<artifactId>filius</artifactId>
	<version>2.9.4</version>
	<inceptionYear>2007</inceptionYear>
	<properties>
		<buildDate>20.07.2025</buildDate>
		<publisher>Stefan Freischlad</publisher>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<junit.version>4.10</junit.version>
		<mockito.version>4.11.0</mockito.version>
		<fest.version>1.4</fest.version>
		<htmlparser.version>1.6</htmlparser.version>
		<jna.version>5.12.1</jna.version>
		<mavenCompiler.version>2.0.2</mavenCompiler.version>
		<java.version>17</java.version>
		<execJre.version>17</execJre.version>
		<mavenJar.version>2.4</mavenJar.version>
		<launch4j.version>2.5.2</launch4j.version>
		<launch4j.starterName>Filius.exe</launch4j.starterName>
		<commons-lang3.version>3.12.0</commons-lang3.version>
	</properties>
	<organization>
		<name>Lernsoftware Filius</name>
	</organization>
	<packaging>jar</packaging>
	<name>Filius</name>
	<description>Lernsoftware zu Rechnernetzen</description>
	<url>https://www.lernsoftware-filius.de</url>
	<licenses>
		<license>
			<name>GNU General Public License v3 (GPLv3)</name>
			<url>https://www.gnu.org/licenses/gpl-3.0.txt</url>
		</license>
	</licenses>
	<dependencies>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-svggen</artifactId>
			<version>1.17</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis-ext</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-dom</artifactId>
			<version>1.17</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis-ext</artifactId>
				</exclusion>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlgraphics</groupId>
			<artifactId>batik-codec</artifactId>
			<version>1.17</version>
			<exclusions>
				<exclusion>
					<groupId>xml-apis</groupId>
					<artifactId>xml-apis-ext</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>itextpdf</artifactId>
			<version>5.5.13.1</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>${mockito.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.easytesting</groupId>
			<artifactId>fest-assert</artifactId>
			<version>${fest.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.htmlparser</groupId>
			<artifactId>htmlparser</artifactId>
			<version>${htmlparser.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>${commons-lang3.version}</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.8.0</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>6.0.12</version>
		</dependency>
		<dependency>
			<groupId>commons-cli</groupId>
			<artifactId>commons-cli</artifactId>
			<version>1.4</version>
		</dependency>
		<dependency>
			<groupId>de.skuzzle</groupId>
			<artifactId>semantic-version</artifactId>
			<version>2.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.30</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.2.3</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>filius</finalName>
		<resources>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>false</filtering>
				<excludes>
					<exclude>**/Thumbs.db</exclude>
					<exclude>application.properties</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>application.properties</include>
				</includes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.7</version>
				<executions>
					<execution>
						<id>copy-resources</id>
						<phase>validate</phase>
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}</outputDirectory>
							<resources>
								<resource>
									<directory>src/nsis</directory>
									<filtering>true</filtering>
									<includes>
										<include>**/*</include>
									</includes>
								</resource>
								<resource>
									<directory>src/info</directory>
									<includes>
										<include>**/*</include>
									</includes>
								</resource>
								<resource>
									<directory>${basedir}</directory>
									<includes>
										<include>*.md</include>
										<include>*.txt</include>
									</includes>
								</resource>
								<resource>
									<directory>src/scripts</directory>
									<includes>
										<include>**/*</include>
									</includes>
								</resource>
								<resource>
									<directory>src/main/resources</directory>
								</resource>
							</resources>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>${mavenCompiler.version}</version>
				<configuration>
					<source>${java.version}</source>
					<target>${java.version}</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>${mavenJar.version}</version>
				<configuration>
					<archive>
						<manifest>
							<mainClass>filius.Main</mainClass>
							<addClasspath>true</addClasspath>
							<classpathPrefix>lib/</classpathPrefix>
						</manifest>
						<manifestEntries>
							<Class-Path>.</Class-Path>
						</manifestEntries>
					</archive>
					<excludes>
						<exclude>tmpl/**</exclude>
						<exclude>config/**</exclude>
						<exclude>hilfe/**</exclude>
						<exclude>img/**</exclude>
					</excludes>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>3.8.1</version>
				<executions>
					<execution>
						<id>copy-product-dependencies</id>
						<phase>prepare-package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<excludeArtifactIds>junit,mockito-all,fest-assert</excludeArtifactIds>
							<excludeTransitive>false</excludeTransitive>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.9.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.3.1</version>
				<configuration>
					<author>false</author>
					<failOnError>false</failOnError>
				</configuration>
			</plugin>
		</plugins>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>3.1.1</version>
				<reportSets>
					<reportSet>
						<reports>
							<!-- select reports -->
							<report>dependencies</report>
							<report>licenses</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
		</plugins>
	</reporting>
	<profiles>
		<profile>
			<id>windows</id>
			<activation>
				<os>
					<family>windows</family>
				</os>
			</activation>
			<build>
				<plugins>
					<!-- Create Filius Executable for Windows -->
					<plugin>
						<groupId>com.akathist.maven.plugins.launch4j</groupId>
						<artifactId>launch4j-maven-plugin</artifactId>
						<version>${launch4j.version}</version>
						<executions>
							<execution>
								<id>filius-exe</id>
								<phase>package</phase>
								<goals>
									<goal>launch4j</goal>
								</goals>
								<configuration>
									<headerType>gui</headerType>
									<outfile>target/${launch4j.starterName}</outfile>
									<errTitle>Filius - Error</errTitle>
									<jar>target/filius.jar</jar>
									<icon>src/main/resources/gfx/filius32.ico</icon>
									<classPath>
										<mainClass>filius.Main</mainClass>
										<addDependencies>true</addDependencies>
									</classPath>
									<chdir>.</chdir>
									<jre>
										<path>java-runtime</path>
										<requires64Bit>true</requires64Bit>
										<minVersion>${execJre.version}</minVersion>
									</jre>
									<versionInfo>
										<fileVersion>${project.version}.0</fileVersion>
										<txtFileVersion>txt file version</txtFileVersion>
										<fileDescription>${project.name}</fileDescription>
										<copyright>${publisher}</copyright>
										<productVersion>${project.version}.0</productVersion>
										<txtProductVersion>
											${project.description}</txtProductVersion>
										<productName>${project.name}</productName>
										<internalName>${project.artifactId}</internalName>
										<originalFilename>
											${launch4j.starterName}</originalFilename>
									</versionInfo>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- Create a Zip-Archive for Platform Independent Delivery -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-assembly-plugin</artifactId>
						<version>2.3</version>
						<configuration>
							<descriptors>
								<descriptor>src/assembly/assembly.xml</descriptor>
							</descriptors>
						</configuration>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>exec-maven-plugin</artifactId>
						<version>1.2</version>
						<executions>
							<execution>
								<id>create installer</id>
								<phase>install</phase>
								<goals>
									<goal>exec</goal>
								</goals>
								<configuration>
									<executable>nsis/makensis</executable>
									<arguments>
										<argument>target/filius.nsi</argument>
									</arguments>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>windows-with-jre</id>
			<!-- use only with windows profile! -->
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>exec-maven-plugin</artifactId>
						<version>1.2</version>
						<executions>
							<execution>
								<id>create installer with built-in JRE</id>
								<phase>install</phase>
								<goals>
									<goal>exec</goal>
								</goals>
								<configuration>
									<executable>nsis/makensis</executable>
									<arguments>
										<argument>target/filius-with-jre.nsi</argument>
									</arguments>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>linux</id>
			<activation>
				<os>
					<family>unix</family>
				</os>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
						<executions>
							<execution>
								<phase>prepare-package</phase>
								<configuration>
									<target>
										<gzip destfile="${project.build.directory}/changelog.gz" src="${project.basedir}/Changelog.md" />
									</target>
								</configuration>
								<goals>
									<goal>run</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<!-- Create Debian Package (used for Ubuntu Platform) -->
					<plugin>
						<artifactId>jdeb</artifactId>
						<groupId>org.vafer</groupId>
						<version>1.7</version>
						<executions>
							<execution>
								<phase>install</phase>
								<goals>
									<goal>jdeb</goal>
								</goals>
								<configuration>
									<installDir>/usr/share/filius</installDir>
									<dataSet>
										<data>
											<src>
												${project.build.directory}/${project.build.finalName}.jar</src>
											<type>file</type>
											<dst>/usr/share/filius/filius.jar</dst>
										</data>
										<data>
											<type>template</type>
											<paths>
												<path>/usr/share/filius</path>
												<path>/usr/share/doc/filius</path>
												<path>/usr/share/doc/filius</path>
												<path>/usr/share/filius/config</path>
												<path>/usr/share/filius/tmpl</path>
												<path>
													/usr/share/filius/tmpl/quelltext_vorlagen</path>
												<path>/usr/share/filius/img</path>
												<path>/usr/share/filius/hilfe</path>
												<path>
													/usr/share/filius/hilfe/gfx</path>
												<path>/usr/share/filius/lib</path>
											</paths>
										</data>
										<data>
											<src>
												${project.basedir}/src/scripts/filius.sh</src>
											<type>file</type>
											<dst>usr/share/filius/filius.sh</dst>
											<mapper>
												<type>perm</type>
												<filemode>755</filemode>
												<user>root</user>
												<group>root</group>
											</mapper>
										</data>
										<data>
											<type>link</type>
											<linkName>/usr/bin/filius</linkName>
											<linkTarget>
												../share/filius/filius.sh</linkTarget>
											<symlink>true</symlink>
										</data>
										<data>
											<src>
												${project.basedir}/src/deb/filius.desktop</src>
											<type>file</type>
											<dst>
												/usr/share/applications/filius.desktop</dst>
										</data>
										<data>
											<src>
												${project.basedir}/src/deb/application-filius-project.xml</src>
											<type>file</type>
											<dst>
												/usr/share/mime/packages/application-filius-project.xml</dst>
										</data>
										<data>
											<src>
												${project.basedir}/src/deb/filius32.png</src>
											<type>file</type>
											<dst>/usr/share/icons/hicolor/32x32/filius.png</dst>
										</data>
										<data>
											<src>
												${project.basedir}/src/deb/copyright</src>
											<type>file</type>
											<dst>/usr/share/doc/filius/copyright</dst>
										</data>
										<data>
											<src>
												${project.build.directory}/changelog.gz</src>
											<type>file</type>
											<dst>
												/usr/share/doc/filius/changelog.gz</dst>
										</data>
										<data>
											<src>
												${project.build.directory}/Changelog.md</src>
											<type>file</type>
											<dst>/usr/share/filius/Changelog.md</dst>
										</data>
										<data>
											<src>
												${project.build.directory}/Readme.md</src>
											<type>file</type>
											<dst>/usr/share/filius/Readme.md</dst>
										</data>
										<data>
											<src>${project.basedir}/src/info</src>
											<type>directory</type>
											<includes>*.*</includes>
											<mapper>
												<type>perm</type>
												<strip>1</strip>
												<prefix>/usr/share/filius</prefix>
											</mapper>
										</data>
										<data>
											<src>
												${project.basedir}/src/main/resources/config</src>
											<type>directory</type>
											<includes>*.*</includes>
											<mapper>
												<type>perm</type>
												<prefix>/usr/share/filius/config</prefix>
											</mapper>
										</data>
										<data>
											<type>link</type>
											<linkName>/etc/filius</linkName>
											<linkTarget>/usr/share/filius/config</linkTarget>
											<symlink>true</symlink>
										</data>
										<data>
											<src>
												${project.basedir}/src/main/resources/tmpl</src>
											<type>directory</type>
											<mapper>
												<type>perm</type>
												<prefix>/usr/share/filius/tmpl</prefix>
											</mapper>
										</data>
										<data>
											<src>
												${project.basedir}/src/main/resources/img</src>
											<type>directory</type>
											<includes>*.*</includes>
											<mapper>
												<type>perm</type>
												<prefix>/usr/share/filius/img</prefix>
											</mapper>
										</data>
										<data>
											<src>
												${project.basedir}/src/main/resources/hilfe</src>
											<type>directory</type>
											<includes>*.*</includes>
											<mapper>
												<type>perm</type>
												<prefix>/usr/share/filius/hilfe</prefix>
											</mapper>
										</data>
										<data>
											<src>
												${project.basedir}/src/main/resources/hilfe/gfx</src>
											<type>directory</type>
											<includes>*.*</includes>
											<mapper>
												<type>perm</type>
												<prefix>
													/usr/share/filius/hilfe/gfx</prefix>
											</mapper>
										</data>
										<data>
											<src>${project.build.directory}/lib</src>
											<type>directory</type>
											<includes>*.jar</includes>
											<mapper>
												<type>perm</type>
												<prefix>/usr/share/filius/lib</prefix>
											</mapper>
										</data>
										<data>
											<src>${project.build.directory}/site</src>
											<type>directory</type>
											<mapper>
												<type>perm</type>
												<prefix>/usr/share/doc/filius</prefix>
											</mapper>
										</data>
									</dataSet>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
