Hi Ramon Yeah its a big refactor. Looks good.
I do think we should consider java generics (the <T> stuff) for the Generic* interfaces, but that is something we can get done later. Looks great and impressive that all the unit tests still passes. Since its a big refactor and the diff is huge we should avoid commiting to FTP/File in the trunk right now. To avoid the diff getting out of hands. Well this is for the Camel committers! To get the stuff into the trunk I think we need multiple diffs to avoid one huge. So if you can provide diffs in multiple steps. A rough plan like this: 1) Generic* that are used by the FTP component 2) When #1 is commited to triunk and you code is aligned with trunk, then move on to 3) Move Generic* from camel-ftp to camel-core 4) When #3 is commited to triunk and you code is aligned with trunk, then move on to 5) You can start on commons-vfs component 6) Then we can take a look at the java generics stuff <T> and get that done in the right way 7) Refactor File in camel-core to use the new generics 8) Add the new commons-vfs component when its ready and done 9) Add wiki doc for the new commons-vfs component Ramon, what do you say? On Fri, Jan 23, 2009 at 7:14 AM, Ramon Buckland <[email protected]> wrote: > Claus (and others) > > If you have time, can you please take a cursory glance at my refactoring. I > think there are a few rough edges which I am hoping to sort out when I > implement the commons-vfs from the Generic* > > The crux of the change so far is as follows. > > (a) refactor org.apache.camel.component.file.remote.Remote* so there is a > base that can be extended. > > * All current FTP Remote code resides in > org.apache.camel.component.file.remote > * It's parent Abstract base, interface and superclasses are > org.apache.camel.component.file.Generic* > * FTP and SFTP are now concrete implementations (no sharing of protocol in > same class); common code is pushed to Remote* classes. > > The next part will be to > > (b) Implement commons-vfs undeneath org.apache.camel.component.file.Generic* > (c) move org.apache.camel.component.file.Generic* to camel-core. > (d) Have camel-core:file implement / extend > org.apache.camel.component.file.Generic* > -- Claus Ibsen Apache Camel Committer Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/
