ymnk / jsch-agent-proxy

Other
70 stars 41 forks source link

Provide a simple interface for trying to get a connector #10

Closed charles-dyfis-net closed 11 years ago

charles-dyfis-net commented 11 years ago

At present, it is the responsible of the jsch-agent-proxy user to know which connectors should be attempted and in which order. While there are legitimate reasons for a user to want fine-grained control over this (attempting to minimize dependencies; only targeting a subset of the platforms jsch-agent-proxy supports; etc), there is currently no common-case way for a user to simply "make it work" without boilerplate (which may need to change with future library releases should an existing connector be deprecated, a new one being added, etc).

This patch introduces jsch.agentproxy.simple, which provides a single entry point for the connectors which are currently suggested for use. If it does not currently reflect best-practice selection, or if best-practices change in the future, it provides a single place where this can be updated, rather than needing to explicitly modify clients which may not necessarily need the more fine-grained control possible by directly depending on and using the individual connector subprojects.

ymnk commented 11 years ago

Thank you for your suggestion.

Could you check a commit https://github.com/ymnk/jsch-agent-proxy/commit/87cdad7a86f8e1c8ec5ef2cfc0b1b321180f8a08, and try the following branch? https://github.com/ymnk/jsch-agent-proxy/tree/issue10/connector_factory

charles-dyfis-net commented 11 years ago

That's a much better implementation than the one I wrote. One caveat that came up in testing -- e378c885f7ec27fbb9b21f853a3d3cc5df2f8078 is necessary for setPreferredConnectors() to work.

I have a diff at c7828191aa8b68576512c3bdc2c92d219e034deb using this code in the examples (excepting those which exist to demonstrate an individual connector's use).

(Speaking of examples -- I had to apply 603a8849dba44f28be1666f2d3cdad887bdbba9a and 52fc362c0fecd18201b4c0d36275cd703f040730 before they would build).

ymnk commented 11 years ago

The branch https://github.com/ymnk/jsch-agent-proxy/tree/issue10/connector_factory bas been merged to master.

charles-dyfis-net commented 11 years ago

Thank you very much!

I've modified the patch submitted to SVNKit to use the connector factory as it exists on master.

Is there any chance that there might be a release cut soon? It would be nice to have it published to public repos before SVNKit is ready to merge agent-proxy support.

ymnk commented 11 years ago

I have been waiting for com.trilead.trilead-ssh2 1.0.0-build217 to appear on the central maven repository. It is not so nice to include dependencies to http://maven.tmatesoft.com/content/repositories/releases/ . Do you know if they have a plan to deploy it to the public repo?

charles-dyfis-net commented 11 years ago

I inquired with TMate. Their response:

Hello Charles,

I've promoted build217 artifiact to the maven central via sonatype repository. It should appear there in a few days.

ymnk commented 11 years ago

I found trilead-ssh2 1.0.0-build217 on the central repo, so I have deployed jsch-agent-proxy 0.0.6 to there. I hope it will appear there in a few days.