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

[BUG] JNLP for eXist 6.3.0 release does not have references to bouncy castle libs #5544

Closed
raducoravu opened this issue Nov 11, 2024 · 15 comments · Fixed by #5545
Closed

[BUG] JNLP for eXist 6.3.0 release does not have references to bouncy castle libs #5544

raducoravu opened this issue Nov 11, 2024 · 15 comments · Fixed by #5545
Assignees
Labels
triage issue needs to be investigated

Comments

@raducoravu
Copy link

Describe the bug
Oxygen XML Editor uses the JNLP provided by the eXist server "exist/webstart/exist.jnlp" to check what libraries are referenced there and to download them for configuring the Exist connection from Oxygen to Exist.

Expected behavior
The exist.jnlp should refer all JAR libraries necessary by the eXist connector.
But when I use only the JAR libraries referenced from the exist.jnlp in Oxygen I get an error when the connection is established:

 java.lang.NoClassDefFoundError: org/bouncycastle/crypto/ExtendedDigest
at org.exist.util.crypto.digest.DigestType.<clinit>(DigestType.java:33)
at org.exist.xmldb.RemoteCollection.getResource(RemoteCollection.java:428)

so I think the eXist JNLP should refer to some extra JAR libraries, the bouncycastle libraries.

@line-o line-o added the triage issue needs to be investigated label Nov 11, 2024
@reinhapa
Copy link
Member

@line-o as I remember one of the later bouncy castle libs has split out certain services to additional artifacts... maybe this causes the problem here..

@dizzzz
Copy link
Member

dizzzz commented Nov 11, 2024

@raducoravu can I find a log file in the app? where to find on a Mac?

@dizzzz
Copy link
Member

dizzzz commented Nov 11, 2024

@raducoravu I have the ambition.... to change the connection mechanism. No download, pure xmlrpc or REST.... (we discussed it in Prague once I remember)

@dizzzz
Copy link
Member

dizzzz commented Nov 11, 2024

image

even with all BC-jars on the paths.... I 'd need to see a deeper level.

@reinhapa could this be caused by the changed xmldb-api jar?

@reinhapa
Copy link
Member

@reinhapa could this be caused by the changed xmldb-api jar?

Possible...

@line-o
Copy link
Member

line-o commented Nov 11, 2024

@dizzzz @reinhapa I was under the impression only the develop branch has the XMLDB API changes and not 6.x.x

@reinhapa
Copy link
Member

@dizzzz @reinhapa I was under the impression only the develop branch has the XMLDB API changes and not 6.x.x

As far as I know it should only differ on develop but I do not know the exact systems where that error from @dizzzz was coming from and more stack details are needed here...

@raducoravu
Copy link
Author

With Oxygen 26.1 things seems to work just by adding a reference to bcprov-jdk18on-1.79.jar as @dizzzz did in the JNLP.
@dizzzz obtains another error related to "Collection.listChildCollections" because he is probably using an older Oxygen version. In Oxygen 26.1 I needed to write special code to take into account the API changes of the "Collection.listChildCollections" method.

@raducoravu
Copy link
Author

@raducoravu I have the ambition.... to change the connection mechanism. No download, pure xmlrpc or REST.... (we discussed it in Prague once I remember)

One could probably build an Oxygen Java-based plugin which handles the Exist DB connection in its own way, browsing files, opening, saving, imports and exports, running XQueries, but that would be quite a large undertake.

@reinhapa
Copy link
Member

image

@dizzzz the fix proposed on develop would work for Oxygen and 6.x.x

@reinhapa
Copy link
Member

One could probably build an Oxygen Java-based plugin which handles the Exist DB connection in its own way, browsing files, opening, saving, imports and exports, running XQueries, but that would be quite a large undertake.

@raducoravu I would like to offer a complete gRPC Protobuf definition alongside with an updated XMLDB::API version that would open the creation of a simple remote client usable by Oxygen and others...

@raducoravu
Copy link
Author

@reinhapa for now we do not have the human resources to re-implement our Exist DB connection using other APIs but if the APIs become available maybe we will in time.

@dizzzz
Copy link
Member

dizzzz commented Nov 17, 2024

@raducoravu what (exist) APIs does the OxygenXML bridge use under the hood? xmlrpc directly? of the xmldb-api as abstraction.. There is also server side code validation involved no?

@raducoravu
Copy link
Author

@dizzzz we are using APIs like org.xmldb.api.base.Database.getCollection(String, String, String).
Besides using the APIs to list a collection's contents, open, save files we also seem to use APIs like "org.exist.xmldb.RemoteXPathQueryService.compileAndCheck(String)" to validate XQuery content.

@dizzzz
Copy link
Member

dizzzz commented Nov 18, 2024

Perfect :-) that will make things rather easy I think;

Let me have a look at it coming week...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
triage issue needs to be investigated
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

4 participants