Issue Details (XML | Word | Printable)

Key: BATCH-174
Type: Improvement Improvement
Status: Closed Closed
Resolution: Won't Fix
Priority: Minor Minor
Assignee: Dave Syer
Reporter: tomi vanek
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Spring Batch

Pluggable file-access for input and output

Created: 17/Oct/07 12:13 PM   Updated: 01/Oct/08 08:31 AM
Component/s: None
Affects Version/s: None
Fix Version/s: None
Security Level: Public (Public Issues)

Time Tracking:
Not Specified

Issue Links:
Depends
 


 Description  « Hide
The Apache Commons is Virtual File System (VFS) module is an abstraction layer over various "file systems" - i.e. ZIP, SFTP, in-memory, HTTP, CIFS-Samba, MIME, etc. The file system providers are pluggable (like a 3-rd party VFS-plugin for EMC Documentum).

The VFS could give support for different file-system types in the processors, but also in providers.

My suggestion is to support both the Spring Resource abstraction (as it is currently) and the VFS with wrappers that would adapt the file-access technologies to a common interface.
The Spring-Resource / VFS would be injectable into the flat-file and XML providers / processors.


 All   Comments   Work Log   Change History   FishEye   Builds      Sort Order: Ascending order - Click to sort in descending order
Dave Syer added a comment - 30/Oct/07 06:15 AM
If the Commons VFS is compatible with Spring Resource I would prefer to see a Resource implementation wrapping VFS, rather than supporting multiple abstractions. Spring Modules might be a good place to seed that idea.

tomi vanek added a comment - 31/Oct/07 01:39 AM
I have the impression that the Spring Resource solution focuses just on the input. I did not find the interfaces for output in the Spring API - there is an InputStreamResource, but there is not an OutputStreamResource. And additional complication for batch providers and processors is that the Spring resources do not have the getPointer() and seek() functionality in the interface declaration (i.e. for setting the pointer to the last commited position by batch job restarting).

But I agree - the definition of a universal input and output channel / interface with getPointer() and seek() functionality is out-of-scope for Spring Batch project.

Dave Syer added a comment - 31/Oct/07 05:55 PM
This is not an exact duplicate of BATCH-21, but I'm going to mark it as such and resolve because there isn't anything we want to do in Spring Batch to support external implementations of Resource abstractions. An internal abstraction for output resources is still on hte table (hence BATCH-21 is still open).