<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.61</bouncycastle.version> <dagger.version>1.2.2</dagger.version> <hsqldb.version>r5970</hsqldb.version> <sqltool.version>2.4.1</sqltool.version> <jetty.version>9.4.17.v20190418</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> <felix-bundle-plugin.version>3.5.0</felix-bundle-plugin.version> <package-info-maven-plugin.version>1.1.0</package-info-maven-plugin.version> <build.timestamp>${maven.build.timestamp}</build.timestamp> </properties> <build> <sourceDirectory>src/main/java</sourceDirectory> <testSourceDirectory>src/test/java</testSourceDirectory> <resources> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <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> <!-- Generate package-info.java files for JAXB, to convert byte[] to/from Base58 --> <plugin> <groupId>com.github.bohnman</groupId> <artifactId>package-info-maven-plugin</artifactId> <version>${package-info-maven-plugin.version}</version> <configuration> <packages> <package> <pattern>org.qora.data.**</pattern> <template>${project.build.sourceDirectory}/org/qora/data/package-info.java</template> </package> <package> <pattern>org.qora.api.model**</pattern> <template>${project.build.sourceDirectory}/org/qora/data/package-info.java</template> </package> </packages> <outputDirectory>${project.build.directory}/generated-sources/package-info</outputDirectory> </configuration> <executions> <execution> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> <!-- Include generated package-info.java sources in build --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>${project.build.directory}/generated-sources/package-info</source> </sources> </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>org.qora.controller.Controller</mainClass> <manifestEntries> <Class-Path>. ..</Class-Path> </manifestEntries> </transformer> </transformers> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>${felix-bundle-plugin.version}</version> <extensions>true</extensions> <configuration> <instructions> <Include-Resource> {maven-resources}, {maven-dependencies} </Include-Resource> <Bundle-ClassPath>.,..,{maven-dependencies}</Bundle-ClassPath> </instructions> </configuration> </plugin> </plugins> <pluginManagement> <plugins> <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven-dependency-plugin </artifactId> <versionRange> [2.8,) </versionRange> <goals> <goal>unpack</goal> </goals> </pluginExecutionFilter> <action> <execute></execute> </action> </pluginExecution> <pluginExecution> <pluginExecutionFilter> <groupId> com.google.code.maven-replacer-plugin </groupId> <artifactId> replacer </artifactId> <versionRange> [1.5.3,) </versionRange> <goals> <goal>replace</goal> </goals> </pluginExecutionFilter> <action> <execute></execute> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> </build> <repositories> <repository> <id>project.local</id> <name>project</name> <url>file:${project.basedir}/lib</url> </repository> </repositories> <dependencies> <!-- https://mvnrepository.com/artifact/org.codehaus.mojo/build-helper-maven-plugin --> <dependency> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>3.0.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.github.bohnman/package-info-maven-plugin --> <dependency> <groupId>com.github.bohnman</groupId> <artifactId>package-info-maven-plugin</artifactId> <version>${package-info-maven-plugin.version}</version> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>3.5.0</version> </dependency> <!-- HSQLDB for repository --> <dependency> <groupId>org.hsqldb</groupId> <artifactId>hsqldb</artifactId> <version>${hsqldb.version}</version> </dependency> <dependency> <groupId>org.hsqldb</groupId> <artifactId>sqltool</artifactId> <version>${sqltool.version}</version> <scope>test</scope> </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> <!-- redirect slf4j to log4j2 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> </dependency> <!-- redirect java.utils.logging to log4j2 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jul</artifactId> <version>${log4j.version}</version> </dependency> <!-- Logging: slf4j used by Jetty/Jersey --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</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> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-client</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> <exclusions> <exclusion><!-- exclude javax.inject-1.jar because other jersey modules include javax.inject v2+ --> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> </exclusion> </exclusions> </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> <exclusions> <exclusion><!-- excluded because included in swagger-jaxrs2-servlet-initializer --> <groupId>io.swagger.core.v3</groupId> <artifactId>swagger-integration</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.webjars</groupId> <artifactId>swagger-ui</artifactId> <version>${swagger-ui.version}</version> </dependency> <!-- Testing --> <!-- disabled pending better Eclipse support <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> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bctls-jdk15on</artifactId> <version>${bouncycastle.version}</version> </dependency> </dependencies> </project>