You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Luke Daley (JIRA)" <ji...@codehaus.org> on 2008/04/18 04:47:55 UTC
[jira] Created: (WAGON-110) Support directory operations sanely.
Support directory operations sanely.
------------------------------------
Key: WAGON-110
URL: http://jira.codehaus.org/browse/WAGON-110
Project: wagon
Issue Type: Improvement
Components: wagon-provider-api
Reporter: Luke Daley
The {{Wagon}} provider API is confused for directory operations. To simplify, I propose a new interface be created (e.g. {{DirectoryWagon}}) that wagons can implement...
{code}
bool isDirectory(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
String[] getFileList(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
void mkdir(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
void mkdirs(String path) throw throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
{code}
This would also require removing all directory related methods from the {{Wagon}} interface. The {{AbstractWagon}} implementation could _transparently_ use the primitives from the {{DirectoryWagon}} interface (if implemented) to handle directory operations.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Commented: (WAGON-110) Support directory operations sanely.
Posted by "Oleg Estekhin (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/WAGON-110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=262788#action_262788 ]
Oleg Estekhin commented on WAGON-110:
-------------------------------------
When the WagonDirectoryScanner in the scandir(String,String) method tries to check whether the resource name denotes a directory, it tries to add a trailing '/' character to the resource name and asks Wagon.resourceExists to check whether a resource with such a name exists.
If for any reason the Wagon or some underlying library will decide to remove the trailing '/' as part of some normalization process before checking for resource existance, the Wagon will return true from the resourceExists, and WagonDirectoryScanner will wrongly think it is a directory.
The WagonDirectoryScanner.scandir obtains a list of files inside a direcotry by calling the Wagon.getFileList(). The getFileList's javadoc does not require that directories inside the returned list should have the trailing '/', but the WagonTestCase expects it to be so.
Names that already have the trailing '/' are considered by the WagonDirectoryScanner.scandir and WagonDirectoryScanner.isDirectory to be directories without asking Wagon.resourceExists, but all other names in the list returned from the Wagon.getFileList will be checked by adding '/' and asking Wagon.resourceExists.
Consider adding isDirectory(String):boolean method to the Wagon interface that will explicitely check whether the wagon treats the specified resource name as a directory or not.
Anyway, the Wagon.getFileList javadoc should be updated to reflect that directory names should have the trailing '/'.
> Support directory operations sanely.
> ------------------------------------
>
> Key: WAGON-110
> URL: http://jira.codehaus.org/browse/WAGON-110
> Project: Maven Wagon
> Issue Type: Improvement
> Components: wagon-provider-api
> Reporter: Luke Daley
> Fix For: 1.x
>
>
> The {{Wagon}} provider API is confused for directory operations. To simplify, I propose a new interface be created (e.g. {{DirectoryWagon}}) that wagons can implement...
> {code}
> bool isDirectory(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> String[] getFileList(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> void mkdir(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> void mkdirs(String path) throw throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> {code}
> This would also require removing all directory related methods from the {{Wagon}} interface. The {{AbstractWagon}} implementation could _transparently_ use the primitives from the {{DirectoryWagon}} interface (if implemented) to handle directory operations.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (WAGON-110) Support directory operations sanely.
Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/WAGON-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brett Porter updated WAGON-110:
-------------------------------
Fix Version/s: 1.0-beta-3
> Support directory operations sanely.
> ------------------------------------
>
> Key: WAGON-110
> URL: http://jira.codehaus.org/browse/WAGON-110
> Project: Maven Wagon
> Issue Type: Improvement
> Components: wagon-provider-api
> Reporter: Luke Daley
> Fix For: 1.0-beta-3
>
>
> The {{Wagon}} provider API is confused for directory operations. To simplify, I propose a new interface be created (e.g. {{DirectoryWagon}}) that wagons can implement...
> {code}
> bool isDirectory(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> String[] getFileList(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> void mkdir(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> void mkdirs(String path) throw throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> {code}
> This would also require removing all directory related methods from the {{Wagon}} interface. The {{AbstractWagon}} implementation could _transparently_ use the primitives from the {{DirectoryWagon}} interface (if implemented) to handle directory operations.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] Updated: (WAGON-110) Support directory operations sanely.
Posted by "Brett Porter (JIRA)" <ji...@codehaus.org>.
[ http://jira.codehaus.org/browse/WAGON-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brett Porter updated WAGON-110:
-------------------------------
Fix Version/s: (was: 1.0-beta-3)
1.x
> Support directory operations sanely.
> ------------------------------------
>
> Key: WAGON-110
> URL: http://jira.codehaus.org/browse/WAGON-110
> Project: Maven Wagon
> Issue Type: Improvement
> Components: wagon-provider-api
> Reporter: Luke Daley
> Fix For: 1.x
>
>
> The {{Wagon}} provider API is confused for directory operations. To simplify, I propose a new interface be created (e.g. {{DirectoryWagon}}) that wagons can implement...
> {code}
> bool isDirectory(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> String[] getFileList(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> void mkdir(String path) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> void mkdirs(String path) throw throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException;
> {code}
> This would also require removing all directory related methods from the {{Wagon}} interface. The {{AbstractWagon}} implementation could _transparently_ use the primitives from the {{DirectoryWagon}} interface (if implemented) to handle directory operations.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira