java-client
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>nl.reinkrul.nuts</groupId>
<artifactId>java-client</artifactId>
<version>6.1.0</version>
</dependency><?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>nl.reinkrul.nuts</groupId>
<artifactId>java-client</artifactId>
<packaging>jar</packaging>
<version>6.1.0</version>
<name>Java Nuts Client Library</name>
<url>https://github.com/reinkrul/java-nuts-client</url>
<description>Java client library for using the Nuts Node's REST API.</description>
<scm>
<connection>https://github.com/reinkrul/java-nuts-client.git</connection>
<developerConnection>https://github.com/reinkrul/java-nuts-client.git</developerConnection>
<url>https://github.com/reinkrul/java-nuts-client</url>
</scm>
<licenses>
<license>
<name>Unlicense</name>
<url>http://unlicense.org</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>Rein Krul</name>
<email>info@reinkrul.nl</email>
<organization>Rein Krul IT Consultancy</organization>
<organizationUrl>https://www.reinkrul.nl</organizationUrl>
</developer>
</developers>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<nuts.version>v6.1.7</nuts.version>
<openapi.spec.baseurl>
https://raw.githubusercontent.com/nuts-foundation/nuts-node/${nuts.version}/docs/_static
</openapi.spec.baseurl>
<openapi.spec.dir>${project.build.outputDirectory}/spec</openapi.spec.dir>
<!-- OpenAPI Generator properties -->
<openapi.generator.maven.plugin.output>${project.basedir}/target/generated</openapi.generator.maven.plugin.output>
<openapi.generator.maven.plugin.artifactVersion>1.0-SNAPSHOT</openapi.generator.maven.plugin.artifactVersion>
<jersey-version>3.1.1</jersey-version>
<jackson-version>2.15.2</jackson-version>
<jackson-databind-version>2.15.2</jackson-databind-version>
<jackson-databind-nullable-version>0.2.6</jackson-databind-nullable-version>
<jakarta-annotation-version>2.1.1</jakarta-annotation-version>
</properties>
<repositories>
<repository>
<id>danubetech-maven-public</id>
<url>https://repo.danubetech.com/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<!-- @Nullable annotation -->
<dependency>
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
<version>3.0.2</version>
</dependency>
<!-- HTTP client: jersey-client -->
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</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-multipart</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey-version}</version>
</dependency>
<!-- JSON processing: jackson -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${jackson-databind-version}</version>
</dependency>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>jackson-databind-nullable</artifactId>
<version>${jackson-databind-nullable-version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>${jackson-version}</version>
</dependency>
<dependency>
<groupId>jakarta.annotation</groupId>
<artifactId>jakarta.annotation-api</artifactId>
<version>${jakarta-annotation-version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.connectors</groupId>
<artifactId>jersey-apache-connector</artifactId>
<version>${jersey-version}</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.9.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>decentralized-identity</groupId>
<artifactId>did-common-java</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>com.danubetech</groupId>
<artifactId>verifiable-credentials-java</artifactId>
<version>1.7.0</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>src/generated</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>download-spec</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<!-- Commons -->
<mkdir dir="${openapi.spec.dir}/common/"/>
<get src="${openapi.spec.baseurl}/common/error_response.yaml"
dest="${openapi.spec.dir}/common/error_response.yaml"/>
<get src="${openapi.spec.baseurl}/common/ssi_types.yaml"
dest="${openapi.spec.dir}/common/ssi_types_original.yaml"/>
<concat destfile="${openapi.spec.dir}/common/ssi_types.yaml">
<fileset file="ssi_types_appendage.yaml" />
<fileset file="${openapi.spec.dir}/common/ssi_types_original.yaml" />
</concat>
<!-- VDR -->
<mkdir dir="${openapi.spec.dir}/vdr/"/>
<get src="${openapi.spec.baseurl}/vdr/v2.yaml"
dest="${openapi.spec.dir}/vdr/v2.yaml"/>
<mkdir dir="${openapi.spec.dir}/vdr/"/>
<get src="${openapi.spec.baseurl}/vdr/v2.yaml"
dest="${openapi.spec.dir}/vdr/v2.yaml"/>
<!-- VCR -->
<mkdir dir="${openapi.spec.dir}/vcr/"/>
<get src="${openapi.spec.baseurl}/vcr/vcr_v2.yaml"
dest="${openapi.spec.dir}/vcr/v2.yaml"/>
<!-- DIDMan -->
<mkdir dir="${openapi.spec.dir}/didman/"/>
<get src="${openapi.spec.baseurl}/didman/v1.yaml"
dest="${openapi.spec.dir}/didman/v1.yaml"/>
<!-- Discovery -->
<mkdir dir="${openapi.spec.dir}/discovery/"/>
<get src="${openapi.spec.baseurl}/discovery/v1.yaml"
dest="${openapi.spec.dir}/discovery/v1.yaml"/>
<!-- Network -->
<mkdir dir="${openapi.spec.dir}/network/"/>
<get src="${openapi.spec.baseurl}/network/v1.yaml"
dest="${openapi.spec.dir}/network/v1.yaml"/>
<!-- Crypto -->
<mkdir dir="${openapi.spec.dir}/crypto/"/>
<get src="${openapi.spec.baseurl}/crypto/v1.yaml"
dest="${openapi.spec.dir}/crypto/v1.yaml"/>
<!-- Auth -->
<mkdir dir="${openapi.spec.dir}/auth/"/>
<get src="${openapi.spec.baseurl}/auth/v1.yaml"
dest="${openapi.spec.dir}/auth/v1.yaml"/>
<mkdir dir="${openapi.spec.dir}/auth/"/>
<get src="${openapi.spec.baseurl}/auth/v2.yaml"
dest="${openapi.spec.dir}/auth/v2.yaml"/>
</target>
</configuration>
</execution>
<execution>
<!--
We have our own DiscoveryApi class, so change the tag of discovery services to cause the
original generated class to have a base class name, so we can extend it as DiscoveryApi.
-->
<id>replace-discovery-tag</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<replace file="${openapi.spec.dir}/discovery/v1.yaml">
<replacefilter token="- discovery" value="- baseDiscovery" />
</replace>
</target>
</configuration>
</execution>
<execution>
<!-- We have our own Configuration class to provide ApiClient instances, since we need custom deserializers -->
<id>remove-generated-configuration-class</id>
<phase>process-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<delete file="target/generated/src/main/java/nl/reinkrul/nuts/Configuration.java"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>7.5.0</version>
<configuration>
<generatorName>java</generatorName>
<generateModelTests>false</generateModelTests>
<generateModelDocumentation>false</generateModelDocumentation>
<generateApiTests>false</generateApiTests>
<generateApis>true</generateApis>
<generateApiDocumentation>false</generateApiDocumentation>
<additionalProperties>
supportUrlQuery=false
</additionalProperties>
<configOptions>
<groupId>nl.reinkrul.nuts</groupId>
<artifactId>java-client</artifactId>
<!-- SCM -->
<scmDeveloperConnection>https://github.com/reinkrul/java-nuts-client.git
</scmDeveloperConnection>
<scmConnection>https://github.com/reinkrul/java-nuts-client.git</scmConnection>
<scmUrl>https://github.com/reinkrul/java-nuts-client</scmUrl>
<!-- Developer -->
<developerName>Rein Krul</developerName>
<developerEmail>info@reinkrul.nl</developerEmail>
<developerOrganization>Rein Krul IT Consultancy</developerOrganization>
<developerOrganizationUrl>https://www.reinkrul.nl</developerOrganizationUrl>
<!-- Misc -->
<artifactDescription>Java client library for using the Nuts Node's REST API.</artifactDescription>
<library>jersey3</library>
</configOptions>
<typeMappings>
</typeMappings>
<!-- Mappings to support single common model, so they don't duplicate for each module -->
<schemaMappings>
DIDDocument=nl.reinkrul.nuts.common.DIDDocument,
VerifiableCredential=nl.reinkrul.nuts.common.VerifiableCredential,
VerifiablePresentation=nl.reinkrul.nuts.common.VerifiablePresentation,
DIDDocumentMetadata=nl.reinkrul.nuts.common.DIDDocumentMetadata,
EmbeddedProof=nl.reinkrul.nuts.common.EmbeddedProof,
Revocation=nl.reinkrul.nuts.common.Revocation,
Service=nl.reinkrul.nuts.common.Service,
VerificationMethod=nl.reinkrul.nuts.common.VerificationMethod
</schemaMappings>
</configuration>
<executions>
<!-- Model-only OpenAPI specs need to be generated first, otherwise the ApiClient will be missing authentication schemes -->
<execution>
<id>generate-common-ssi-types</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/common/ssi_types.yaml</inputSpec>
<skipValidateSpec>true</skipValidateSpec>
<!-- Reset schema mappings, which are there for commons -->
<schemaMappings>
DIDDocument=nl.reinkrul.nuts.common.DIDDocument,
VerifiableCredential=nl.reinkrul.nuts.common.VerifiableCredential,
VerifiablePresentation=nl.reinkrul.nuts.common.VerifiablePresentation
</schemaMappings>
<configOptions>
<apiPackage>nl.reinkrul.nuts.common</apiPackage>
<modelPackage>nl.reinkrul.nuts.common</modelPackage>
<generateApis>false</generateApis>
</configOptions>
</configuration>
</execution>
<!-- VDR -->
<execution>
<id>generate-vdr-v2-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/vdr/v2.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.vdr</apiPackage>
<modelPackage>nl.reinkrul.nuts.vdr</modelPackage>
<invokerPackage>nl.reinkrul.nuts</invokerPackage>
</configOptions>
</configuration>
</execution>
<!-- VCR -->
<execution>
<id>generate-vcr-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/vcr/v2.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.vcr</apiPackage>
<modelPackage>nl.reinkrul.nuts.vcr</modelPackage>
</configOptions>
</configuration>
</execution>
<!-- DIDMan -->
<execution>
<id>generate-didman-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/didman/v1.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.didman</apiPackage>
<modelPackage>nl.reinkrul.nuts.didman</modelPackage>
</configOptions>
</configuration>
</execution>
<!-- Discovery Service -->
<execution>
<id>generate-discovery-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/discovery/v1.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.discovery</apiPackage>
<modelPackage>nl.reinkrul.nuts.discovery</modelPackage>
</configOptions>
</configuration>
</execution>
<!-- Network -->
<execution>
<id>generate-network-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/network/v1.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.network</apiPackage>
<modelPackage>nl.reinkrul.nuts.network</modelPackage>
</configOptions>
</configuration>
</execution>
<!-- Crypto -->
<execution>
<id>generate-crypto-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/crypto/v1.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.crypto</apiPackage>
<modelPackage>nl.reinkrul.nuts.crypto</modelPackage>
</configOptions>
</configuration>
</execution>
<!-- Auth -->
<execution>
<id>generate-auth-v1-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/auth/v1.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.auth.v1</apiPackage>
<modelPackage>nl.reinkrul.nuts.auth.v1</modelPackage>
<invokerPackage>nl.reinkrul.nuts</invokerPackage>
</configOptions>
</configuration>
</execution>
<execution>
<id>generate-auth-v2-client</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${openapi.spec.dir}/auth/v2.yaml</inputSpec>
<configOptions>
<apiPackage>nl.reinkrul.nuts.auth.v2</apiPackage>
<modelPackage>nl.reinkrul.nuts.auth.v2</modelPackage>
<invokerPackage>nl.reinkrul.nuts</invokerPackage>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${project.build.directory}/generated/src/main/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<doclint>none</doclint>
<tags>
<tag>
<name>http.response.details</name>
<placement>a</placement>
<head>Http Response Details:</head>
</tag>
</tags>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.9.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>sign-artifacts</id>
<build>
<plugins>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>