diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 01ebc156..0393cabc 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,7 +28,7 @@ jobs:
steps:
- uses: actions/checkout@v1
- name: Set release version
- run: echo ::set-env name=RELEASE_VERSION::$(echo ${GITHUB_REF:11}"-SNAPSHOT")
+ run: echo "RELEASE_VERSION=${GITHUB_REF:11}-SNAPSHOT" >> $GITHUB_ENV
- name: Build and deploy to Sonatype snapshot
uses: digipost/action-maven-publish@1.1.0
with:
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 29e92841..4ecf5560 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -12,7 +12,7 @@ jobs:
- name: Check out Git repository
uses: actions/checkout@v1
- name: Set release version
- run: echo ::set-env name=RELEASE_VERSION::$(echo ${GITHUB_REF:10})
+ run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV
- name: Release to Central Repository
uses: digipost/action-maven-publish@1.1.0
with:
diff --git a/pom.xml b/pom.xml
index dab76cd5..88a63db4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
1.8
1.8
multiple-documents-SNAPSHOT
- 1.7.29
+ 1.7.30
@@ -38,21 +38,21 @@
org.springframework
spring-framework-bom
- 5.2.1.RELEASE
+ 5.3.3
pom
import
org.glassfish.jersey
jersey-bom
- 2.29.1
+ 2.33
pom
import
org.junit
junit-bom
- 5.6.0-M1
+ 5.7.0
pom
import
@@ -74,7 +74,7 @@
org.apache.httpcomponents
httpclient
- 4.5.10
+ 4.5.13
commons-logging
@@ -85,7 +85,7 @@
org.apache.httpcomponents
httpcore
- 4.4.12
+ 4.4.14
jakarta.annotation
@@ -118,13 +118,13 @@
commons-io
commons-io
- 2.6
+ 2.8.0
test
commons-codec
commons-codec
- 1.13
+ 1.15
org.springframework
@@ -137,12 +137,12 @@
org.springframework.ws
spring-xml
- 3.0.8.RELEASE
+ 3.0.10.RELEASE
org.apache.commons
commons-lang3
- 3.9
+ 3.11
@@ -182,7 +182,7 @@
nl.jqno.equalsverifier
equalsverifier
- 3.1.10
+ 3.5.1
test
@@ -206,7 +206,7 @@
no.digipost
digg
- 0.22
+ 0.25
test
diff --git a/src/main/java/no/digipost/signature/client/asice/manifest/CreateDirectManifest.java b/src/main/java/no/digipost/signature/client/asice/manifest/CreateDirectManifest.java
index 2d179cbb..f7e97a7d 100644
--- a/src/main/java/no/digipost/signature/client/asice/manifest/CreateDirectManifest.java
+++ b/src/main/java/no/digipost/signature/client/asice/manifest/CreateDirectManifest.java
@@ -40,7 +40,7 @@ Object buildXmlManifest(DirectJob job, Sender sender) {
.withSigners(signers)
.withRequiredAuthentication(job.getRequiredAuthentication().map(AuthenticationLevel::getXmlEnumValue).orElse(null))
.withSender(new XMLSender().withOrganizationNumber(sender.getOrganizationNumber()))
- .withDocuments(new XMLDirectDocument()
+ .withDocument(new XMLDirectDocument()
.withTitle(document.getTitle())
.withDescription(document.getMessage())
.withHref(XMLHref.of(document.getFileName()))
diff --git a/src/main/java/no/digipost/signature/client/asice/manifest/CreatePortalManifest.java b/src/main/java/no/digipost/signature/client/asice/manifest/CreatePortalManifest.java
index 0ae91f63..889681c8 100644
--- a/src/main/java/no/digipost/signature/client/asice/manifest/CreatePortalManifest.java
+++ b/src/main/java/no/digipost/signature/client/asice/manifest/CreatePortalManifest.java
@@ -60,11 +60,12 @@ Object buildXmlManifest(PortalJob job, Sender sender) {
.withSigners(xmlSigners)
.withRequiredAuthentication(job.getRequiredAuthentication().map(AuthenticationLevel::getXmlEnumValue).orElse(null))
.withSender(new XMLSender().withOrganizationNumber(sender.getOrganizationNumber()))
+ .withTitle(job.getTitle())
+ .withNonsensitiveTitle(job.getNonsensitiveTitle().orElse(null))
+ .withDescription(job.getDescription().orElse(null))
.withDocuments(documents.stream().map(document ->
new XMLPortalDocument()
.withTitle(document.getTitle())
- .withNonsensitiveTitle(document.getNonsensitiveTitle())
- .withDescription(document.getMessage())
.withHref(XMLHref.of(document.getFileName()))
.withMime(document.getMimeType())
).collect(Collectors.toList())
diff --git a/src/main/java/no/digipost/signature/client/core/Document.java b/src/main/java/no/digipost/signature/client/core/Document.java
index 3bdaf02d..1871a134 100644
--- a/src/main/java/no/digipost/signature/client/core/Document.java
+++ b/src/main/java/no/digipost/signature/client/core/Document.java
@@ -5,14 +5,12 @@
public abstract class Document implements ASiCEAttachable {
private String title;
- private String message;
private String fileName;
private byte[] document;
private FileType fileType;
- protected Document(final String title, final String message, final String fileName, final FileType fileType, final byte[] document) {
+ protected Document(final String title, final String fileName, final FileType fileType, final byte[] document) {
this.title = title;
- this.message = message;
this.fileName = fileName;
this.fileType = fileType;
this.document = document;
@@ -37,10 +35,6 @@ public String getTitle() {
return title;
}
- public String getMessage() {
- return message;
- }
-
public enum FileType {
PDF("application/pdf"),
TXT("text/plain");
diff --git a/src/main/java/no/digipost/signature/client/direct/DirectDocument.java b/src/main/java/no/digipost/signature/client/direct/DirectDocument.java
index 2595e012..36caeb2e 100644
--- a/src/main/java/no/digipost/signature/client/direct/DirectDocument.java
+++ b/src/main/java/no/digipost/signature/client/direct/DirectDocument.java
@@ -5,14 +5,22 @@
import static no.digipost.signature.client.core.Document.FileType.PDF;
public class DirectDocument extends Document {
+
+ private final String message;
+
private DirectDocument(String title, String message, String fileName, FileType fileType, byte[] document) {
- super(title, message, fileName, fileType, document);
+ super(title, fileName, fileType, document);
+ this.message = message;
}
public static Builder builder(final String title, final String fileName, final byte[] document) {
return new Builder(title, fileName, document);
}
+ public String getMessage() {
+ return message;
+ }
+
public static class Builder {
private String title;
diff --git a/src/main/java/no/digipost/signature/client/portal/PortalDocument.java b/src/main/java/no/digipost/signature/client/portal/PortalDocument.java
index e7dfae3e..574899ba 100644
--- a/src/main/java/no/digipost/signature/client/portal/PortalDocument.java
+++ b/src/main/java/no/digipost/signature/client/portal/PortalDocument.java
@@ -5,15 +5,8 @@
import static no.digipost.signature.client.core.Document.FileType.PDF;
public class PortalDocument extends Document {
- private final String nonsensitiveTitle;
-
- private PortalDocument(String title, String nonsensitiveTitle, String message, String fileName, FileType fileType, byte[] document) {
- super(title, message, fileName, fileType, document);
- this.nonsensitiveTitle = nonsensitiveTitle;
- }
-
- public String getNonsensitiveTitle() {
- return nonsensitiveTitle;
+ private PortalDocument(String title, String fileName, FileType fileType, byte[] document) {
+ super(title, fileName, fileType, document);
}
public static Builder builder(final String title, final String fileName, final byte[] document) {
@@ -23,10 +16,8 @@ public static Builder builder(final String title, final String fileName, final b
public static class Builder {
private String title;
- private String nonsensitiveTitle;
private String fileName;
private byte[] document;
- private String message;
private FileType fileType = PDF;
public Builder(final String title, final String fileName, final byte[] document) {
@@ -35,23 +26,13 @@ public Builder(final String title, final String fileName, final byte[] document)
this.document = document;
}
- public Builder message(String message) {
- this.message = message;
- return this;
- }
-
- public Builder nonsensitiveTitle(String nonsensitiveTitle) {
- this.nonsensitiveTitle = nonsensitiveTitle;
- return this;
- }
-
public Builder fileType(final FileType fileType) {
this.fileType = fileType;
return this;
}
public PortalDocument build() {
- return new PortalDocument(title, nonsensitiveTitle, message, fileName, fileType, document);
+ return new PortalDocument(title, fileName, fileType, document);
}
}
}
diff --git a/src/main/java/no/digipost/signature/client/portal/PortalJob.java b/src/main/java/no/digipost/signature/client/portal/PortalJob.java
index 3e5674cd..81738188 100644
--- a/src/main/java/no/digipost/signature/client/portal/PortalJob.java
+++ b/src/main/java/no/digipost/signature/client/portal/PortalJob.java
@@ -17,6 +17,9 @@ public class PortalJob implements SignatureJob {
private final List signers;
private final List documents;
+ private String title;
+ private Optional nonsensitiveTitle = Optional.empty();
+ private Optional description = Optional.empty();
private String reference;
private Optional activationTime = Optional.empty();
private Long availableSeconds;
@@ -24,7 +27,8 @@ public class PortalJob implements SignatureJob {
private Optional requiredAuthentication = Optional.empty();
private Optional identifierInSignedDocuments = Optional.empty();
- private PortalJob(List signers, List documents) {
+ private PortalJob(String title, List signers, List documents) {
+ this.title = title;
this.signers = unmodifiableList(new ArrayList<>(signers));
this.documents = unmodifiableList(new ArrayList<>(documents));
}
@@ -67,16 +71,28 @@ public Long getAvailableSeconds() {
}
- public static Builder builder(PortalDocument document, PortalSigner... signers) {
- return builder(Collections.singletonList(document), Arrays.asList(signers));
+ public static Builder builder(String title, PortalDocument document, PortalSigner... signers) {
+ return builder(title, Collections.singletonList(document), Arrays.asList(signers));
}
- public static Builder builder(PortalDocument document, List signers) {
- return builder(Collections.singletonList(document), signers);
+ public static Builder builder(String title, PortalDocument document, List signers) {
+ return builder(title, Collections.singletonList(document), signers);
}
- public static Builder builder(List documents, List signers) {
- return new Builder(signers, documents);
+ public static Builder builder(String title, List documents, List signers) {
+ return new Builder(title, signers, documents);
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public Optional getNonsensitiveTitle() {
+ return nonsensitiveTitle;
+ }
+
+ public Optional getDescription() {
+ return description;
}
public static class Builder implements JobCustomizations {
@@ -84,8 +100,8 @@ public static class Builder implements JobCustomizations {
private final PortalJob target;
private boolean built = false;
- private Builder(List signers, List documents) {
- target = new PortalJob(signers, documents);
+ private Builder(String title, List signers, List documents) {
+ target = new PortalJob(title, signers, documents);
}
@Override
@@ -127,6 +143,16 @@ public Builder availableFor(long duration, TimeUnit unit) {
return this;
}
+ public Builder withNonsensitiveTitle(String nonsensitiveTitle) {
+ target.nonsensitiveTitle = Optional.of(nonsensitiveTitle);
+ return this;
+ }
+
+ public Builder withDescription(String description) {
+ target.description = Optional.of(description);
+ return this;
+ }
+
public PortalJob build() {
if (built) throw new IllegalStateException("Can't build twice");
built = true;
diff --git a/src/test/java/no/digipost/signature/client/asice/CreateASiCETest.java b/src/test/java/no/digipost/signature/client/asice/CreateASiCETest.java
index 92dafb3c..c38cd410 100644
--- a/src/test/java/no/digipost/signature/client/asice/CreateASiCETest.java
+++ b/src/test/java/no/digipost/signature/client/asice/CreateASiCETest.java
@@ -62,7 +62,6 @@ public static void initTempFolder() throws URISyntaxException, IOException {
.build();
private static final PortalDocument PORTAL_DOCUMENT = PortalDocument.builder("Title", "file.txt", "hello".getBytes())
- .message("Message")
.fileType(Document.FileType.TXT)
.build();
@@ -78,8 +77,9 @@ public void create_direct_asice_and_write_to_disk() throws IOException {
@Test
public void create_portal_asice_and_write_to_disk() throws IOException {
- PortalJob job = PortalJob.builder(PORTAL_DOCUMENT, PortalSigner.identifiedByPersonalIdentificationNumber("12345678910", NotificationsUsingLookup.EMAIL_ONLY).build())
+ PortalJob job = PortalJob.builder("Job title", PORTAL_DOCUMENT, PortalSigner.identifiedByPersonalIdentificationNumber("12345678910", NotificationsUsingLookup.EMAIL_ONLY).build())
.withReference("portal job")
+ .withDescription("Message")
.withActivationTime(clock.instant())
.availableFor(30, DAYS)
.build();
diff --git a/src/test/java/no/digipost/signature/client/asice/manifest/CreatePortalManifestTest.java b/src/test/java/no/digipost/signature/client/asice/manifest/CreatePortalManifestTest.java
index 79e513e0..5ec9c12c 100644
--- a/src/test/java/no/digipost/signature/client/asice/manifest/CreatePortalManifestTest.java
+++ b/src/test/java/no/digipost/signature/client/asice/manifest/CreatePortalManifestTest.java
@@ -26,13 +26,13 @@ void accept_valid_manifest() {
CreatePortalManifest createManifest = new CreatePortalManifest(clock);
PortalDocument document = PortalDocument.builder("Title", "file.txt", "hello".getBytes())
- .message("Message")
.fileType(Document.FileType.TXT)
.build();
- PortalJob job = PortalJob.builder(document, Collections.singletonList(PortalSigner.identifiedByPersonalIdentificationNumber("12345678910", NotificationsUsingLookup.EMAIL_ONLY).build()))
+ PortalJob job = PortalJob.builder("Job title", document, Collections.singletonList(PortalSigner.identifiedByPersonalIdentificationNumber("12345678910", NotificationsUsingLookup.EMAIL_ONLY).build()))
.withActivationTime(clock.instant())
.availableFor(30, DAYS)
+ .withDescription("Message")
.withIdentifierInSignedDocuments(IdentifierInSignedDocuments.PERSONAL_IDENTIFICATION_NUMBER_AND_NAME)
.build();
assertThat(createManifest, where(__ -> __.createManifest(job, new Sender("123456789")), instanceOf(Manifest.class)));
diff --git a/src/test/java/no/digipost/signature/client/docs/PortalClientUseCases.java b/src/test/java/no/digipost/signature/client/docs/PortalClientUseCases.java
index 089f0500..d9fcd61e 100644
--- a/src/test/java/no/digipost/signature/client/docs/PortalClientUseCases.java
+++ b/src/test/java/no/digipost/signature/client/docs/PortalClientUseCases.java
@@ -27,9 +27,10 @@ static void create_and_send_signature_job() {
PortalClient client = new PortalClient(clientConfiguration);
byte[] documentBytes = null; // Loaded document bytes
- PortalDocument document = PortalDocument.builder("Subject", "document.pdf", documentBytes).build();
+ PortalDocument document = PortalDocument.builder("Document title", "document.pdf", documentBytes).build();
PortalJob portalJob = PortalJob.builder(
+ "Job title",
document,
PortalSigner.identifiedByPersonalIdentificationNumber("12345678910",
NotificationsUsingLookup.EMAIL_ONLY).build(),
@@ -95,9 +96,10 @@ static void specifying_queues() {
Sender sender = new Sender("000000000", PollingQueue.of("CustomPollingQueue"));
byte[] documentBytes = null; // Loaded document bytes
- PortalDocument document = PortalDocument.builder("Subject", "document.pdf", documentBytes).build();
+ PortalDocument document = PortalDocument.builder("Document title", "document.pdf", documentBytes).build();
PortalJob portalJob = PortalJob.builder(
+ "Job title",
document,
PortalSigner.identifiedByPersonalIdentificationNumber("12345678910",
NotificationsUsingLookup.EMAIL_ONLY).build(),