Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add messagid as option for Jentrata client and server #63

Open
cavycorp opened this issue Jan 11, 2019 · 8 comments
Open

Add messagid as option for Jentrata client and server #63

cavycorp opened this issue Jan 11, 2019 · 8 comments

Comments

@cavycorp
Copy link
Contributor

In some cases we need to be able to control the messageid as being used within the ebXML message as being sent by Jentrata. For this we made a small modification in the webservice interface of Jentrata to allow for clients to provide a messageid. We think this change can be useful for other Jentrata users.

@aaronwalker
Copy link
Member

aaronwalker commented Jan 11, 2019

@cavycorp it is possible to set the ebXML message Id when using the jentrata integration plugin See https://github.com/jentrata/jentrata-msh/blob/master/Plugins/CorvusEbMS/src/main/java/hk/hku/cecid/ebms/spa/handler/jms/EbmsMessageHandler.java#L59

Heres an example of an integration https://github.com/jentrata/jentrata-msh/blob/master/Dist/src/main/deploy/example-ebms.xml.example you can basically rename this in the deploy directory and jentrata can pick a payload file from a folder and deliver it. It is possible to use pretty much anything supported by apache camel. For both inbound and outbound.

Ive had in the back of my mind to use this to implement a REST Api using built on top of the jentrata integration plugin.

But happy to accept any PR for the SOAP api as long as it backwardly compatible.

@cavycorp
Copy link
Contributor Author

@aaronwalker I will look into it.

@cavycorp
Copy link
Contributor Author

@aaronwalker,

We currently use the SOAP WS for our clients.
The change I propose will change the WSDL (EbmsMessageSenderService.wsdl) however the part "messageId" will be added as an optional field. The underlaying server code (EbmsMessageSenderService.java) will check if the messageId is used, obtained a value, if not the original code which generates a messageId will be called.
With these changes the SOAP WS of Jentrata will be backwards compatible. I will provide the changes probably tomorrow.

@cavycorp
Copy link
Contributor Author

@aaronwalker, a question concerning the addition of messageId as an input parameter. Should I also add code to verify the format of the messageId, to see if it is compatible to the standard? As far as I can see there is no code to do this verification within Jentrata, for example the refToMessageId isn't checked either.

The Jentrata implementation doesn't care about the format of both messageIds, any string is accepted but other ebMS2 implementations might fail when it receives a message with an incorrectly formatted messageId.

Let me know what you think.

@aaronwalker
Copy link
Member

@cavycorp yeah I am happy for you to add validation but maybe it should be possible to disable it and have it disable by default to ensure existing compatibility

@aaronwalker
Copy link
Member

@cavycorp maybe we have a strict compliance setting/mode for these types checks... thoughts?

@cavycorp
Copy link
Contributor Author

@aaronwalker yeah it might be better to leave the validation out for existing compatibility and think about, as you say, a compliance setting/mode.

I will add it without validation, the compliance mode is then something for a separate issue.

cavycorp added a commit to cavycorp/jentrata-msh that referenced this issue Jan 28, 2019
With this change the WS SOAP service for receiving send requests containing a defined messageID
cavycorp added a commit to cavycorp/jentrata-msh that referenced this issue Jan 28, 2019
This are the java code changes needed to process the messageId.
@cavycorp
Copy link
Contributor Author

cavycorp commented Feb 5, 2019

@aaronwalker, how about this change?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants