openequella / openEQUELLA-blackboard-integration

0 stars 3 forks source link

Bb oEQ Web Service fails to upload #7

Closed cbeach47 closed 5 years ago

cbeach47 commented 6 years ago

Coming out of the testing of #1 and #4, the build of the Web Services is failing to upload and be installed in Blackboard (tried on a MH v3400 instance).

There is also a probably deeper issue that SOAP web services will be deprecated (see https://community.blackboard.com/community/developers/learn/blog/2018/09/28/soon-to-be-announced-deprecation-of-web-services ), so the future is converting the EQUELLA.WS calls into REST APIs (which require changes on the oEQ code base).

abidingotter commented 5 years ago

I removed the ContextTag from the JAR (since it's JSP related and the web service does not know about JSPs) and managed to progress beyond the initial error when uploading the webservice. The new problem is a long standing Blackboard bug: it does not read the zip entry stream fully, and so when your class grows beyond a certain size it thinks it's corrupt. In the old Building Block this was alleviated somewhat by the use of Proguard. I had also made attempts to split the functionality into as many smaller classes as possible to prevent this becoming an issue. We had logged this bug with Blackboard before, but nothing came of it.

abidingotter commented 5 years ago

I've done some work to split out some functionality in ZEquellaWebserviceImpl, and it seems I was able to reduce the class size just enough to be able to upload the webservice successfully.

@cbeach47 FYI: I have committed the changes in the issue/4 branch. Note that I simply copy and pasted all the classes from the common project (except the ContextTag class) into the webservice project, as I didn't fancy a crash course in Gradle to work out how to do this properly. Ultimately the build file would be reverted back to how it was, but exclude the ContextTag class in the build process and final jar. I created a new WsHelper class next to ZEquellaWebservice that extracted some of the methods from it. In my haste, I have only formatted it in the default VS Code Java format.

cbeach47 commented 5 years ago

This fix has now been pushed to master via PR #9