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

Remove XQueryServlet #555

Open
adamretter opened this issue Apr 2, 2015 · 24 comments
Open

Remove XQueryServlet #555

adamretter opened this issue Apr 2, 2015 · 24 comments
Labels
deprecation discuss ask for feedback enhancement new features, suggestions, etc. needs documentation Signals issues or PRs that will require an update to the documentation repo
Milestone

Comments

@adamretter
Copy link
Member

For quite some time XQueryServlet has been deprecated and we have recommended that people instead store their XQuery in the database. The eXist book also makes the same recomendation.
I would like to remove this old for a long time deprecated code.

@adamretter adamretter added enhancement new features, suggestions, etc. question labels Apr 2, 2015
@adamretter adamretter added this to the eXist-3.0 milestone Apr 2, 2015
@dizzzz
Copy link
Member

dizzzz commented Apr 2, 2015

Isn't the controller using this servlet? or betterForm? It would cause regression for some people, but for a v3.0 release -when correctly documented and announced- acceptible IMO.

@shabanovd
Copy link
Member

It used for in db xquery scripts too. Maybe, it can be split by usecases: db, FS and code as request parameter. I'd like to remove last one, but there people that use it, so removing may/will break there apps.

@wolfgangmm
Copy link
Member

It is still being used quite a lot as I know from customers, e.g. in applications which embed eXist. In some scenarios it makes sense to keep queries on the file system.

eXide also uses it to post XQuery code if you press the "Eval" button (same for the demo app). Changing all this would imply a lot of work, taking time from other things.

@adamretter
Copy link
Member Author

@shabanovd Sorry can you tell me why it would be used in DB XQuery Scripts? I thought that was what RESTServer was for?

@wolfgangmm Can you explain why eXide uses this rather than posting the XQuery via RESTServer?

@dizzzz
Copy link
Member

dizzzz commented Apr 2, 2015

@adamretter please read wolf's answer a bit slower ; there is no real reason as I read it but since there are dependencies with for example eXide, and timing constraints, it cannot be removed.

@adamretter
Copy link
Member Author

@dizzzz I read the answer. I just wanted more information. Surely I could do the changes on eXide if I wished to - I think it is still Open Source right?

@dizzzz
Copy link
Member

dizzzz commented Apr 2, 2015

:-) yes :-)

@wolfgangmm
Copy link
Member

Ignore eXide. We can change that ourselves if we like to.

The relevant info is that some of the biggest users of eXist I know of still rely on XQueryServlet in an embedded context.

@adamretter
Copy link
Member Author

@wolfgangmm Is the goal to continue to advise against the XQueryServlet. Is so what is the timescale for removing it?

@JoernT
Copy link
Member

JoernT commented Apr 2, 2015

I think it was not wrong what we did with the SOAP API - we can simply ask people if they still rely on it (and why) and probably (optionally) make clear that the XQueryServlet is deprecated and give some advise what to use instead. If there are still users of it we can probably set some relaxed deadline before removal.

However if there's still a valid use case for it - XQueries being stored on the filesystem or similar - then we should probably rethink the deprecation.

@wolfgangmm
Copy link
Member

@adamretter I always advise against the XQueryServlet and communicate this to our customers. Some of them are currently struggling hard (involving large teams) to finally migrate to eXist 2.x and I certainly don't want to make it even harder for them by raising the bar too high. Switching from a file system based architecture to one in the database is not always straightforward. We definitely have to give those guys more time to adopt (end of the year I'd say).

@ljo
Copy link
Member

ljo commented Apr 2, 2015

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Den 2015-04-02 14:01, Wolfgang Meier skrev:

definitely have to give those guys more time to adopt (end of the
year I'd say).

Yes, I suggest we decide to communicate a date in the coming release.
So the next next (the one after the coming) release would be an
obvious target I say.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iD8DBQFVHTE9hcIn5aVXOPIRAvqtAJ9Gy09j/Gjjv7sI/5FC2iQ6Q9vfawCgkYUA
7OHII33d4Uwgu062QGl7QpE=
=XTQv
-----END PGP SIGNATURE-----

@JoernT
Copy link
Member

JoernT commented Apr 2, 2015

ok, i just learned that there are defnitely people using it and migration would cause a lot of work. So yes, we need a relaxed timespan for them to migrate. We even might need to show the way.

@adamretter adamretter modified the milestones: eXist-4.0, eXist-3.0 Apr 2, 2015
@adamretter
Copy link
Member Author

Okay scheduled for eXist 4.0.

@ssire
Copy link

ssire commented Jul 22, 2015

I use eXist-DB with most of my code (XQuery / XSLT) on the file system (in a version controlled folder under the webapp folder). I find it very convenient as it supports a clean workflow using a single "git pull origin master" command to deploy applications on production servers. I also develop with a file system editor (Text Mate) which I guess is common for many developers.

With the projected change and code restricted to the database only I fear of loosing some flexibility as if I understand the only options will be to use the embedded eXide IDE ? And then how to work under version control ? If I remember there is the possibility to mirror the code on the file system and use a synchronize command in eXide ? But on a production server, if we remove eXide, does that mean that all deployments should be made via the package manager ? I feel that I will regret the simple "git pull origin master" to update a server...

@adamretter
Copy link
Member Author

adamretter commented Jul 22, 2015

@ssire Okay don't worry. eXist 4.0 is a long way away and we may keep indeed keep it if people like yourself are using it and we don't have a suitable replacement for version control

@joewiz
Copy link
Member

joewiz commented Feb 21, 2017

eXist 4.0 is now the next major release. If removing the XQueryServlet is still under consideration, now may be the time to begin planning and determining how to minimize the impact on the valid use cases. @wolfgangmm mentioned those who still "rely on XQueryServlet in an embedded context." @JoernT mentioned "XQueries being stored on the filesystem" (e.g., @ssire's desire to be able to update a server with git pull origin master) and cited the example of how the SOAP API was removed as a model.

@dizzzz
Copy link
Member

dizzzz commented Feb 21, 2017

I remember we still get feedback from users that have queries stored on the filesystem.....

If we have the removal on 'the roadmap' , it is OK for me; Maybe (...) we can disable the feature initially (so ppl can provide feedback on this) en then remove it entirely....

@shabanovd
Copy link
Member

I think that 1st step should be to disable it by default, so people that need it can enable it.

@caseydawsonjordan
Copy link
Contributor

caseydawsonjordan commented Feb 21, 2017 via email

@ssire
Copy link

ssire commented Feb 21, 2017

IMHO the ability to use "git pull" out of the box for production code deployment (and for code versioning) is what makes eXist-DB as friendly as other popular web applications development frameworks and agile. Having to add an extra step to synchronize file system with the the database sounds feasible but will raise the maintenance costs and is prone to errors.

By the way how redundant is the XQueryServlet code with the code that execute XQuery resources stored in the database ?

@adamretter
Copy link
Member Author

So the XQueryServlet likely has a whole bunch of security issues. Including the fact that there are no users or permissions available from executing an XQuery from the filesystem via XQueryServlet. Effectively anyone can execute anything... that is very bad.

@caseydawsonjordan
Copy link
Contributor

caseydawsonjordan commented Feb 21, 2017 via email

@adamretter adamretter modified the milestones: eXist-4.0.0, eXist-5.0.0 Jan 22, 2018
@duncdrum duncdrum added discuss ask for feedback and removed discuss ask for feedback question labels Jan 15, 2019
@adamretter adamretter modified the milestones: eXist-5.1.0, eXist-6.0.0 Aug 14, 2019
@joewiz joewiz added the needs documentation Signals issues or PRs that will require an update to the documentation repo label Feb 1, 2021
@joewiz
Copy link
Member

joewiz commented Feb 1, 2021

An issue tracking the documentation implications of this PR has been started: eXist-db/documentation#569.

@adamretter adamretter modified the milestones: eXist-6.0.0, eXist-7.0.0 Feb 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
deprecation discuss ask for feedback enhancement new features, suggestions, etc. needs documentation Signals issues or PRs that will require an update to the documentation repo
Projects
None yet
Development

No branches or pull requests

10 participants