-
Notifications
You must be signed in to change notification settings - Fork 149
Replace Jackrabbit-webdav and deprecated/end-of-life HttpClient 3.1 libs with active and trustable WebDAV + HTTP client libraries #51
Comments
Or maybe even better, moving to the HttpURLConnection already included in android? But I guess this would mean also having to rewrite the jackrabbit-webdav library to use something else, right? |
@masensio @davivel what's your take on this? |
@RealRancor, @codeling, sorry for the lack of response. As @codeling said, the key point why HttpClient 3.1 is kept is that Jackrabbit-WebDAV depends on it. And depends on HttpClient 3.x, HttpClient 4.x is not backwards compatible with 3.x. We just updated the version of Jackrabbit-Webdav (ready in master) and checked all the buld environments, including Gradle. We found no special problem. About considering a change: of course, several times. We searched for replacements of Jackrabbit-Webdav that depend on newer HTTP software, but had a hard time finding alternatives easy-to-trust. We almost decided to go with https://github.com/lookfirst/sardine , but in the end didn't find the appropiate moment to go for it. We'd rather not writing the code to parse WebDAV responses ourselves, since would take more time and would be prone to errors. |
This moment has arrived 🙌 , let's create some tasks... |
After playing a bit with OkHttp by using the test app included in our Android library, I conclude that it's possible to use Webdav methods but, as we expected time ago, we would need extra work to handle Webdav requests and responses since OkHttp doesn't include specific methods for Webdav as Jackrabbit-webdav did. Apart from that, the OkHttp library looks nice and it could fit in our app, but with some changes. Related to the other library, Sardine, is not as active as OkHttp and in addition to not including any reference to compatibility with Android, it depends on apache httpclient and there are some opened issues about apache httpclient conflicts, similar to what I explained in #182, so IMHO, is not a trustable option. The request I've performed with our test app is one of our main requests, which is a PROPFIND to read the remote folder and works as expected, I will keep working on new requests with the test app before including the OkHttp library in our Android library. CC / @jesmrec @michaelstingl |
@michaelstingl I can adapt to OkHttp the first request the app performs to check the server, if the server is not reachable, tunneling is not working. I could even use the test app for that purpose. |
Yes @davigonz let's try with the test app. Please send it - i will try with wrapping and tunneling. |
This is ready and to be included in 0.9.21 version of the library and 2.9.0 version of the app. |
Awesome :D |
Hi,
it seems the android-library is currently using the HttpClient libs in version 3.1 released in 2007. This has reached End-Of-Life in 2011 (https://hc.apache.org/httpclient-legacy/index.html).
Have you considered to move to the still maintananced https://hc.apache.org/ ?
Edited by @davigonz from here on
ACs
/remote.php/webdav
) and start using the new endpoint (/remote.php/dav/files/davUser/
). If something is still not implemented, open core issue. Have a look at the next list of useful issues/PRs related to the new endpoint:TOPICS TO DISCUSS
TASKS
Candidates:
1. OKHttp 3.10.0: https://github.com/square/okhttp
2.
Sardine: https://github.com/lookfirst/sardineNot enough active nor trustable3.
HttpUrlConnection: https://developer.android.com/reference/java/net/HttpURLConnection.html/remote.php/dav/files/davUser/
):/ocs/v1.php/apps/files_sharing/api/v1/shares
:/status.php
=> GET/ocs/v1.php/cloud/capabilities
=> GET/index.php/avatar/
=> GET/ocs/v1.php/cloud/user
=> GET/ocs/v1.php/cloud/users/username
=> GETTESTS
[TO DO]
RELATED ISSUES
The text was updated successfully, but these errors were encountered: