Skip to content

Commit

Permalink
Merge pull request #7 from digipost/KanBekreftesSomBehandletKvittering
Browse files Browse the repository at this point in the history
Kan bekreftes som behandlet kvittering
  • Loading branch information
asjafjell authored Jun 15, 2016
2 parents 9b64b89 + 85ec53d commit d3ce82a
Show file tree
Hide file tree
Showing 10 changed files with 53 additions and 39 deletions.
2 changes: 1 addition & 1 deletion api-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>no.digipost</groupId>
<artifactId>sdp-shared</artifactId>
<version>1.1.18-SNAPSHOT</version>
<version>1.1.19-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
5 changes: 3 additions & 2 deletions api-client/src/main/java/no/digipost/api/MessageSender.java
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ public EbmsApplikasjonsKvittering hentKvittering(final EbmsPullRequest pullReque
return hentKvittering(pullRequest, null);
}

public EbmsApplikasjonsKvittering hentKvittering(final EbmsPullRequest pullRequest, final EbmsApplikasjonsKvittering tidligereKvitteringSomSkalBekreftes) {
public EbmsApplikasjonsKvittering hentKvittering(final EbmsPullRequest pullRequest, final KanBekreftesSomBehandletKvittering tidligereKvitteringSomSkalBekreftes) {
return meldingTemplate.sendAndReceive(uri, new PullRequestSender(pullRequest, marshaller, tidligereKvitteringSomSkalBekreftes), new ApplikasjonsKvitteringReceiver(marshaller));
}

Expand Down Expand Up @@ -161,7 +161,7 @@ public static class Builder {
private ClientInterceptorWrapper clientInterceptorWrapper = new DoNothingClientInterceptorWrapper();

private Builder(final String endpointUri, final EbmsAktoer tekniskAvsenderId, final EbmsAktoer tekniskMottaker,
final WsSecurityInterceptor wsSecurityInterceptor, final KeyStoreInfo keystoreInfo) {
final WsSecurityInterceptor wsSecurityInterceptor, final KeyStoreInfo keystoreInfo) {
this.endpointUri = endpointUri;
this.tekniskAvsenderId = tekniskAvsenderId;
this.tekniskMottaker = tekniskMottaker;
Expand Down Expand Up @@ -356,6 +356,7 @@ public InsertInterceptor(final Class clazz, final ClientInterceptor interceptor)
public static interface ClientInterceptorWrapper {
ClientInterceptor wrap(ClientInterceptor clientInterceptor);
}

public static class DoNothingClientInterceptorWrapper implements ClientInterceptorWrapper {
@Override
public ClientInterceptor wrap(ClientInterceptor clientInterceptor) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public BekreftelseSender(final KanBekreftesSomBehandletKvittering kanBekreftesSo
@Override
public void doWithMessage(final WebServiceMessage message) throws IOException, TransformerException {
List<Reference> references = new ArrayList<Reference>();
references.add(kanBekreftesSomBehandletKvittering.getReferanseTilMeldingSomKvitteres().getUnmarshaled());
references.add(kanBekreftesSomBehandletKvittering.getReferanseTilMeldingSomKvitteres().getUnmarshalled());

ebmsContext.addRequestStep(new AddReferencesStep(jaxb2Marshaller, kanBekreftesSomBehandletKvittering.getMeldingsId(), references));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
package no.digipost.api.handlers;

import no.digipost.api.interceptors.steps.AddReferencesStep;
import no.digipost.api.representations.EbmsApplikasjonsKvittering;
import no.digipost.api.representations.EbmsContext;
import no.digipost.api.representations.EbmsProcessingStep;
import no.digipost.api.representations.EbmsPullRequest;
import no.digipost.api.representations.KanBekreftesSomBehandletKvittering;
import no.digipost.api.representations.Mpc;
import no.digipost.api.xml.Constants;
import no.digipost.api.xml.Marshalling;
Expand All @@ -30,18 +30,20 @@
import org.springframework.ws.client.core.WebServiceMessageCallback;
import org.springframework.ws.soap.SoapHeaderElement;
import org.springframework.ws.soap.SoapMessage;
import org.w3.xmldsig.Reference;

import javax.xml.transform.TransformerException;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class PullRequestSender extends EbmsContextAware implements WebServiceMessageCallback {

private final EbmsPullRequest pullRequest;
private final Jaxb2Marshaller marshaller;
private final EbmsApplikasjonsKvittering tidligereKvitteringSomSkalBekreftes;
private final KanBekreftesSomBehandletKvittering tidligereKvitteringSomSkalBekreftes;

public PullRequestSender(final EbmsPullRequest pullRequest, final Jaxb2Marshaller marshaller, final EbmsApplikasjonsKvittering tidligereKvitteringSomSkalBekreftes) {
public PullRequestSender(final EbmsPullRequest pullRequest, final Jaxb2Marshaller marshaller, final KanBekreftesSomBehandletKvittering tidligereKvitteringSomSkalBekreftes) {
this.pullRequest = pullRequest;
this.marshaller = marshaller;
this.tidligereKvitteringSomSkalBekreftes = tidligereKvitteringSomSkalBekreftes;
Expand All @@ -50,7 +52,10 @@ public PullRequestSender(final EbmsPullRequest pullRequest, final Jaxb2Marshalle
@Override
public void doWithMessage(final WebServiceMessage message) throws IOException, TransformerException {
if (tidligereKvitteringSomSkalBekreftes != null) {
ebmsContext.addRequestStep(new AddReferencesStep(marshaller, tidligereKvitteringSomSkalBekreftes.messageId, tidligereKvitteringSomSkalBekreftes.references));
List<Reference> referenceToMessageToBeConfirmed = new ArrayList<Reference>();
referenceToMessageToBeConfirmed.add(tidligereKvitteringSomSkalBekreftes.getReferanseTilMeldingSomKvitteres().getUnmarshalled());

ebmsContext.addRequestStep(new AddReferencesStep(marshaller, tidligereKvitteringSomSkalBekreftes.getMeldingsId(), referenceToMessageToBeConfirmed));
}

ebmsContext.addRequestStep(new EbmsProcessingStep() {
Expand All @@ -60,8 +65,7 @@ public void apply(final EbmsContext ebmsContext, final SoapHeaderElement ebmsMes
Mpc mpc = new Mpc(pullRequest.prioritet, pullRequest.mpcId);
SignalMessage signalMessage = new SignalMessage()
.withMessageInfo(pullRequest.createMessageInfo())
.withPullRequest(new PullRequest()
.withMpc(mpc.toString())
.withPullRequest(new PullRequest().withMpc(mpc.toString())
);
Marshalling.marshal(marshaller, ebmsMessaging, Constants.SIGNAL_MESSAGE_QNAME, signalMessage);
}
Expand Down
2 changes: 1 addition & 1 deletion api-commons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>no.digipost</groupId>
<artifactId>sdp-shared</artifactId>
<version>1.1.18-SNAPSHOT</version>
<version>1.1.19-SNAPSHOT</version>
</parent>

<dependencies>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,39 +25,38 @@

public class KvitteringsReferanse {

private final String marshaled;
private final String marshalled;
private final Jaxb2Marshaller marshallerSingleton = Marshalling.getMarshallerSingleton();

public String getMarshaled() {
return marshaled;
public String getMarshalled() {
return marshalled;
}

public Reference getUnmarshaled() {
return (Reference) marshallerSingleton.unmarshal(new StreamSource(new StringReader(marshaled)));
public Reference getUnmarshalled() {
return (Reference) marshallerSingleton.unmarshal(new StreamSource(new StringReader(marshalled)));
}

private KvitteringsReferanse(Reference reference) {
StringResult marshaledReference = new StringResult();
StringResult marshalledReference = new StringResult();

Jaxb2Marshaller marshallerSingleton = Marshalling.getMarshallerSingleton();
Marshalling.marshal(marshallerSingleton, reference, marshaledReference);
Marshalling.marshal(marshallerSingleton, reference, marshalledReference);

this.marshaled = marshaledReference.toString();
this.marshalled = marshalledReference.toString();
}

private KvitteringsReferanse(String marshaledReference) {
marshaled = marshaledReference;
private KvitteringsReferanse(String marshalledReference) {
marshalled = marshalledReference;
}

public static Builder builder(Reference reference) {
return new Builder(reference);
}

public static Builder builder(String marshaledReference) {
return new Builder(marshaledReference);
public static Builder builder(String marshalledReference) {
return new Builder(marshalledReference);
}


public static class Builder {
private KvitteringsReferanse target;
private boolean built = false;
Expand All @@ -66,8 +65,8 @@ private Builder(Reference reference) {
this.target = new KvitteringsReferanse(reference);
}

private Builder(String marshaledReference){
this.target = new KvitteringsReferanse(marshaledReference);
private Builder(String marshalledReference) {
this.target = new KvitteringsReferanse(marshalledReference);
}

public KvitteringsReferanse build() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package no.digipost.api.representations;

import org.fest.assertions.core.Condition;
import org.junit.Test;
import org.w3.xmldsig.Reference;

Expand All @@ -34,10 +35,19 @@ public void testGetMeldingsId() throws Exception {
}

@Test
public void testGetReferanse() throws Exception {
EbmsApplikasjonsKvittering ebmsApplikasjonskvittering = getEbmsApplikasjonskvittering();
public void testGetReferanseTilMeldingSomKvitteres() throws Exception {
KvitteringsReferanse referanseTilMeldingSomKvitteres = getEbmsApplikasjonskvittering().getReferanseTilMeldingSomKvitteres();

assertThat(referanseTilMeldingSomKvitteres.getMarshalled()).has(lengthGreaterThan(500));
}

assertThat(ebmsApplikasjonskvittering.getReferanseTilMeldingSomKvitteres()).isNotNull();
private Condition<String> lengthGreaterThan(final int length) {
return new Condition<String>() {
@Override
public boolean matches(String s) {
return s.length() > length;
}
};
}

private EbmsApplikasjonsKvittering getEbmsApplikasjonskvittering() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,24 @@ public void testBuilder_FromReference() throws Exception {

KvitteringsReferanse kvitteringsReferanse = KvitteringsReferanse.builder(referenceToOriginalMessage).build();

assertThat(kvitteringsReferanse.getMarshaled()).isNotNull();
assertThat(kvitteringsReferanse.getMarshalled()).isNotNull();
}

@Test
public void testBuilder_FromMarshaledReference() throws Exception {
String marshaledReferenceToOriginalMessage = KvitteringsReferanse.builder(ObjectMother.getReference()).build().getMarshaled();
public void testBuilder_FrommarshalledReference() throws Exception {
String marshalledReferenceToOriginalMessage = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ns5:Reference xmlns:ns5=\"http://www.w3.org/2000/09/xmldsig#\" URI=\"#id-f2ecf3b2-101e-433b-a30d-65a9b6779b5a\" xmlns:ns2=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns3=\"http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader\" xmlns:ns4=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:ns6=\"http://docs.oasis-open.org/ebxml-msg/ebms/v3.0/ns/core/200704/\" xmlns:ns7=\"http://docs.oasis-open.org/ebxml-bp/ebbp-signals-2.0\" xmlns:ns8=\"http://www.w3.org/1999/xlink\" xmlns:ns9=\"http://begrep.difi.no/sdp/schema_v10\" xmlns:ns10=\"http://uri.etsi.org/2918/v1.2.1#\" xmlns:ns11=\"http://uri.etsi.org/01903/v1.3.2#\"><ns5:DigestMethod Algorithm=\"http://www.w3.org/2001/04/xmlenc#sha256\"/><ns5:DigestValue>eFFiS1V0dUVHU3JzZ1pzU0FUNXJGKy95ZmxyK2hsMmNVQzRjS3lpTXhSTT0=</ns5:DigestValue></ns5:Reference>";

KvitteringsReferanse kvitteringsReferanse = KvitteringsReferanse.builder(marshaledReferenceToOriginalMessage).build();
KvitteringsReferanse kvitteringsReferanse = KvitteringsReferanse.builder(marshalledReferenceToOriginalMessage).build();

assertThat(kvitteringsReferanse.getMarshaled()).isEqualTo(marshaledReferenceToOriginalMessage);
assertThat(kvitteringsReferanse.getMarshalled()).isEqualTo(marshalledReferenceToOriginalMessage);
}

@Test
public void testGetUnmarshaled() {
public void testGetUnmarshalled() {
Reference referenceToOriginalMessage = ObjectMother.getReference();

KvitteringsReferanse kvitteringsReferanse = KvitteringsReferanse.builder(referenceToOriginalMessage).build();

assertThat(kvitteringsReferanse.getUnmarshaled()).isEqualTo(referenceToOriginalMessage);
assertThat(kvitteringsReferanse.getUnmarshalled()).isEqualTo(referenceToOriginalMessage);
}
}
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion>

<artifactId>sdp-shared</artifactId>
<version>1.1.18-SNAPSHOT</version>
<version>1.1.19-SNAPSHOT</version>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<description>Shared dependencies for Sikker Digital Post</description>
Expand Down
2 changes: 1 addition & 1 deletion xsd/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<groupId>no.digipost</groupId>
<artifactId>sdp-shared</artifactId>
<version>1.1.18-SNAPSHOT</version>
<version>1.1.19-SNAPSHOT</version>
</parent>


Expand Down

0 comments on commit d3ce82a

Please sign in to comment.