<?xml version="1.0" encoding="UTF-8"?>
<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>com.techempower</groupId>
    <artifactId>minijax-techempower</artifactId>
    <version>0.0.1</version>
    <packaging>jar</packaging>
    <name>minijax-techempower</name>
    <description>Minijax implementation of TechEmpower Framework Benchmarks</description>
    <properties>
        <eclipselink.version>2.7.0</eclipselink.version>
        <jpa.version>2.1.1</jpa.version>
        <minijax.version>0.1.4</minijax.version>
        <mysql-connector.version>6.0.6</mysql-connector.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <shade.version>3.1.0</shade.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql-connector.version}</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>eclipselink</artifactId>
            <version>${eclipselink.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.eclipse.persistence</groupId>
                    <artifactId>javax.persistence</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.eclipse.persistence</groupId>
            <artifactId>javax.persistence</artifactId>
            <version>${jpa.version}</version>
        </dependency>
        <dependency>
            <groupId>org.minijax</groupId>
            <artifactId>minijax-core</artifactId>
            <version>${minijax.version}</version>
        </dependency>
        <dependency>
            <groupId>org.minijax</groupId>
            <artifactId>minijax-db</artifactId>
            <version>${minijax.version}</version>
        </dependency>
        <dependency>
            <groupId>org.minijax</groupId>
            <artifactId>minijax-json</artifactId>
            <version>${minijax.version}</version>
        </dependency>
        <dependency>
            <groupId>org.minijax</groupId>
            <artifactId>minijax-mustache</artifactId>
            <version>${minijax.version}</version>
        </dependency>
    </dependencies>
    <repositories>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/releases/</url>
        </repository>
    </repositories>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <inherited>true</inherited>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <optimize>true</optimize>
                    <debug>false</debug>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.ekryd.sortpom</groupId>
                <artifactId>sortpom-maven-plugin</artifactId>
                <version>2.8.0</version>
                <configuration>
                    <predefinedSortOrder>recommended_2008_06</predefinedSortOrder>
                    <lineSeparator>\n</lineSeparator>
                    <nrOfIndentSpace>4</nrOfIndentSpace>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <sortProperties>true</sortProperties>
                    <sortDependencies>groupId,artifactId</sortDependencies>
                    <createBackupFile>false</createBackupFile>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>sort</goal>
                        </goals>
                        <phase>verify</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>de.empulse.eclipselink</groupId>
                <artifactId>staticweave-maven-plugin</artifactId>
                <version>1.0.0</version>
                <dependencies>
                    <dependency>
                        <groupId>org.eclipse.persistence</groupId>
                        <artifactId>org.eclipse.persistence.jpa</artifactId>
                        <version>${eclipselink.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <goals>
                            <goal>weave</goal>
                        </goals>
                        <phase>process-classes</phase>
                        <configuration>
                            <persistenceXMLLocation>META-INF/persistence.xml</persistenceXMLLocation>
                            <logLevel>FINE</logLevel>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>${shade.version}</version>
                <configuration>
                    <filters>
                        <filter>
                            <artifact>*:*</artifact>
                            <excludes>
                                <exclude>META-INF/*.SF</exclude>
                                <exclude>META-INF/*.DSA</exclude>
                                <exclude>META-INF/*.RSA</exclude>
                            </excludes>
                        </filter>
                    </filters>
                    <createDependencyReducedPom>false</createDependencyReducedPom>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass>com.techempower.minijax.MinijaxBenchmark</mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
