Jets3tProperties concurency

View: New views
3 Messages — Rating Filter:   Alert me  

Jets3tProperties concurency

by David Kocher-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello all,

In the jets3t source, properties are often queried using
> Jets3tProperties.getInstance(Constants.JETS3T_PROPERTIES_FILENAME)


When opening more than a single connection (having multiple instances  
of S3Service) it seems to me I would run into concurrency issues,  
because the Jets3tProperties instance is shared among the different  
connections.

This is not an issue in Cockpit because it only allows a single  
connection to be opened using a single browser window. However,  
imagine a multi-document capable Cockpit application using multiple  
differently configured S3 connections, this would be an issue.

I would like the API allows to pass a concrete instance of the  
Jets3tProperties to the constructor of a S3Service which is then used  
for all property lookups.

What do you think?
-David


---
Post bug reports and feature requests
 > http://trac.cyberduck.ch/newticket
---
Support development
 > http://cyberduck.ch/donate





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...


Re: Jets3tProperties concurency

by James Murty-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi David,

You are right that the properties lookup model employed in JetS3t made it impossible to specify properties that are specific to a single S3Service instance.

I have made changes to the API to allow users to pass in a JetS3tProperties object when a service is constructed, and to have the service lookup properties in this concrete instance rather than from the default shared JetS3tProperties object. I have also updated some important utility classes to allow a properties object, or individual properties, to be passed in rather than relying on the default shared properties (most notably in the FileComparer class).

This has drastically reduced the number of queries of the form Jets3tProperties.getInstance(Constants.JETS3T_PROPERTIES_FILENAME).getWhatever... There are still some of these lookups remaining, mainly in static methods where it is not easy to make a concrete JetS3tProperties object available and the property settings are obscure enough that it is not worthwhile refactoring the code (in my opinion).

Check out the latest changes and let me know if they meet your needs.

Cheers,
James

P.S. From your email address it looks like you may work on the Cyberduck FTP app for OS X? If so, thanks very much – I have started using this application for my FTP tasks and it's a great tool!


On Tue, Feb 19, 2008 at 12:32 AM, David Kocher <dkocher@...> wrote:
Hello all,

In the jets3t source, properties are often queried using
>       Jets3tProperties.getInstance(Constants.JETS3T_PROPERTIES_FILENAME)


When opening more than a single connection (having multiple instances
of S3Service) it seems to me I would run into concurrency issues,
because the Jets3tProperties instance is shared among the different
connections.

This is not an issue in Cockpit because it only allows a single
connection to be opened using a single browser window. However,
imagine a multi-document capable Cockpit application using multiple
differently configured S3 connections, this would be an issue.

I would like the API allows to pass a concrete instance of the
Jets3tProperties to the constructor of a S3Service which is then used
for all property lookups.

What do you think?
-David


---
Post bug reports and feature requests
 > http://trac.cyberduck.ch/newticket
---
Support development
 > http://cyberduck.ch/donate





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...



Re: Jets3tProperties concurency

by David Kocher-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello James,
        Great news :) I'll have a look at the changes this evening. Yes, I am  
the developer of Cyberduck and I am planning to add S3 support to it  
using jetS3t.

-David


On 19.02.2008, at 02:45, James Murty wrote:

> Hi David,
>
> You are right that the properties lookup model employed in JetS3t  
> made it
> impossible to specify properties that are specific to a single  
> S3Service
> instance.
>
> I have made changes to the API to allow users to pass in a  
> JetS3tProperties
> object when a service is constructed, and to have the service lookup
> properties in this concrete instance rather than from the default  
> shared
> JetS3tProperties object. I have also updated some important utility  
> classes
> to allow a properties object, or individual properties, to be passed  
> in
> rather than relying on the default shared properties (most notably  
> in the
> FileComparer class).
>
> This has drastically reduced the number of queries of the form
> Jets3tProperties
> .getInstance(Constants.JETS3T_PROPERTIES_FILENAME).getWhatever...
> There are still some of these lookups remaining, mainly in static  
> methods
> where it is not easy to make a concrete JetS3tProperties object  
> available
> and the property settings are obscure enough that it is not worthwhile
> refactoring the code (in my opinion).
>
> Check out the latest changes and let me know if they meet your needs.
>
> Cheers,
> James
>
> P.S. From your email address it looks like you may work on the  
> Cyberduck FTP
> app for OS X? If so, thanks very much – I have started using this
> application for my FTP tasks and it's a great tool!
>
>
> On Tue, Feb 19, 2008 at 12:32 AM, David Kocher  
> <dkocher@...> wrote:
>
>> Hello all,
>>
>> In the jets3t source, properties are often queried using
>>>      
>>> Jets3tProperties.getInstance(Constants.JETS3T_PROPERTIES_FILENAME)
>>
>>
>> When opening more than a single connection (having multiple instances
>> of S3Service) it seems to me I would run into concurrency issues,
>> because the Jets3tProperties instance is shared among the different
>> connections.
>>
>> This is not an issue in Cockpit because it only allows a single
>> connection to be opened using a single browser window. However,
>> imagine a multi-document capable Cockpit application using multiple
>> differently configured S3 connections, this would be an issue.
>>
>> I would like the API allows to pass a concrete instance of the
>> Jets3tProperties to the constructor of a S3Service which is then used
>> for all property lookups.
>>
>> What do you think?
>> -David
>>
>>
>> ---
>> Post bug reports and feature requests
>>> http://trac.cyberduck.ch/newticket
>> ---
>> Support development
>>> http://cyberduck.ch/donate
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@...
>> For additional commands, e-mail: users-help@...
>>
>>



---
Post bug reports and feature requests
 > http://trac.cyberduck.ch/newticket
---
Support development
 > http://cyberduck.ch/donate





---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@...
For additional commands, e-mail: users-help@...