<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 > org.qora</groupId>
<artifactId > qora-core</artifactId>
<version > 2.0.0-SNAPSHOT</version>
<packaging > jar</packaging>
<properties >
<project.build.sourceEncoding > UTF-8</project.build.sourceEncoding>
<bouncycastle.version > 1.60</bouncycastle.version>
<hsqldb.version > r5836</hsqldb.version>
<jetty.version > 9.4.11.v20180605</jetty.version>
<jersey.version > 2.27</jersey.version>
<log4j.version > 2.11.0</log4j.version>
<slf4j.version > 1.7.12</slf4j.version>
<swagger-api.version > 2.0.6</swagger-api.version>
<swagger-ui.version > 3.19.0</swagger-ui.version>
</properties>
<build >
<sourceDirectory > src</sourceDirectory>
<testSourceDirectory > tests</testSourceDirectory>
<plugins >
<plugin >
<artifactId > maven-compiler-plugin</artifactId>
<version > 3.5.1</version>
<configuration >
<source > 1.8</source>
<target > 1.8</target>
</configuration>
</plugin>
<!-- unpack swagger - ui to target folder -->
<plugin >
<artifactId > maven-dependency-plugin</artifactId>
<executions >
<execution >
<id > swagger ui</id>
<phase > generate-resources</phase>
<goals >
<goal > unpack</goal>
</goals>
<configuration >
<artifactItems >
<artifactItem >
<groupId > org.webjars</groupId>
<artifactId > swagger-ui</artifactId>
<version > ${swagger-ui.version}</version>
</artifactItem>
</artifactItems>
<outputDirectory > ${project.build.directory}/swagger-ui.unpacked</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- inject correct url to swagger json file into swagger - ui -->
<plugin >
<groupId > com.google.code.maven-replacer-plugin</groupId>
<artifactId > replacer</artifactId>
<version > 1.5.3</version>
<executions >
<execution >
<phase > generate-resources</phase>
<goals >
<goal > replace</goal>
</goals>
</execution>
</executions>
<configuration >
<file > ${project.build.directory}/swagger-ui.unpacked/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}/index.html</file>
<replacements >
<replacement >
<token > https://petstore.swagger.io/v2/swagger.json</token>
<value > /openapi.json</value>
</replacement>
<replacement >
<token > Swagger UI</token>
<value > API Documentation</value>
</replacement>
<replacement >
<token > deepLinking: true,</token>
<value >
deepLinking: true,
tagsSorter: "alpha",
operationsSorter: "alpha",
</value>
</replacement>
</replacements>
</configuration>
</plugin>
<!-- add swagger - ui as resource to output package -->
<plugin >
<artifactId > maven-resources-plugin</artifactId>
<version > 3.1.0</version>
<executions >
<execution >
<id > copy-resources</id>
<phase > generate-resources</phase>
<goals >
<goal > copy-resources</goal>
</goals>
<configuration >
<outputDirectory > ${project.build.directory}/classes/resources/swagger-ui</outputDirectory>
<resources >
<resource >
<directory > ${project.build.directory}/swagger-ui.unpacked/META-INF/resources/webjars/swagger-ui/${swagger-ui.version}</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-jar-plugin</artifactId>
<version > 3.0.2</version>
<configuration >
<archive >
<manifest >
<addDefaultImplementationEntries > true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin >
<groupId > org.apache.maven.plugins</groupId>
<artifactId > maven-shade-plugin</artifactId>
<version > 2.4.3</version>
<configuration >
<createDependencyReducedPom > false</createDependencyReducedPom>
<artifactSet >
<excludes >
<!-- Don't include original swagger - UI as we're including our own modified version -->
<exclude > org.webjars:swagger-ui</exclude>
</excludes>
</artifactSet>
<filters >
<filter >
<artifact > *:*</artifact>
<excludes >
<exclude > META-INF/*.SF</exclude>
<exclude > META-INF/*.DSA</exclude>
<exclude > META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
<executions >
<execution >
<phase > package</phase>
<goals >
<goal > shade</goal>
</goals>
<configuration >
<transformers >
<transformer
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass > controller.Controller</mainClass>
<manifestEntries >
<Class-Path > . ..</Class-Path>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories >
<repository >
<id > project.local</id>
<name > project</name>
<url > file:${project.basedir}/lib</url>
</repository>
</repositories>
<dependencies >
<!-- HSQLDB for repository -->
<dependency >
<groupId > org.hsqldb</groupId>
<artifactId > hsqldb</artifactId>
<version > ${hsqldb.version}</version>
</dependency>
<!-- CIYAM AT (automated transactions) -->
<dependency >
<groupId > org.ciyam</groupId>
<artifactId > at</artifactId>
<version > 1.0</version>
</dependency>
<!-- Bitcoin support -->
<dependency >
<groupId > org.bitcoinj</groupId>
<artifactId > bitcoinj-core</artifactId>
<version > 0.14.7</version>
</dependency>
<!-- Utilities -->
<dependency >
<groupId > com.googlecode.json-simple</groupId>
<artifactId > json-simple</artifactId>
<version > 1.1.1</version>
</dependency>
<dependency >
<groupId > org.apache.commons</groupId>
<artifactId > commons-text</artifactId>
<version > 1.4</version>
</dependency>
<dependency >
<groupId > commons-net</groupId>
<artifactId > commons-net</artifactId>
<version > 3.3</version>
</dependency>
<dependency >
<groupId > com.google.guava</groupId>
<artifactId > guava</artifactId>
<version > 25.0-jre</version>
</dependency>
<!-- Logging: log4j2 -->
<dependency >
<groupId > org.apache.logging.log4j</groupId>
<artifactId > log4j-core</artifactId>
<version > ${log4j.version}</version>
</dependency>
<dependency >
<groupId > org.apache.logging.log4j</groupId>
<artifactId > log4j-api</artifactId>
<version > ${log4j.version}</version>
</dependency>
<!-- Logging: slf4j used by Jetty -->
<dependency >
<groupId > org.slf4j</groupId>
<artifactId > slf4j-api</artifactId>
<version > ${slf4j.version}</version>
</dependency>
<dependency >
<groupId > org.slf4j</groupId>
<artifactId > slf4j-simple</artifactId>
<version > ${slf4j.version}</version>
</dependency>
<!-- Servlet related -->
<dependency >
<groupId > javax.servlet</groupId>
<artifactId > javax.servlet-api</artifactId>
<version > 4.0.1</version>
</dependency>
<dependency >
<groupId > javax.mail</groupId>
<artifactId > mail</artifactId>
<version > 1.5.0-b01</version>
</dependency>
<!-- Jetty -->
<dependency >
<groupId > org.eclipse.jetty</groupId>
<artifactId > jetty-server</artifactId>
<version > ${jetty.version}</version>
<classifier > config</classifier>
</dependency>
<dependency >
<groupId > org.eclipse.jetty</groupId>
<artifactId > jetty-servlet</artifactId>
<version > ${jetty.version}</version>
<type > jar</type>
</dependency>
<dependency >
<groupId > org.eclipse.jetty</groupId>
<artifactId > jetty-servlets</artifactId>
<version > ${jetty.version}</version>
</dependency>
<dependency >
<groupId > org.eclipse.jetty</groupId>
<artifactId > jetty-rewrite</artifactId>
<version > ${jetty.version}</version>
</dependency>
<!-- Jersey -->
<dependency >
<groupId > org.glassfish.jersey.core</groupId>
<artifactId > jersey-server</artifactId>
<version > ${jersey.version}</version>
</dependency>
<dependency >
<groupId > org.glassfish.jersey.containers</groupId>
<artifactId > jersey-container-servlet-core</artifactId>
<version > ${jersey.version}</version>
</dependency>
<dependency >
<groupId > org.glassfish.jersey.inject</groupId>
<artifactId > jersey-hk2</artifactId>
<version > ${jersey.version}</version>
</dependency>
<dependency >
<groupId > org.glassfish.jersey.media</groupId>
<artifactId > jersey-media-moxy</artifactId>
<version > ${jersey.version}</version>
</dependency>
<dependency >
<groupId > org.glassfish.jersey.media</groupId>
<artifactId > jersey-media-multipart</artifactId>
<version > ${jersey.version}</version>
</dependency>
<!-- Swagger OpenAPI implementation -->
<dependency >
<groupId > io.swagger.core.v3</groupId>
<artifactId > swagger-jaxrs2</artifactId>
<version > ${swagger-api.version}</version>
</dependency>
<dependency >
<groupId > io.swagger.core.v3</groupId>
<artifactId > swagger-jaxrs2-servlet-initializer</artifactId>
<version > ${swagger-api.version}</version>
</dependency>
<dependency >
<groupId > org.webjars</groupId>
<artifactId > swagger-ui</artifactId>
<version > ${swagger-ui.version}</version>
</dependency>
<!-- Testing -->
<dependency >
<groupId > org.junit.jupiter</groupId>
<artifactId > junit-jupiter-engine</artifactId>
<version > 5.3.1</version>
</dependency>
<dependency >
<groupId > org.hamcrest</groupId>
<artifactId > hamcrest-library</artifactId>
<version > 1.3</version>
</dependency>
<!-- BouncyCastle for crypto, including TLS secure networking -->
<dependency >
<groupId > org.bouncycastle</groupId>
<artifactId > bcprov-jdk15on</artifactId>
<version > ${bouncycastle.version}</version>
</dependency>
</dependencies>
</project>