forked from Qortal/qortal
b5c02f49ce
Rejigged pom.xml, extracting common dependency versions as properties. Removed extraneous HSQLDB dependency (v2.4.1) as we're using svn r5836 for now. Removed calls to Security.checkApiCallAllowed() for all API calls EXCEPT /admin/stop. Throws error if remote IP is not localhost. Added 'global' OpenAPI parameters to fake /admin/dud endpoint to save copy&pasting. This will need more tidying in the future, or at least future support from swagger-core. Code added in AnnotationPostProcessor to insert global parameters in top-level OpenAPI components section. /block-explorer.html hidden from API UI BlocksResource now expects Base64 block signatures instead of Base58. Endpoints that return block data also accept optional "includeTransactions" query param which does exactly that. BlockWithTransactions API model added for above. Some attempt to get transaction-specific data returned but no luck as yet. (TransactionData, GenesisTransactionData, PaymentTransactionData touched). See https://github.com/swagger-api/swagger-core/issues/3046 TransactionsResource now has support for optional query params "limit" and "offset" so that only a subset of large results can be requested. UtilsResource added to provide convenient Base64<->Base58 conversions. /admin/uptime fixed to return uptime from application launch instead of instantiation of AdminResource class! Controller improved to detect repository and API startup failures. HSQLDBRepositoryFactory now detects when it can't open database and throws. (Before it would simply hang). Removed extraneous import from qora.account.Account
321 lines
9.6 KiB
XML
321 lines
9.6 KiB
XML
<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>
|
|
</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> |