eXist-db / exist

eXist Native XML Database and Application Platform
https://exist-db.org
GNU Lesser General Public License v2.1
429 stars 179 forks source link

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

Open raducoravu opened 3 days ago

raducoravu commented 3 days ago

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.

reinhapa commented 3 days ago

@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 commented 3 days ago

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

dizzzz commented 3 days ago

@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 commented 3 days ago
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 commented 3 days ago

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

Possible...

line-o commented 3 days ago

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

reinhapa commented 2 days ago

@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 commented 2 days ago

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 commented 2 days ago

@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 commented 2 days ago

image

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

reinhapa commented 1 day ago

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 commented 1 day ago

@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.