On 24 Feb 2014, at 9:12 am, Marcin Erdmann <marcin.erdm...@proxerd.pl> wrote:

> 
> 
> 
> On Thu, Feb 20, 2014 at 8:33 PM, Adam Murdoch <adam.murd...@gradleware.com> 
> wrote:
> 
> On 19 Feb 2014, at 3:06 pm, Daz DeBoer <darrell.deb...@gradleware.com> wrote:
> 
>> Hey Marcin
>> That's great. If you want to take a stab at a design spec for supporting an 
>> sftp repository transport, that would be a good start. This can go into a 
>> new document: /design-docs/repository-transports.md.
>> 
>> For the first story I think it should be sufficient to simply support a 
>> 'sftp://host[:port]' type URL, together with the existing user/password 
>> credentials. But we should probably start thinking about how we can support 
>> other authentication mechanisms as well (for all transports)
> 
> That would be good. I would love to make credentials a first-class concept 
> and expose some nice command-line and tooling API mechanisms to provide and 
> manage them.
> 
>> 
>> We also need to start thinking about how we're going to provide adequate 
>> test coverage for different repository transports. Do we want to run all of 
>> our remote resolution tests against all remote transports, or choose a 
>> subset of tests that would be sufficient for demonstrating a particular 
>> transport behaves correctly? We can probably come up with a 
>> org.gradle.integtests.fixtures.AbstractMultiTestRunner subclass that can run 
>> a set of tests against a defined set of transports.
> 
> One thing that the current test coverage does is to verify exactly which 
> network requests are being made when. This is really important from a 
> performance point of view. I would not want to lose this coverage if we were 
> to abstract some of the tests away from transport, and any new transports 
> should have a similar kind of coverage. Perhaps we might change the test 
> fixtures to abstract some of the verifications (there’s really only a handful 
> of different interactions we need to check for).
> 
> Seems like a valid point. Looks like you're talking about specs that are 
> using org.gradle.test.fixtures.maven.HttpResource.expect...() methods. We 
> could abstract that to something like RemoteResource and use that to run all 
> these tests agains all transports.
> 
> I didn't get much time to have a look at this stuff this weekend because I 
> spent it contributing to Ratpack but I seem to have found test code that 
> exercises transports so I should be able to get started this week. I will 
> look at this code more and start drafting the design spec.
> 
> Do you guys have a preferred library to use as the sftp client? Should we use 
> SSHD (https://mina.apache.org/sshd-project/index.html) or 
> JSch(http://www.jcraft.com/jsch/)? SSHD seems to also provide a sftp server 
> implementation which would be useful for fixtures.


I’d slightly prefer we use apache sshd rather than jsch, but it’s not a strong 
opinion.


--
Adam Murdoch
Gradle Co-founder
http://www.gradle.org
VP of Engineering, Gradleware Inc. - Gradle Training, Support, Consulting
http://www.gradleware.com



Reply via email to