<?xml version="1.0" encoding="UTF-8"?>
<project>

<!--
  To build cross-platform fat jar use: -P install4j -P public-repo
-->

	<modelVersion>4.0.0</modelVersion>
	<groupId>com.iamsoft</groupId>
	<artifactId>iamsoft-fxutils-examples</artifactId>
	<version>21.0.0</version>
	<packaging>jar</packaging>
	<name>${project.groupId}:${project.artifactId}</name>
	<description>Sample usage of iamsoft-fxutils classes</description>
	<url>https://www.iamsoft.com</url>
	<licenses>
		<license>
			<name>MIT License</name>
			<url>http://www.opensource.org/licenses/mit-license.php</url>
		</license>
	</licenses>
	<developers>
		<developer>
			<name>CW</name>
			<email>cw720@proton.me</email>
			<organization>Iamsoft</organization>
			<organizationUrl>http://www.iamsoft.com</organizationUrl>
		</developer>
	</developers>
	<scm>
		<url>https://bitbucket.org/iamsoft/apextoolbox</url>
	</scm>
	<properties>
		<maven.compiler.source>21</maven.compiler.source>
		<maven.compiler.target>21</maven.compiler.target>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<repoUrl>s3://iamsoft.com</repoUrl>
		<javafx.version>21</javafx.version>
		<fatjars.skip>false</fatjars.skip>
	</properties>
	<repositories>
		<repository>
			<id>iamsoft-repo</id>
			<url>s3://iamsoft.com/maven-private/</url>
		</repository>
	</repositories>
	<dependencies>
		<dependency>
			<groupId>com.iamsoft</groupId>
			<artifactId>iamsoft-fxutils</artifactId>
			<version>21.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.controlsfx</groupId>
			<artifactId>fxsampler</artifactId>
			<version>1.0.11</version>
			<exclusions>
				<exclusion>
					<groupId>org.openjfx</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>jakarta.persistence</groupId>
			<artifactId>jakarta.persistence-api</artifactId>
			<version>3.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.eclipse.persistence</groupId>
			<artifactId>org.eclipse.persistence.jpa</artifactId>
			<version>4.0.2</version>
		</dependency>
		<dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derby</artifactId>
			<version>10.17.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derbyclient</artifactId>
			<version>10.17.1.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derbytools</artifactId>
			<version>10.17.1.0</version>
		</dependency>
	</dependencies>
	<build>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.java</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.6.3</version>
				<configuration>
					<doclint>none</doclint>
					<tags>
						<tag>
							<name>author</name>
							<placement>X</placement>
							<head>Author</head>
						</tag>
					</tags>
					<additionalOptions>
						<option>--add-exports</option>
						<option>javafx.base/com.sun.javafx.collections=com.iamsoft.util.ui</option>
						<option>--add-exports</option>
						<option>java.desktop/sun.awt.image=com.iamsoft.util.ui</option>
						<option>--add-exports</option>
						<option>javafx.graphics/com.sun.javafx.css=com.iamsoft.util.ui</option>
						<option>--add-exports</option>
						<option>javafx.controls/com.sun.javafx.scene.control=com.iamsoft.util.ui</option>
						<option>--add-exports</option>
						<option>javafx.controls/com.sun.javafx.scene.control.behavior=com.iamsoft.util.ui</option>
						<option>--add-exports</option>
						<option>org.controlsfx.controls/impl.org.controlsfx.autocompletion=com.iamsoft.util.ui</option>
					</additionalOptions>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.11.0</version>
			</plugin>
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.1.2</version>
				<configuration>
					<useModulePath>false</useModulePath>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>3.5.0</version>
				<configuration>
					<skip>${fatjars.skip}</skip>
					<filters>
						<filter>
							<artifact>*:*</artifact>
							<excludes>
								<exclude>module-info.class</exclude>
							</excludes>
						</filter>
					</filters>
					<artifactSet>
						<excludes>
							<exclude>org.openjfx:javafx-base:win</exclude>
							<exclude>org.openjfx:javafx-base:mac</exclude>
							<exclude>org.openjfx:javafx-controls:win</exclude>
							<exclude>org.openjfx:javafx-controls:mac</exclude>
							<exclude>org.openjfx:javafx-fxml:win</exclude>
							<exclude>org.openjfx:javafx-fxml:mac</exclude>
							<exclude>org.openjfx:javafx-swing:win</exclude>
							<exclude>org.openjfx:javafx-swing:mac</exclude>
						</excludes>
					</artifactSet>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals><goal>shade</goal></goals>
						<configuration>
							<shadedArtifactAttached>true</shadedArtifactAttached>
							<shadedClassifierName>executable</shadedClassifierName>
							<createDependencyReducedPom>false</createDependencyReducedPom>
							<transformers>
								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>com.iamsoft.util.ui.javafx.example.FXUtilsSampler</mainClass>
									<manifestEntries>
										<Multi-Release>true</Multi-Release>
									</manifestEntries>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>3.1.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.12.1</version>
				<configuration>
					<outputDirectory>./target/site/apidocs</outputDirectory>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>3.6.1</version>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>initialize</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<includeScope>runtime</includeScope>
							<overWriteReleases>true</overWriteReleases>
							<overWriteSnapshots>true</overWriteSnapshots>
							<overWriteIfNewer>true</overWriteIfNewer>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<extensions>
			<extension>
				<groupId>com.github.seahen</groupId>
				<artifactId>maven-s3-wagon</artifactId>
				<version>1.3.3</version>
			</extension>
		</extensions>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>3.5.0</version>
				<configuration>
					<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.6.3</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>3.3.1</version>
				<configuration>
					<configLocation>../checkstyle_rules.xml</configLocation>
					<failsOnError>true</failsOnError>
					<failOnViolation>true</failOnViolation>
					<violationSeverity>error</violationSeverity>
					<logViolationsToConsole>true</logViolationsToConsole>
				</configuration>
				<reportSets>
					<reportSet>
						<reports>
							<report>checkstyle</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>3.1.2</version>
			</plugin>
			<plugin>
				<artifactId>maven-clover-plugin</artifactId>
			</plugin>
		</plugins>
	</reporting>
	<profiles>
		<profile>
			<id>mac</id>
			<activation>
				<os>
					<family>mac</family>
				</os>
			</activation>
			<properties>
				<install4j.home>/Applications/install4j.app/Contents/Resources/app</install4j.home>
			</properties>
		</profile>
		<profile>
			<id>unix</id>
			<activation>
				<os>
					<family>unix</family>
				</os>
			</activation>
			<properties>
				<install4j.home>/opt/install4j10</install4j.home>
			</properties>
		</profile>
		<profile>
			<id>windows</id>
			<activation>
				<os>
					<family>windows</family>
				</os>
			</activation>
			<properties>
				<install4j.home>C:\Program Files\install4j10</install4j.home>
			</properties>
		</profile>
		<profile>
			<id>sonatype-repo</id>
			<properties>
				<install4j.skip>true</install4j.skip>
				<fatjars.skip>true</fatjars.skip>
			</properties>
			<distributionManagement>
				<repository>
					<id>ossrh</id>
					<url>https://s01.oss.sonatype.org/content/repositories/releases</url>
				</repository>
			</distributionManagement>
			<build>
				<plugins>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>private-repo</id>
			<properties>
				<proguard.attach>true</proguard.attach>
				<fatjars.skip>true</fatjars.skip>
			</properties>
			<distributionManagement>
				<site>
					<id>s3.artifacts.site</id>
					<url>${repoUrl}/site/javadoc/${project.version}/</url>
				</site>
				<repository>
					<id>s3.artifacts.releases-private</id>
					<url>${repoUrl}/maven-private/</url>
				</repository>
			</distributionManagement>
		</profile>
		<profile>
			<id>public-repo</id>
			<distributionManagement>
				<site>
					<id>s3.artifacts.site</id>
					<url>${repoUrl}/javadoc/${project.name}/${project.version}/</url>
				</site>
				<repository>
					<id>s3.artifacts.releases</id>
					<url>${repoUrl}/maven/</url>
				</repository>
			</distributionManagement>
		</profile>
		<profile>
			<id>install4j</id>
			<dependencies>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-base</artifactId>
					<version>${javafx.version}</version>
					<classifier>linux</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-base</artifactId>
					<version>${javafx.version}</version>
					<classifier>win</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-base</artifactId>
					<version>${javafx.version}</version>
					<classifier>mac</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-fxml</artifactId>
					<version>${javafx.version}</version>
					<classifier>linux</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-fxml</artifactId>
					<version>${javafx.version}</version>
					<classifier>win</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-fxml</artifactId>
					<version>${javafx.version}</version>
					<classifier>mac</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-web</artifactId>
					<version>${javafx.version}</version>
					<classifier>linux</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-web</artifactId>
					<version>${javafx.version}</version>
					<classifier>win</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-web</artifactId>
					<version>${javafx.version}</version>
					<classifier>mac</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-swing</artifactId>
					<version>${javafx.version}</version>
					<classifier>linux</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-swing</artifactId>
					<version>${javafx.version}</version>
					<classifier>win</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-swing</artifactId>
					<version>${javafx.version}</version>
					<classifier>mac</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-controls</artifactId>
					<version>${javafx.version}</version>
					<classifier>linux</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-controls</artifactId>
					<version>${javafx.version}</version>
					<classifier>mac</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-controls</artifactId>
					<version>${javafx.version}</version>
					<classifier>win</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-graphics</artifactId>
					<version>${javafx.version}</version>
					<classifier>linux</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-graphics</artifactId>
					<version>${javafx.version}</version>
					<classifier>mac</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-graphics</artifactId>
					<version>${javafx.version}</version>
					<classifier>win</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-media</artifactId>
					<version>${javafx.version}</version>
					<classifier>linux</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-media</artifactId>
					<version>${javafx.version}</version>
					<classifier>win</classifier>
				</dependency>
				<dependency>
					<groupId>org.openjfx</groupId>
					<artifactId>javafx-media</artifactId>
					<version>${javafx.version}</version>
					<classifier>mac</classifier>
				</dependency>
			</dependencies>
			<build>
				<plugins>
					<plugin>
						<groupId>com.github.wvengen</groupId>
						<artifactId>proguard-maven-plugin</artifactId>
						<configuration>
							<exclusions>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-base</artifactId>
									<classifier>win</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-base</artifactId>
									<classifier>mac</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-controls</artifactId>
									<classifier>win</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-controls</artifactId>
									<classifier>mac</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-fxml</artifactId>
									<classifier>win</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-fxml</artifactId>
									<classifier>mac</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-graphics</artifactId>
									<classifier>win</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-graphics</artifactId>
									<classifier>mac</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-swing</artifactId>
									<classifier>win</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-swing</artifactId>
									<classifier>mac</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-media</artifactId>
									<classifier>win</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-media</artifactId>
									<classifier>mac</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-web</artifactId>
									<classifier>win</classifier>
								</exclusion>
								<exclusion>
									<groupId>org.openjfx</groupId>
									<artifactId>javafx-web</artifactId>
									<classifier>mac</classifier>
								</exclusion>
							</exclusions>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.sonatype.install4j</groupId>
						<artifactId>install4j-maven-plugin</artifactId>
						<version>1.1.2</version>
						<executions>
							<execution>
								<id>compile-installers</id>
								<phase>package</phase>
								<goals>
									<goal>compile</goal>
								</goals>
								<configuration>
									<installDir>${install4j.home}</installDir>
									<projectFile>${project.basedir}/installer.install4j</projectFile>
									<macKeystorePassword>${keystorePassword}</macKeystorePassword>
									<winKeystorePassword>${keystorePassword}</winKeystorePassword>
									<variables>
										<appVersion>${project.version}</appVersion>
									</variables>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<version>3.4.0</version>
						<executions>
							<execution>
								<id>attach-artifacts</id>
								<phase>package</phase>
								<goals>
									<goal>attach-artifact</goal>
								</goals>
								<configuration>
									<artifacts>
										<artifact>
											<file>target/media/fxutilsexamples-${project.version}.exe</file>
											<type>exe</type>
										</artifact>
										<artifact>
											<file>target/media/fxutilsexamples-${project.version}.dmg</file>
											<type>dmg</type>
										</artifact>
										<artifact>
											<file>target/media/fxutilsexamples-${project.version}.sh</file>
											<type>sh</type>
										</artifact>
									</artifacts>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
