<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>tech.uom.lib</groupId>
        <artifactId>uom-lib</artifactId>
        <version>2.1</version>
    </parent>
    <artifactId>uom-lib-assertj</artifactId>
    <name>Units of Measurement AssertJ Library</name>
    <organization>
        <name>Units of Measurement project</name>
        <url>https://unitsofmeasurement.github.io</url>
    </organization>
    <licenses>
        <license>
            <name>BSD-3-Clause</name>
            <url>LICENSE</url>
        </license>
    </licenses>
    <properties>
        <jsr.version>2.1.1</jsr.version>
        <maven.surefire.version>3.0.0-M5</maven.surefire.version>
    </properties>
    <developers>
        <developer>
            <id>keilw</id>
            <name>Werner Keil</name>
            <email>werner@catmedia.us</email>
            <organization>Creative Arts &amp; Technologies</organization>
            <organizationUrl>http://www.catmedia.us</organizationUrl>
            <roles>
                <role>Architect</role>
                <role>Java Developer</role>
                <role>Spec Lead</role>
            </roles>
            <timezone>+1</timezone>
        </developer>
    </developers>
    
    <dependencyManagement>
        <dependencies>
                <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-commons</artifactId>
                <version>${junit.platform.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <version>3.19.0</version>
        </dependency>
        <dependency>
            <groupId>javax.measure</groupId>
            <artifactId>unit-api</artifactId>
        </dependency>
        <dependency>
            <groupId>tech.uom.lib</groupId>
            <artifactId>uom-lib-common</artifactId>
            <version>${lib.version}</version>
        </dependency>
        <dependency>
            <groupId>tech.units</groupId>
            <artifactId>indriya</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <version>1.3.5</version>
            <scope>compile</scope>
        </dependency>        
        <dependency>
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest-junit</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-params</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-engine</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-commons</artifactId>
        </dependency>
		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-launcher</artifactId>
		</dependency>
		<dependency>
			<groupId>org.junit.platform</groupId>
			<artifactId>junit-platform-runner</artifactId>
		</dependency>
    </dependencies>

    <build>
        <pluginManagement>
	        <plugins>
	            <plugin>
	                <groupId>org.apache.maven.plugins</groupId>
	                <artifactId>maven-surefire-plugin</artifactId>
	                <version>${maven.surefire.version}</version>
	            </plugin>
	        </plugins>
        </pluginManagement>
    
        <plugins>
            <!-- ======================================================= -->
            <!-- Source Attachment -->
            <!-- ======================================================= -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>

            <!-- ======================================================= -->
            <!-- JavaDoc Attachment -->
            <!-- ======================================================= -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <detectLinks>true</detectLinks>
                    <keywords>true</keywords>
                    <linksource>true</linksource>
                    <failOnError>false</failOnError>
                    <source>${maven.compile.sourceLevel}</source>
                    <verbose>true</verbose>
                </configuration>
            </plugin>

            <!-- ======================================================= -->
            <!-- Packaging (OSGi bundle) -->
            <!-- ======================================================= -->
            <plugin>
                <groupId>biz.aQute.bnd</groupId>
                <artifactId>bnd-maven-plugin</artifactId>
                <configuration>
                    <bnd>-exportcontents: tech.uom.lib.assertj.*</bnd>
                </configuration>
            </plugin>
            
            <!-- ======================================================= -->
            <!-- JAR -->
            <!-- ======================================================= -->
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
                    </archive>
                </configuration>
            </plugin>            
        </plugins>
    </build>
	
	<!-- Additional repositories -->
	<!-- Helps to resolve Parent POM and Snapshot artifacts -->
    <repositories>
        <repository>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
            <id>ossrh-snapshot</id>
            <name>OSSRH Snapshots</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </repository>
    </repositories>

	<distributionManagement>
		<repository>
            <id>ossrh</id>
            <name>OSSRH</name>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
		<snapshotRepository>
           <id>ossrh</id>
           <name>OSSRH Snapshot</name>
           <url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
	</distributionManagement>

    <profiles>
        <profile>
            <id>gen</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.assertj</groupId>
                        <artifactId>assertj-assertions-generator-maven-plugin</artifactId>
                        <version>2.1.0</version>
                        <configuration>
                            <!-- <packages> <param>javax.measure</param> </packages> -->
                            <classes>
                                <param>javax.measure.Dimension</param>
                                <param>javax.measure.Quantity</param>
                                <param>javax.measure.Unit</param>
                            </classes>

                            <!-- where to generate assertions entry point classes -->
                            <entryPointClassPackage>tech.uom.lib.assertj</entryPointClassPackage>

                            <!-- Set the package where assertion classes are generated, combine
                                it with targetDir to get the path to assertions classes. Ex: com.nba.Player
                                -> src/test/generated-assertions/my/assertions/PlayerAssert If not set, each
                                assertion class is generated in the package of the class to assert. Ex: com.nba.Player
                                -> src/test/generated-assertions/com/nba/PlayerAssert -->
                            <generateAssertionsInPackage>tech.uom.lib.assertj.assertions</generateAssertionsInPackage>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>